Как я улучшаю свою производительность диска сервера

У меня есть HP Microserver под управлением Ubuntu 10.04 LTS. Это - сервер низкой мощности с 5 отсеками внутреннего диска. Я использую его для резервного копирования моих удаленных серверов, VPSs и локальных ноутбуков по сети. Я хочу получить лучшую производительность от дисков, но я не знаю, является ли это установка оптимально, таким образом, я ищу некоторый совет.

Мой сервер выполняет rsnapshot многократно в день для резервного копирования удаленных хостов. Фактическая часть инкрементного резервного копирования занимает очень мало времени. Значительное время проведено, делая вещи как:-

/bin/cp -al /srv/rsnapshot/hourly.0 /srv/rsnapshot/hourly.1

Который занимает приблизительно 2 часа. Я понимаю, что там существует огромное количество крошечных файлов.

$ sudo du -hs hourly.1
659G    hourly.1

Также, когда rsnapshot удаляет старое резервное копирование, это может занять много времени:-

/bin/rm -rf /srv/rsnapshot/daily.6/

Который берет о получасе.

Мои вопросы следующим образом, конфигурация сервера и некоторая статистика IO подробно изложены ниже. Я могу, конечно, обеспечить больше информации об отладке, если необходимо:-

Как я могу определить, где узкие места?

Я достигаю пределов того, что способно (мудрый IO) с этим полем?

Есть ли какие-либо тонкие настройки производительности, которые я мог сделать?

Я должен использовать другой уровень RAID?

Имело бы смысл подкачивать два из внутренних дисков RAID (половина каждого зеркала) с двумя 'другими половинами другого зеркала' на внешнем массиве?

Примечание: Я не несколько склонен сделать вещи как компиляция моего собственного ядра. Идеально я хотел бы придерживаться на 10.04 LTS, если нет некоторое волшебство в более поздних версиях, которое делает эту всю работу намного более быстрой.

Внутренне сервер имеет загрузочный диск SATA на 1x160 ГБ и диски на 4x2 ТБ:-

Disk /dev/sde: 160.0 GB, 160041885696 bytes
Disk /dev/sdf: 2000.4 GB, 2000398934016 bytes
Disk /dev/sdh: 2000.4 GB, 2000398934016 bytes
Disk /dev/sdi: 2000.4 GB, 2000398934016 bytes
Disk /dev/sdg: 2000.4 GB, 2000398934016 bytes

Четыре внутренних диска на 2 ТБ находятся в:-установки программного обеспечения MD RAID10

md0 : active raid10 sdg1[3] sdh1[0] sdi1[2] sdf1[1]
      3907023872 blocks 64K chunks 2 near-copies [4/4] [UUUU]

Дополнительно у меня есть внешняя дисковая полка EDGE10, которая соединена через PCI-E eSATA карта и содержит еще четыре диска 500 ГБ:-

Disk /dev/sda: 500.1 GB, 500107862016 bytes
Disk /dev/sdb: 500.1 GB, 500107862016 bytes
Disk /dev/sdc: 500.1 GB, 500107862016 bytes
Disk /dev/sdd: 500.1 GB, 500107862016 bytes

Это - также установка как массив RAID10 MD

md1 : active raid10 sdb1[1] sda1[0] sdd1[3] sdc1[2]
      976767872 blocks 64K chunks 2 near-copies [4/4] [UUUU]

md0 и md1 объединены для создания одного большого LVM.Примечание: Я только недавно добавил внешний массив, таким образом, это - в значительной степени пробел, я не думаю, что существуют любые блоки на нем прямо сейчас.

Это представлено как объем LVM:-

--- Logical volume ---
LV Name                /dev/data/data
VG Name                data
LV UUID                amZCgU-sQLi-R363-dUFx-Bcdf-iwlt-ZNnDp8
LV Write Access        read/write
LV Status              available
# open                 1
LV Size                4.54 TiB
Current LE             1190134
Segments               2
Allocation             inherit
Read ahead sectors     auto
- currently set to     512
Block device           251:0

Который отформатирован как EXT4 и смонтирован как/srv:-

/dev/mapper/data-data on /srv type ext4 (rw)

Существует много свободного пространства.

/dev/mapper/data-data
                      4.5T  2.2T  2.1T  51% /srv

Другая информация, которая могла бы быть полезным:-

$ uname -a
Linux ubuntuserver 2.6.32-32-server #62-Ubuntu SMP Wed Apr 20 22:07:43 UTC 2011 x86_64 GNU/Linux

.

00:11.0 SATA controller: ATI Technologies Inc SB700/SB800 SATA Controller [AHCI mode] (rev 40)
02:00.0 RAID bus controller: Silicon Image, Inc. SiI 3132 Serial ATA Raid II Controller (rev 01)

Когда выполнение CP управляет во время rsnapshot, я вижу следующее в iostat:-

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.55    0.00    5.47   66.14    0.00   27.85

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdb               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdc               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdd               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sde               0.00     0.00    0.10    0.00     0.80     0.00     8.00     0.00    0.00   0.00   0.00
sdf               0.00   407.50    0.00   66.80     0.00  3790.40    56.74   124.86 1524.88  13.55  90.50
sdh               0.00   406.90    0.00   66.90     0.00  3790.40    56.66    92.89 1230.52  13.21  88.40
sdi               0.00   407.80    5.50   70.20    44.00  3824.00    51.10   113.83 1333.84  12.34  93.40
sdg               0.00   406.80    6.10   71.60    48.80  3827.20    49.88    64.32  787.68  11.69  90.80
md0               0.00     0.00   11.50 1484.60    92.00 11876.80     8.00     0.00    0.00   0.00   0.00
dm-0              0.00     0.00   11.50 1484.70    92.00 11877.60     8.00  5331.18  471.91   0.63  94.70
md1               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00

Так в основном много записей, много IO ожидает.

Таким образом, прямо сейчас поле неактивно, я приостановил все задания.

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.00    0.00    0.00    0.00    0.00  100.00

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdb               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdc               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdd               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sde               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdf               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdh               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdi               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdg               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
md0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
md1               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00

Замечательные взгляды!

$ sudo hdparm -T -t /dev/sd[a-i]

/dev/sda:
 Timing cached reads:   2532 MB in  2.00 seconds = 1265.95 MB/sec
 Timing buffered disk reads:  270 MB in  3.02 seconds =  89.53 MB/sec

/dev/sdb:
 Timing cached reads:   2516 MB in  2.00 seconds = 1258.07 MB/sec
 Timing buffered disk reads:  264 MB in  3.02 seconds =  87.37 MB/sec

/dev/sdc:
 Timing cached reads:   2442 MB in  2.00 seconds = 1220.80 MB/sec
 Timing buffered disk reads:  272 MB in  3.00 seconds =  90.60 MB/sec

/dev/sdd:
 Timing cached reads:   2520 MB in  2.00 seconds = 1259.64 MB/sec
 Timing buffered disk reads:  272 MB in  3.02 seconds =  90.07 MB/sec

/dev/sde:
 Timing cached reads:   2524 MB in  2.00 seconds = 1261.48 MB/sec
 Timing buffered disk reads:  306 MB in  3.01 seconds = 101.56 MB/sec

/dev/sdf:
 Timing cached reads:   2366 MB in  2.00 seconds = 1183.28 MB/sec
 Timing buffered disk reads:  388 MB in  3.01 seconds = 128.88 MB/sec

/dev/sdg:
 Timing cached reads:   2536 MB in  2.00 seconds = 1267.52 MB/sec
 Timing buffered disk reads:  400 MB in  3.00 seconds = 133.12 MB/sec

/dev/sdh:
 Timing cached reads:   2538 MB in  2.00 seconds = 1269.08 MB/sec
 Timing buffered disk reads:  426 MB in  3.00 seconds = 141.90 MB/sec

/dev/sdi:
 Timing cached reads:   2538 MB in  2.00 seconds = 1268.57 MB/sec
 Timing buffered disk reads:  402 MB in  3.01 seconds = 133.69 MB/sec
10
задан 16 June 2011 в 11:27

1 ответ

К сожалению, кэш дорожки только относится к RAID5 и 6 - нет никакого эквивалента для RAID 0/1/10.

Производительность Ваших отдельных дисков (согласно hdparm) выглядит хорошо - они все работают как ожидалось для дисков того класса.

Мои предложения:

  1. Проверьте, что AHCI включен в BIOS и что внутренне установленные диски не используют режим IDE прежней версии. Существует взломанный BIOS для MicroServer, доступного, который также включает AHCI для eSATA порта также (см. эту ссылку для большего количества информации) - может стоить исследовать для дисков во внешнем корпусе, хотя они будут все еще ограничены путем нахождения позади множителя порта.
  2. Включите NCQ для всех дисков и посмотрите, имеет ли это значение (он мог бы, он не мог бы).
  3. Удостоверьтесь, что настройки файловой системы оптимизированы (монтирующийся noatime, nodiratime). Вы могли также отключить барьеры записи, но это может быть слишком опасно.
  4. Проверьте, видите ли Вы, любое преимущество от переключения планировщика ввода-вывода (noop может помочь здесь).
  5. Скорректируйте считанный вперед буфер и для md и для устройств LVM: blockdev --setra <size> /dev/md1 например (где <size> 512-байтовые секторы). Это только поможет чтениям все же.

Двумя другими вещами, которые могут повлиять на производительность, является выравнивание раздела и параметры создания файловой системы (шаг, и т.д.), но поскольку Вы используете современные инструменты, которые не должны быть проблемой.

3
ответ дан 23 November 2019 в 04:41

Другие вопросы по тегам:

Похожие вопросы: