我最近在桌面上安装了 Ubuntu 上的 RHEL 5.3,磁盘读取速度非常慢,而且我无法修复该问题。我使用的是 Seagate Barracuda 7200.10 ST3250820AS,但读取速度仅为 ~3.6 MB/秒。我无法使用 hdparm 设置 DMA。有什么建议可以提高读取速度吗?
# hdparm -Tt /dev/hda
/dev/hda:
Timing cached reads: 16380 MB in 2.00 seconds = 8209.75 MB/sec
Timing buffered disk reads: 12 MB in 3.04 seconds = 3.94 MB/sec
我很确定多重计数也是错误的。
# hdparm /dev/hda
/dev/hda:
multcount = 16 (on)
IO_support = 0 (default 16-bit)
unmaskirq = 0 (off)
using_dma = 0 (off)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 256 (on)
geometry = 30401/255/63, sectors = 488397168, start = 0
我当前使用的内核。
# uname -a
Linux novaprospekt 2.6.18-128.1.6.el5 #1 SMP Tue Mar 24 12:10:27 EDT 2009 i686 i686 i386 GNU/Linux
答案1
一个问题要问:你使用的是哪种磁盘控制器?如果你使用的是旧的、糟糕的 ATA/33 控制器,不支持 DMA(不是很好),不支持 32 位 I/O 等等,那么你能做的事情就非常有限了。
答案2
using_dma = 0(关闭)
这是一个大问题。运行测试时,您是否注意到 CPU 峰值很高?
尝试提供 hdparm -i /dev/hda; 的输出并查看可能导致这种情况的原因。
答案3
只是出于好奇,写得怎么样?
dd if=/dev/zero of=fil1 bs=1M count=2000