SSD 因 NCQ hang,failed command: WRITE FPDMA QUEUED / tag 28 ncq 4096 out

在CentOS 7.2上,使用PostgreSQL的fsync测试工具时,SSD出现IO hang。问题与NCQ(Native Command Queuing)相关,建议关闭NCQ以提高稳定性。NCQ是为提升硬盘性能而设计的技术,但对SSD可能无效。解决方案包括在启动项中禁用NCQ或针对不同硬盘类型调整queue_depth。若同时拥有机械盘和SSD,可能需要代码修补以区别处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

新购入的建兴ZETA 256G,在CentOS 7.2中,用PostgreSQL自带的fsync测试工具pg_test_fsync测试IOPS时,突然IO hang住了。
dmesg报了一堆这样的超时:
         res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
[  895.604149] ata1.00: status: { DRDY }
[  895.606940] ata1.00: failed command: WRITE FPDMA QUEUED
[  895.609389] ata1.00: cmd 61/08:e0:38:bd:06/00:00:00:00:00/40 tag 28 ncq 4096 out
         res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
[  895.614144] ata1.00: status: { DRDY }
[  895.616516] ata1.00: failed command: WRITE FPDMA QUEUED
[  895.618665] ata1.00: cmd 61/10:e8:00:90:06/02:00:00:00:00/40 tag 29 ncq 270336 out
         res 40/00:01:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
[  895.622940] ata1.00: status: { DRDY }
[  895.625089] ata1.00: failed command: WRITE FPDMA QUEUED
[  895.627236] ata1.00: cmd 61/00:f0:00:8c:06/04:00:00:00:00/40 tag 30 ncq 524288 out
         res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
[  895.631176] ata1.00: status: { DRDY }
[  895.633133] ata1: hard resetting link
[  895.937682] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[  895.940816] ata1.00: ACPI cmd ef/10:03:00:00:00:a0 (SET FEATURES) filtered out
[  895.940830] ata1.00: ACPI cmd f5/00:00:00:00:00:a0 (SECURITY FREEZE LOCK) filtered out
[  895.941234] ata1.00: ACPI cmd ef/10:03:00:00:00:a0 (SET FEATURES) filtered out
[  895.941243] ata1.00: ACPI cmd f5/00:00:00:00:00:a0 (SECURITY FREEZE LOCK) filtered out
[  895.941314] ata1.00: configured for UDMA/133
[  895.941356] ata1.00: device reported invalid CHS sector 0
[  895.941362] ata1.00: device reported invalid CHS sector 0
[  895.941366] ata1.00: device reported invalid CHS sector 0
[  895.941369] ata1.00: device reported invalid CHS sector 0
[  895.941374] ata1.00: device reported invalid CHS sector 0
[  895.941377] ata1.00: device reported invalid CHS sector 0
[  895.941381] ata1.00: device reported invalid CHS sector 0
[  895.941384] ata1.00: device reported invalid CHS sector 0
[  895.941388] ata1.00: device reported invalid CHS sector 0
[  895.941392] ata1.00: device reported invalid CHS sector 0
[  895.941395] ata1.00: device reported invalid CHS sector 0
[  895.941399] ata1.00: device reported invalid CHS sector 0
[  895.941403] ata1.00: device reported invalid CHS sector 0
[  895.941408] ata1.00: device reported invalid CHS sector 0
[  895.941434] ata1: EH complete


现象和网上描述的类似,很多SSD有这样的问题。
smartctl看上去没问题但是使用报错日志如下ata1.00: exception Emask 0x0 SAct 0x100 SErr 0x0 action 0x0 ata1.00: irq_stat 0x40000000 ata1.00: failed command: READ FPDMA QUEUED ata1.00: cmd 60/08:40:00:00:10/00:00:00:00:00/40 tag 8 ncq dma 4096 in res 41/40:00:00:00:10/00:00:00:00:00/00 Emask 0x409 (media error) <F> ata1.00: status: { DRDY ERR } ata1.00: error: { UNC } ata1.00: configured for UDMA/133 sd 0:0:0:0: [sda] tag#8 UNKNOWN(0x2003) Result: hostbyte=0x00 driverbyte=0x08 cmd_age=8s sd 0:0:0:0: [sda] tag#8 Sense Key : 0x3 [current] sd 0:0:0:0: [sda] tag#8 ASC=0x11 ASCQ=0x4 sd 0:0:0:0: [sda] tag#8 CDB: opcode=0x28 28 00 00 10 00 00 00 00 08 00 blk_update_request: I/O error, dev sda, sector 1048576 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 0 ata1: EH complete ata1.00: exception Emask 0x0 SAct 0x800 SErr 0x0 action 0x0 ata1.00: irq_stat 0x40000000 ata1.00: failed command: READ FPDMA QUEUED ata1.00: cmd 60/08:58:00:00:10/00:00:00:00:00/40 tag 11 ncq dma 4096 in res 41/40:00:00:00:10/00:00:00:00:00/00 Emask 0x409 (media error) <F> ata1.00: status: { DRDY ERR } ata1.00: error: { UNC } ata1.00: configured for UDMA/133 sd 0:0:0:0: [sda] tag#11 UNKNOWN(0x2003) Result: hostbyte=0x00 driverbyte=0x08 cmd_age=8s sd 0:0:0:0: [sda] tag#11 Sense Key : 0x3 [current] sd 0:0:0:0: [sda] tag#11 ASC=0x11 ASCQ=0x4 sd 0:0:0:0: [sda] tag#11 CDB: opcode=0x28 28 00 00 10 00 00 00 00 08 00 blk_update_request: I/O error, dev sda, sector 1048576 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0 Buffer I/O error on dev sda, logical block 131072, async page read
08-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值