Пояснення:
У нас є сервер:
- Модель: HP ProLiant DL160 G6
- 4 x 240 Гб SSD (RAID-10)
- Оперативна пам’ять DDR3 72 Гб
- 2 х L5639
- RAID-контролер HP P410 (256 МБ, V6.40, версія версії: 8.40.41.00)
SSD-накопичувачі - це 4 абсолютно нові 2.5 "Intel 530 зі швидкістю читання 540 МБ / с та швидкістю запису 490 МБ / с.
- CentOS 6
- Файлові системи є ext4
але це результат тесту на швидкість читання на рейді 10:
hdparm -t /dev/sda
/dev/sda:
Timing buffered disk reads: 824 MB in 3.00 seconds = 274.50 MB/sec
[root@localhost ~]# hdparm -t /dev/mapper/vg_localhost-lv_root
/dev/mapper/vg_localhost-lv_root:
Timing buffered disk reads: 800 MB in 3.01 seconds = 266.19 MB/sec
і це для швидкості запису:
dd bs=1M count=512 if=/dev/zero of=test conv=fdatasync
512+0 records in
512+0 records out
536870912 bytes (537 MB) copied, 4.91077 s, 109 MB/s
ми сподівалися на швидкість зчитування 1 Гб з рейдом 10, але 270 Мб - це навіть не швидкість одного диска!
Запитання:
- Чому так повільно?
- Це через RAID-контролер?
Оновлення 1 - однакова швидкість читання / запису:
Після зміни деяких налаштувань, зазначених у відповідях, я маю результат нижче:
(Хтось знає, чому він показує 4 Гб замість 400 МБ як швидкість читання ?!)
EDIT: схоже, що команда була неправильною, і ми повинні використати -s144g для цієї кількості оперативної пам’яті, тому вона показує 4 Гб (як це запропоновано в коментарях ewwhite)
[root@192 ~]# iozone -t1 -i0 -i1 -i2 -r1m -s56g
Iozone: Performance Test of File I/O
Version $Revision: 3.408 $
Compiled for 64 bit mode.
Build: linux
Record Size 1024 KB
File size set to 58720256 KB
Command line used: iozone -t1 -i0 -i1 -i2 -r1m -s56g
Output is in Kbytes/sec
Each process writes a 58720256 Kbyte file in 1024 Kbyte records
Children see throughput for 1 initial writers = 135331.80 KB/sec
Children see throughput for 1 rewriters = 124085.66 KB/sec
Children see throughput for 1 readers = 4732046.50 KB/sec
Children see throughput for 1 re-readers = 4741508.00 KB/sec
Children see throughput for 1 random readers = 4590884.50 KB/sec
Children see throughput for 1 random writers = 124082.41 KB/sec
але стара hdparm -t /dev/sda
команда все ще показує:
Диск із завантаженим диском часу: 810 Мб за 3,00 секунди = 269,85 Мб / сек
Оновлення 2 (пакет настроєних утиліт) - Швидкість читання зараз становить 600 Мб / с:
Нарешті, сподіваємось, що ми відключили кеш від рейдового контролера та зробили деякі інші речі раніше, не пощастило, але, оскільки ми перезавантажили сервер і знову встановили ОС, ми забули встановити "настроєні утиліти", як було запропоновано у відповіді ewwhite (Дякую ewwhite за цей дивовижний пакет, який ви запропонували)
Після встановлення tuned-utils
та вибору enterprise-storage
профілю швидкість читання зараз становить ~ 600 МБ / с +, але швидкість запису все ще дуже повільна (~ 160 МБ) (:
Ось результат для iozone -t1 -i0 -i1 -i2 -r1m -s144g
команди:
Children see throughput for 1 initial writers = 165331.80 KB/sec
Children see throughput for 1 rewriters = 115734.91 KB/sec
Children see throughput for 1 readers = 719323.81 KB/sec
Children see throughput for 1 re-readers = 732008.56 KB/sec
Children see throughput for 1 random readers = 549284.69 KB/sec
Children see throughput for 1 random writers = 116389.76 KB/sec
Навіть з hdparm -t /dev/sda
командою у нас є:
Диск із завантаженим диском часу: 1802 Мб за 3,00 секунди = 600,37 Мб / сек
Будь-які пропозиції щодо дуже повільної швидкості запису?
Оновлення 3 - Деякі відомості, запитувані в коментарях:
Швидкість запису все ще дуже низька (~ 150 Мб / с, що не становить навіть 1/3 одного диска)
Вихід для df -h
та fdisk -l
:
[root@192 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 441G 3.2G 415G 1% /
tmpfs 36G 0 36G 0% /dev/shm
[root@192 ~]# fdisk -l
Disk /dev/sda: 480.0 GB, 480047620096 bytes
255 heads, 63 sectors/track, 58362 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00040c3c
Device Boot Start End Blocks Id System
/dev/sda1 * 1 58363 468795392 83 Linux
iozone -t1 -i0 -i1 -i2 -r1m -s144g
. :(