磁盘操作冻结了Debian


12

我刚刚在我的新桌面上安装了Debian测试,我对性能不太满意 - 当我执行磁盘密集型操作时,例如系统中的升级包,一切似乎都冻结了,例如在Iceweasel中更改标签需要3秒钟。我在我3岁的Thinkpad X60超便携上运行Debian,我没有这些问题。(笔记本电脑的每个参数都比桌面差得多)。

我正在使用默认的打包内核和脚本。

我跑

hdparm -t /dev/sda1

我得到了大约96GB / s,这是预期的。还有什么可以让它更好地运作?

编辑

grzes:/home/ga# hdparm -i /dev/sda

/dev/sda:

 Model=WDC WD15EARS-00Z5B1, FwRev=80.00A80, SerialNo=WD-WMAVU1362357
 Config={ HardSect NotMFM HdSw>15uSec SpinMotCtl Fixed DTR>5Mbs FmtGapReq }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=50
 BuffType=unknown, BuffSize=unknown, MaxMultSect=16, MultSect=16
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=2930277168
 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio3 pio4
 DMA modes:  mdma0 mdma1 mdma2
 UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6
 AdvancedPM=no WriteCache=enabled
 Drive conforms to: Unspecified:  ATA/ATAPI-1,2,3,4,5,6,7

 * signifies the current active mode

编辑2:甚至我的妻子说“在这台新电脑上,当我从相机复制照片时,我不能做任何事情,而且比旧照片更糟糕”。所以一定要认真。

EDIT3:更新到2.6.32,但仍然没有改进

编辑4:我忘了提到新磁盘是ext4,旧磁盘是ext3。

EDIT5:仍未解决。我有一个P43华硕P5QL-E板。似乎与dmesg相关的行:

[    0.370850] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)                              
[    0.370852] io scheduler noop registered                                                                      
[    0.370853] io scheduler anticipatory registered                                                              
[    0.370854] io scheduler deadline registered                                                                  
[    0.370876] io scheduler cfq registered (default)
...
[    0.908233] ata_piix 0000:00:1f.2: version 2.13                                                               
[    0.908243] ata_piix 0000:00:1f.2: PCI INT B -> GSI 19 (level, low) -> IRQ 19                                 
[    0.908246] ata_piix 0000:00:1f.2: MAP [ P0 P2 P1 P3 ]                                                        
[    0.908275] ata_piix 0000:00:1f.2: setting latency timer to 64                                                
[    0.908316] scsi0 : ata_piix                                                                                  
[    0.908374] scsi1 : ata_piix                                                                                  
[    0.909180] ata1: SATA max UDMA/133 cmd 0xa000 ctl 0x9c00 bmdma 0x9480 irq 19                                 
[    0.909183] ata2: SATA max UDMA/133 cmd 0x9880 ctl 0x9800 bmdma 0x9488 irq 19                                 
[    0.909199] ata_piix 0000:00:1f.5: PCI INT B -> GSI 19 (level, low) -> IRQ 19                                 
[    0.909202] ata_piix 0000:00:1f.5: MAP [ P0 -- P1 -- ]                                                        
[    0.909228] ata_piix 0000:00:1f.5: setting latency timer to 64                                                
[    0.909279] scsi2 : ata_piix                                                                                  
[    0.909326] scsi3 : ata_piix                                                                                  
[    0.910021] ata3: SATA max UDMA/133 cmd 0xb000 ctl 0xac00 bmdma 0xa480 irq 19                       

1
我也有同样的问题。我使用ubuntu 9.10 64位。
Abhijeet Rastogi 2010年

1
对此有任何更新?还有问题吗?如果是这样,你能告诉我们主板使用的芯片组吗?dmesg有关芯片组或驱动器的任何有趣的事情?如果你以某种方式修复它,可以考虑将一篇文章作为答案,让未来的读者知道。
quack quixote 2010年

@~嘎嘎,尚未解决,请看编辑。
Grzenio 2010年

Answers:


4

检查分区的偏移量 - 对于EARS需要可以除以4,因为它们具有4096技术。如果不是 - 重新分配它以获得对齐并且性能问题应该消失(未对齐的EARS驱动器将在每个操作中执行更多扇区写入)。


ooOOOOooo。你可能会有所作为。dmesg输出表明它可能将驱动器检测为512字节扇区驱动器:“[sda] 2930277168 512字节逻辑块” ..驱动器上是否有“XP跳线”,它将设置某种兼容模式?有...请参阅“高级格式”跳线:wdc.custhelp.com/cgi-bin/wdc.cfg/php/enduser / ... ..这可能告诉操作系统它有512字节的扇区,确保它不是组。
quack quixote 2010年

谢谢你的回答。你能告诉我怎么检查偏移吗?我可以移动分区,还是必须重新创建它?
Grzenio 2010年

有没有办法检查分区上的偏移量?一个可以运行的命令?
Warren P

您可以使用gdisk来检查分区偏移 - barsbooks.com/gdisk
James Sumners 2011年

4

在执行大量磁盘IO时,我遇到了类似的冻结问题。在备份期间,桌面一次又一次冻结几秒钟,直到备份完成。

它与任何对齐和任何hdparm调整无关(尽管我同意它会有所帮助)。

系统锁定是由IO调度程序引起的,它会延迟过多的交互式应用程序(Firefox,KDE或其他)所需的IO。错误的IO调度程序是cfg

要解决此问题,您必须使用截止日期IO调度程序。您可以使用以下命令在磁盘上激活它,您可以在/etc/rc.local中添加该命令

echo deadline >  /sys/block/sda/queue/scheduler

检查在执行密集磁盘I / O时解决Linux系统锁定以获取更多信息。


2

这是一个黑暗中的镜头,但我刚才遇到了这样的问题,原因是内核完全不支持芯片组并关闭了DMA。检查

hdparm -i /dev/sda

是否启用了其中一种DMA模式。

(在这种情况下,解决方案是获得更新的内核。)


输出: - DMA模式:mdma0 mdma1 mdma2 UDMA模式:udma0 udma1 udma2 udma3 udma4 udma5 * udma6 so,问题是什么?
Abhijeet Rastogi 2010年

我得到了: Model=WDC, FwRev=80.00A80, SerialNo=WD-WMAVU1362357 Config={ HardSect NotMFM HdSw>15uSec SpinMotCtl Fixed DTR>5Mbs FmtGapReq } RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=50 BuffType=unknown, BuffSize=0kB, MaxMultSect=16, MultSect=16 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=2930277168 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120} PIO modes: pio0 pio3 pio4 DMA modes: mdma0 mdma1 mdma2 UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6 AdvancedPM=no WriteCache=enabled Drive conforms to: Unspecified: ATA/ATAPI-1,2,3,4,5,6,7
Grzenio 2010年

没有dma模式似乎有一颗星(它的相关性)。有关系吗?我该如何配置?
Grzenio 2010年

另外我不确定它是否仅与IDE设备无关,因为我得到:hdparm -d / dev / sda / dev / sda:HDIO_GET_DMA失败:不合适的设备ioctl
Grzenio 2010年

@Grzenio:udma6模式似乎有一颗星,是不是错了?可能想要将此信息编辑到您的帖子中,以便您可以格式化它。
quack quixote 2010年

2

我遇到了一些问题,执行大量fsync(2)调用的操作会导致主系统减速。就我而言,我正在使用LUKS中包含的LVM中包含的根分区运行。您使用的是LVM还是LUKS?

有人会调用一个工具,可以帮助查明具体咀嚼磁盘的内容(而不仅仅是“安装软件包”)iotop。我建议你在执行其中一项任务时运行它,它可能会指出一些其他后台进程可能会同时触发并吸收所有I / O吞吐量。


嗨,抱歉迟到了回复:iotop说[jbd2 / sda3-8]使用80%-99%IO,但磁盘读,写和swapin同时为0.0。有任何想法吗?
Grzenio 2010年

通常,检查过多的fsync是一个很好的检查点。但是在这种情况下,相同的软件在其他硬件(旧版T60)上的性能要好得多,因此它看起来更像是这个特定硬件驱动程序组合的问题。仍然,记住这一点很好。
sleske 2010年

2

sudo fdisk -u / dev / sda

这应该给你起始偏移量。我认为'你可以使用fdisk -o 64或其他东西创建分区 - 我必须谷歌它所以我会让你在fdisk上进行谷歌搜索并手动设置分区偏移(默认为63这样就没有好处)。

是的,磁盘将显示512b扇区,因为它假装是这样的操作系统 - Vista / W7通过设置正确的偏移来处理这个,但XP和我认为所有linus发行版附近不:(手动是唯一的方式看起来(我的只是一个存储驱动器,在win7 / ntfs中创建,所以对我来说没问题)

编辑: - 在wdc发现一个很好的帖子 - 这应该让你在没有时间运行:)

http://community.wdc.com/t5/Desktop/Problem-with-WD-Advanced-Format-drive-in-LINUX-WD15EARS/mp/10920#M631


嗨,我得到:grzes:/ home / ga #fdisk -u / dev / sda此磁盘的柱面数设置为182401.这没有任何问题,但是这大于1024,并且可以在某些设置中导致问题:1)在启动时运行的软件(例如,旧版本的LILO)2)从其他操作系统启动和分区软件(例如,DOS FDISK,OS / 2 FDISK)命令(m求助):
Grzenio

我终于设法完成它,但它没有真正帮助:(真正的问题必须在别的地方。
Grzenio 2010年

1

只是一个随机的镜头,看起来很愚蠢,因为你使用Debian ......但我发现它帮助了同一个硬盘模型的人:你试过更新你的BIOS吗?


不,我没有。尽管可能值得尝试
Grzenio 2010年

1

作为一般的经验法则,如果你可以在设备上使用hdparm,它就是“旧的”ATA接口,而不是新的SATA / SCSI接口。如果是这种情况,则问题可能是默认情况下未启用中断期间的磁盘操作。这是使用旧ATA接口的某些计算机上的常见问题,并且会在繁重的I / O操作期间降低磁盘或系统的性能。

你真的应该试试这个:

sudo hdparm -t -T /dev/sda
sudo hdparm -a8 -c3 -u1 /dev/sda
sudo hdparm -t -T /dev/sda

如果你没有看到第二次计时运行(第三个命令)的性能有所改善,那么还有其他事情正在发生。

另一个因素是期望UDMA6模式在非UDMA电缆上工作(假设它不是SATA接口)。如果你使用80针ATA电缆,你很好; 如果你使用较旧的40针,你会得到各种各样的悲伤。如果电缆是较旧的40针,则需要将传输速率降低到“安全”支持的状态。 警告:调整IDE接口可以挂起驱动器和/或接口,如果驱动器是根文件系统,整个系统将挂起它!

如果您需要降低传输速率以匹配硬件,请尝试以下操作:

sudo hdparm -t -T /dev/sda
sudo sync; sleep 3 ; sync    
sudo hdparm -d 1 -X mdma2 /dev/sda
sudo hdparm -t -T /dev/sda

同样,第二个时间(发布的第三个命令)应该显示出改进。

最后,驱动器本身可能是边缘的,但​​没有SMART报告,您可能不会注意到这个问题(直到它为时已晚)。我真的建议安装smartmontools包来帮助你,特别是如果你有一个旧的驱动器,偶尔需要一点TLC。

sudo apt-get update && apt-get install smartmontools

如果所有其他方法都失败了,请/var/log/messages查看磁盘I / O错误。


更新:

看来你并不孤单。整个'网上都有留言板报告这些单位的各种心痛。

还提到使用4k扇区大小的驱动器与“传统”512字节大小。我只能想象这必然会造成什么样的麻烦。

最后,再次查看您的输出,似乎日记线程几乎占用了系统。非日志文件系统可能会暂时缓解这个问题,但它最好是预防性的,并不能解决最坏的问题。


你好,谢谢你的回复。(1)这是一个SATA驱动器,它使用细sata电缆连接到主板上的sata接口。(2)尝试了第一次测试,性能从90.93 MB /秒降至52.50 MB /秒。原始读取性能似乎不是问题(90MB是我对此驱动器的期望),只是一些小的操作冻结系统
Grzenio 2010年

第二次测试也没有真正改善任何东西。在第一种情况和第二种情况下,大多数参数都无法设置:hdparm -d 1 -X mdma2 / dev / sda / dev / sda:将using_dma设置为1(打开)HDIO_SET_DMA失败:设备设置xfermode设置不合适的ioctl 34(多字DMA模式2)HDIO_DRIVE_CMD(setxfermode)失败:无效交换HDIO_GET_DMA失败:设备不适当的ioctl
Grzenio 2010年

我昨天安装了smartmontools,但我不知道如何使用它们。你能提供一些细节吗?
Grzenio 2010年

哎哟。所以一个新的硬盘驱动器将是一个好主意。
Warren P

1

这终于修复了!正如@Rachel指出的那样,问题确实是与4kb扇区对齐,但遗憾的是文章链接不正确:(

对齐分区的正确方法如下:http//www.linuxconfig.org/linux-wd-ears-advanced-format

本文提供了一个非常好的基准,以便您可以检查您的分区表是否正确:http//article.gmane.org/gmane.linux.utilities.util-linux-ng/2955

另外,如果您有此驱动器并使用Linux,您还应该按照此处的说明增加一个空闲计时器:http//wdc.custhelp.com/cgi-bin/wdc.cfg/php/enduser/std_adp .PHP?p_faqid = 5357&p_created = 1266947046&p_sid = Os7DQL2k&p_accessibility = 0&p_redirect =&p_srch = 1&p_lva =&p_sp = cF9zcmNoPTEmcF9zb3J0X2J5PSZwX2dyaWRzb3J0PSZwX3Jvd19jbnQ9NTEsNTEmcF9wcm9kcz0yMjcsMjk0JnBfY2F0cz0xMzAmcF9wdj0yLjI5NCZwX2N2PTEuMTMwJnBfcGFnZT0x&p_li =&p_topview = 1

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.