У меня очень низкая производительность eSATA. Около 5 МБ/с на диске, который легко справляется со скоростью 150-200 МБ/с. Нужно ли мне включить какой-либо параметр или модуль, чтобы ускорить его? Диск имеет объем 4 ТБ, а компьютер — 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
(смонтируйте yourdisk в /mnt/yourdisk) - И тест чтения:
dd if=/mnt/yourdisk/output.tmp of=/dev/null bs=8k
(сначала создайте файл с помощью теста записи и смонтируйте диск) - Кроме того, если вы хотите использовать графический интерфейс и у вас есть Gnome, вы можете использовать
gnome-disks
(больше информации об этом проекте)
Найдите самое слабое звено
Я предпочитаю использоватьна вершинедля анализа того, что происходит в вашей системе, и выявления узких мест. Чтение/запись на диск eSATA (см. выше) и в то же время просмотр atop (нажмите d
во время работы atop, чтобы увидеть информацию, связанную с диском). Что там происходит? Можете предоставить скриншот?
Улучшение производительности eSATA
Вот несколько общих советов (исходя из предоставленной вами информации, я не могу дать более конкретных советов. Если вам нужны более конкретные советы, предоставьте нам больше информации о вашей цепочке оборудования):
- Получение правильных драйверов для вашего оборудования (e)SATA
- Некоторые дистрибутивы Linux предоставляют
scsitools
(Сайт проекта), что также может быть очень полезным. - Есть ли в вашем BIOS какие-либо опции для порта eSATA, напримерРежим IDE или AHCI.