我刚刚在新台式机上安装了 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: 甚至我的妻子也说“在这台新电脑上,我从相机中复制照片时什么都做不了,而且比在旧电脑上更糟糕”。所以事情一定很严重。
编辑3:已更新至 2.6.32,但仍然没有改善
编辑4:我忘了说了,新磁盘是 ext4,旧磁盘是 ext3。
编辑5:仍未解决。我有一块 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
答案1
检查分区的偏移量 - 对于 EARS 来说,偏移量需要能被 4 整除,因为它们采用 4096 技术。如果不是 - 重新分区以获得对齐,性能问题应该会消失(未对齐的 EARS 驱动器每次操作将执行更多扇区写入)。
答案2
我在执行大量磁盘 IO 时也遇到过类似的冻结问题。在备份过程中,桌面反复冻结几秒钟,直到备份完成。
它与任何对齐或任何 hdparm 调整都无关(尽管我同意它会有所帮助)。
系统死机是由 IO 调度程序引起的,它过多地延迟了更具交互性的应用程序(Firefox、KDE 等)所需的某些 IO。故障的 IO 调度程序配置文件。
要解决这个问题,你必须使用 deadline IO 调度程序。你可以使用以下命令在磁盘上激活它,你可以将其添加到/etc/rc.local:
echo deadline > /sys/block/sda/queue/scheduler
查看解决 Linux 系统在执行大量磁盘 I/O 时锁定的问题了解更多信息。
答案3
这只是猜测,但我之前也遇到过类似的问题,原因是内核不完全支持芯片组,DMA 被关闭了。使用
hdparm -i /dev/sda
是否启用了其中一种 DMA 模式。
(在这种情况下,解决方案是获取更新的内核。)
答案4
sudo fdisk -u /dev/sda
这应该会为您提供起始偏移量。我“认为”您可以使用 fdisk -o 64 或其他东西创建分区 - 我必须谷歌一下,所以我会让你在 fdisk 上进行谷歌搜索并手动设置分区偏移量(默认值为 63,所以这不好)。
是的,磁盘将显示 512b 扇区,因为它假装对操作系统如此 - Vista/W7 通过设置正确的偏移量来处理这个问题,但 XP 和我认为几乎所有的 Linus 发行版都没有 :( 手动似乎是唯一的方法(我的只是一个存储驱动器并在 win7/ntfs 中创建,所以对我来说没问题)
编辑: - 在 wdc 上发现了一篇不错的帖子 - 这应该可以让你立即启动并运行 :)