磁盘操作冻结 Debian

Grz*_*nio 12 linux debian performance hard-drive

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

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

我跑

hdparm -t /dev/sda1
Run Code Online (Sandbox Code Playgroud)

我得到了大约 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
Run Code Online (Sandbox Code Playgroud)

EDIT2:连我的妻子都说“在这台新电脑上,当我从相机复制照片时,我什么也做不了,而且比旧电脑差得多”。所以一定很严重。

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

EDIT4:我忘了说新磁盘是 ext4,旧磁盘是 ext3。

EDIT5:仍然没有解决。我有一个 P43 ASUS 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                       
Run Code Online (Sandbox Code Playgroud)

Grz*_*nio 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=cF9zcmNoPTEmcF9zb3J0X2J5PSZwX2dyaWRzb3J0PSZwX3Jvd19jbnQ9N TEsNTEmcF9wcm9kcz0yMjcsMjk0JnBfY2F0cz0xMzAmcF9wdj0yLjI5NCZwX2N2PTEuMTMwJnBfcGFnZT0x&p_li=&p_topview=1