如何優化 Linux 中的 eSATA 效能?

如何優化 Linux 中的 eSATA 效能?

我體驗到 eSATA 效能非常慢。磁碟上的速度約為 5 mb/s,可輕鬆處理 150-200 mb/s。我是否需要啟用某些設定或模組才能加快速度?該磁碟是 4 TB 磁碟,計算機是 HP MicroServer。內核是 3.2.0-4-amd64。

更新:

發行版是 Debian Lenny。

我已經使用 dd if=/dev/zero of=/mnt/foo 和 if=/mnt/somebigfile.tar.gz of=/dev/null 進行了測量。我嘗試了 dd 以及 oflag=direct 和 iflag=direct 的各種區塊大小。

讀取和寫入都很慢。但是,我最關心的是寫入,因為該磁碟應該用於備份...

更新:

我用 dd 做了一些更多的性能測試。結果如下:

(root@corvina) (14-08-17 22:40:29) (P:0 L:2) [0]
~ # alias drop-all-caches                         [R0 J0 L:0.70 1.13 1.35 U:3+11:29 pts/4 2122H]
drop-all-caches='sync ; echo 3 > /proc/sys/vm/drop_caches'
(root@corvina) (14-08-17 22:40:39) (P:0 L:2) [0]
~ # hdparm -Tt /dev/sda                           [R0 J0 L:0.60 1.10 1.33 U:3+11:29 pts/4 2123H]

/dev/sda:
 Timing cached reads:   2970 MB in  2.00 seconds = 1484.76 MB/sec
 Timing buffered disk reads: 528 MB in  3.01 seconds = 175.37 MB/sec
(root@corvina) (14-08-17 22:40:59) (P:0 L:2) [0]
~ # drop-all-caches; time dd if=/dev/zero of=/mnt/zero.dat bs=8k count=100k; time sync
102400+0 records in
102400+0 records out
838860800 bytes (839 MB) copied, 1,35067 s, 621 MB/s
dd if=/dev/zero of=/mnt/zero.dat bs=8k count=100k  0,03s user 1,32s system 91% cpu 1,485 total
sync  0,00s user 0,01s system 0% cpu 8,002 total
(root@corvina) (14-08-17 22:41:57) (P:0 L:2) [0]
~ # rm -vf /mnt/zero.dat                          [R0 J0 L:0.57 0.93 1.25 U:3+11:30 pts/4 2125H]
removed `/mnt/zero.dat'
(root@corvina) (14-08-17 22:42:28) (P:0 L:2) [0]
~ # drop-all-caches; time dd if=/dev/zero of=/mnt/zero.dat bs=8k count=1000k; time sync
1024000+0 records in
1024000+0 records out
8388608000 bytes (8,4 GB) copied, 68,5064 s, 122 MB/s
dd if=/dev/zero of=/mnt/zero.dat bs=8k count=1000k  0,41s user 22,31s system 33% cpu 1:08,58 total
sync  0,00s user 0,01s system 0% cpu 14,465 total
(root@corvina) (14-08-17 22:43:52) (P:0 L:2) [0]
~ # drop-all-caches; time dd if=/dev/zero of=/mnt/zero.dat bs=8k count=1000k oflag=direct; time sync
1024000+0 records in
1024000+0 records out
8388608000 bytes (8,4 GB) copied, 184,3 s, 45,5 MB/s
dd if=/dev/zero of=/mnt/zero.dat bs=8k count=1000k oflag=direct  0,79s user 109,24s system 59% cpu 3:04,62 total
sync  0,00s user 0,01s system 2% cpu 0,289 total
(root@corvina) (14-08-17 22:47:59) (P:0 L:2) [0]
~ # drop-all-caches; time dd of=/dev/null if=/mnt/zero.dat                                       16384000+0 records in
16384000+0 records out
8388608000 bytes (8,4 GB) copied, 82,3752 s, 102 MB/s
dd of=/dev/null if=/mnt/zero.dat  8,13s user 33,21s system 50% cpu 1:22,44 total
(root@corvina) (14-08-17 22:49:58) (P:0 L:2) [0]
~ # drop-all-caches; time dd of=/dev/null if=/mnt/zero.dat bs=8k
1024000+0 records in
1024000+0 records out
8388608000 bytes (8,4 GB) copied, 82,0298 s, 102 MB/s
dd of=/dev/null if=/mnt/zero.dat bs=8k  0,76s user 19,02s system 24% cpu 1:22,18 total
(root@corvina) (14-08-17 22:51:31) (P:0 L:2) [0]
~ # drop-all-caches; time dd of=/dev/null if=/mnt/zero.dat bs=8k iflag=direct
1024000+0 records in
1024000+0 records out
8388608000 bytes (8,4 GB) copied, 157,355 s, 53,3 MB/s
dd of=/dev/null if=/mnt/zero.dat bs=8k iflag=direct  0,88s user 85,48s system 54% cpu 2:37,42 total

這些數字看起來根本不像我之前得到的。這裡已經很晚了,所以我得去睡覺了。我希望週二能夠進一步調查此事。

答案1

首先測試您的吞吐量

  • 使用終端,您可以使用:(sudo hdparm -Tt /dev/sda其中 /dev/sda 是您的磁碟)
  • 進行寫入檢定:(dd if=/dev/zero of=/mnt/yourdisk/output.tmp bs=8k count=100k將你的磁碟掛載到 /mnt/yourdisk)
  • 和讀取測試:(dd if=/mnt/yourdisk/output.tmp of=/dev/null bs=8k首先使用寫入測試建立檔案並掛載磁碟)
  • 另外,如果你想使用 GUI 並且你有 Gnome,你可以使用gnome-disks(有關該項目的更多信息

找到最弱的環節

我更喜歡使用在頂上分析系統上發生的情況並識別瓶頸。讀/寫 eSATA 磁碟機(請參閱上文),同時檢視 atop(d執行 atop 時按下可檢視磁碟相關資訊)。那裡發生了什麼事?能提供一下截圖嗎?

提高 eSATA 效能

以下是一些一般性提示(根據您提供的信息,我無法提供更具體的信息。如果您需要更具體的提示,請向我們提供有關您的硬體鏈的更多信息):

  • 為您的 (e)SATA 硬體取得正確的驅動程式
  • 一些 Linux 發行版提供scsitools工程現場),這也非常有用。
  • 您的 BIOS 是否有針對 eSATA 連接埠的任何選項,例如IDE或AHCI模式

相關內容