Отладка дискового ввода-вывода на серверах Linux
Задержки дискового ввода-вывода могут существенно увеличить время ответа служб, в особенности на сервере данных. Используйте утилиты kSar и iostat, чтобы исследовать операции диска и проверить высокие показатели использования диска на серверах Linux.
Анализ использования диска с помощью ksar
На каждом сервере посмотрите графический вывод утилиты ksar, чтобы проверить высокие показатели использования дисков.
- Использование диска для каждого устройства показано в разделе Диск. Например, выберите на панели навигации, чтобы вывести информацию о задержках и использовании для устройстваsdb. Использование диска для устройства показано под надписью %Util. Как правило, показанное значение должно быть в диапазоне от 0 до 25%, чтобы допускать периодические пики активности диска. Существенные задержки дискового ввода-вывода наблюдаются, когда постоянно выводится значение в диапазоне от 75 до 100%, и это приводит к росту времени ответа, если устройство используется для табличных пространств или журналов транзакций баз данных.
- Проверяя использование процессора, выберите Показать суммарное использование процессора в меню Опции. Каждый компонент процессорного времени будет показан в виде столбика суммы. Красная полоса в столбике указывает время ожидания ввода-вывода. Значительная красная полоса указывает на проблемы с задержкой для одного или нескольких устройств на сервере. На сервере данных проблемы задержек обычно возникают, когда память на диске сконфигурирована неправильно. Дополнительную информацию о рекомендациях по конфигурированию дискового хранения DB2 смотрите в разделе Система хранения базы данных.
Анализ использования диска с помощью iostat
Используйте утилиту iostat, входящую в пакет sysstat, чтобы вывести операции диска для каждого устройства на сервере. Можно также запустить команду iostat в пакетном режиме, чтобы выводить в файл показатели активности диска через регулярные интервалы. Например, введите следующую команду от имени пользователя root пользователь на сервере,
чтобы выводить 10 итераций статистики каждые 10 секунд в файл:
iostat -d -k -t -N -x 10 10 > iostat_output.txt &
В следующем примере вывод iostat указывает на значительную активность чтения с диска для устройства sdb:
03/23/2018 15:46:05
Устройство: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
sda 0,00 2,28 0,37 1,32 27,87 14,40 50,22 0,00 2,34 1,52 0,26
sdb 0.00 4,05 5514,38 59,35 25594,43 580,80 9,39 2,03 0,37 0,15 83,95
03/23/2018 15:47:05
Устройство: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
sda 0,00 1,37 0,00 1,10 0,00 9,87 17,94 0,00 1,39 0,62 0,07
sdb 0,00 2,47 5388,98 18,07 24925,82 198,08 9,29 2,03 0,38 0,13 71,15
Анализ использования диска с помощью iotop
Чтобы проверить активность ввода-вывода на уровне процессов, установите и запустите команду iotop.
Можно также запустить эту команду в пакетном режиме, чтобы проверить совокупный вклад в общие показатели ввода-вывода для каждого выполняемого процесса. Например, введите следующую команду от имени пользователя root пользователь на сервере,
чтобы выводить 10 итераций статистики каждые 10 секунд в файл iotop_output.txt:
iotop -P -o -t -a -d 10 -n 10 -b > iotop_output.txt &