Назад | Перейти на главную страницу

iostat показывает 100% загрузку - что можно сделать для повышения производительности?

У меня есть выделенный веб-сервер с CentOS.

В последнее время у меня очень высокая нагрузка на сервер, вероятно, из-за узкого места ввода-вывода. iostat -mx 3 показывает:

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          12.15    0.00   19.97   67.89    0.00    0.00

Device:         rrqm/s   wrqm/s   r/s   w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await  svctm  %util
sda              15.33     6.67 32.67  0.67     2.58     0.03   160.00     0.27    8.20   7.03  23.43
sda1             15.33     6.67 32.67  0.67     2.58     0.03   160.00     0.27    8.20   7.03  23.43
sdb             134.67     0.00 145.33 10.67    13.34     0.19   177.59   131.25  963.31   6.41 100.03
sdb1            134.67     0.00 145.33 10.67    13.34     0.19   177.59   131.25  963.31   6.41 100.03
sdc               0.00    17.33  0.33 21.00     0.00     0.15    14.50     0.08    3.84   0.31   0.67
sdc1              0.00     0.00  0.00  0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdc2              0.00    14.33  0.33  9.33     0.00     0.09    19.86     0.04    4.28   0.48   0.47
sdc3              0.00     0.00  0.00  0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdc4              0.00     0.00  0.00  0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdc5              0.00     0.67  0.00  4.33     0.00     0.02     9.23     0.02    4.85   0.46   0.20
sdc6              0.00     0.00  0.00  0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdc7              0.00     2.33  0.00  7.33     0.00     0.04    10.55     0.02    2.68   0.18   0.13
sdc8              0.00     0.00  0.00  0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00

что можно сделать для повышения производительности? Мой веб-сервер читает множество больших файлов с этого жесткого диска. неужели 13МБ / с для HDD sata2 - это разумное значение? Я ожидал, что он будет выше.

верхний выход (только голова):

Cpu(s):  7.5%us,  5.5%sy,  0.0%ni,  4.1%id, 71.5%wa,  3.0%hi,  8.5%si,  0.0%st
Mem:   2048144k total,  2036732k used,    11412k free,    23732k buffers
Swap:  8385888k total,      192k used,  8385696k free,  1375064k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
15369 apache    15   0  116m 9.8m 3564 S  3.3  0.5   0:01.37 httpd
23491 apache    15   0  117m  10m 3644 S  3.3  0.5   0:00.55 httpd
21694 mysql     25   0  308m  49m 4752 S  3.0  2.5   1068:49 mysqld
25735 apache    15   0  117m  10m 3660 S  2.7  0.5   0:00.53 httpd
25909 apache    15   0  116m 9964 3548 S  1.0  0.5   0:00.15 httpd
14814 apache    15   0  117m  10m 3684 S  0.7  0.5   0:00.53 httpd
15708 apache    15   0  117m 9.9m 3564 S  0.7  0.5   0:00.66 httpd
21464 apache    15   0  117m  10m 3664 S  0.7  0.5   0:01.32 httpd
22997 apache    15   0  116m 9.8m 3656 R  0.7  0.5   0:04.16 httpd
23484 apache    15   0  117m  10m 3668 S  0.7  0.5   0:00.28 httpd

Спасибо

Я знаю, что это довольно старый поток, но я столкнулся с аналогичной проблемой

Device:         rrqm/s   wrqm/s   r/s   w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await  svctm  %util

sdb             134.67     0.00 145.33 10.67    13.34     0.19   177.59   131.25  963.31   6.41 100.03

Поэтому в моем случае, когда avgqu-sz достигает глубины очереди lun (/ sys / block / sdb / device / queue_depth), происходит насыщение диска, и в моем случае оно установлено на 128. Я просто увеличиваю его до 192, и теперь становится лучше Я знаю, что это не лучшее решение, но сейчас я не могу позволить себе заменить диск, так что это единственное решение, которое у меня есть.

То, что в основном показывает iostat, - это ваш диск насыщенный с участием IOPS.

man iostat:

• rrqm / s - количество запросов чтения, объединенных в секунду и помещенных в очередь на устройство.

• r / s - количество (после слияния) запросов чтения, выполненных за секунду для устройства.

Справочные данные о производительности HDDs IOPS, Википедия

Сравните числа.

13,34 МБ / с - это довольно медленно для жесткого диска серверного или настольного класса, но пропускная способность может быть затруднена из-за большого количества произвольного доступа. Если этот диск представлен на оборудовании как RAID 1 или RAID 5, это может частично объяснить вашу потерю пропускной способности.

Вы можете проверить свою реальную пропускную способность с помощью bonnie ++, когда веб-сервер отключен. Обычный настольный диск с интерфейсом SATA II должен достигать 40-70 МБ / с.

Вы можете добиться хорошего произвольного доступа, используя RAID 0 (избыточность BAD) или, в идеале, RAID 10 с> 4 дисками.

Обновление: вам также следует добавить столько оперативной памяти, сколько вы можете себе позволить. Показатели памяти показывают, что сервер уже кэширует большой объем данных в ОЗУ.

Вы можете обнаружить, что стоимость Amazon S3 и / или EC2 на самом деле более рентабельна, если учесть, сколько еще оборудования вам, возможно, придется купить.

Я настоятельно рекомендую вам подумать о замене sdb на SSD или RAID-массив с поддержкой SSD.