файловые системы — Как я могу проверить, насколько занят HDD PHP?

Я заметил, что некоторые облачные хостинговые решения имеют очень плохой дисковый ввод-вывод. Это приводит к нескольким проблемам, которые можно решить, если сценарий подождет, пока диск не станет менее занятым.

С помощью PHP возможно ли отслеживать занятое (или не очень занятое) состояние файловой системы, не ухудшая ситуацию?

9

Решение

Если это система Linux, вы можете самостоятельно рассчитать использование диска — язык, на котором вы решите ее реализовать, будет использовать те же понятия.

Ваше ядро, скорее всего, использует sysfs что делает много информации о вашей системе доступной на /sys; мы можем регулярно получать информацию о желаемых дисках и рассчитывать их использование на основе различий между ними.

В моей системе я буду смотреть на диск, sdaВаш может отличаться.

$ cat /sys/class/block/sda/stat
42632       25  2045318   247192  6956543  7362278 123236256 23878974        0  3703033 24119492

Теперь, если мы посмотрим на Документация ядра за /sys/class/block/<dev>/stat мы можем увидеть следующие описания для каждого столбца вывода.

Name            units         description
----            -----         -----------
read I/Os       requests      number of read I/Os processed
read merges     requests      number of read I/Os merged with in-queue I/O
read sectors    sectors       number of sectors read
read ticks      milliseconds  total wait time for read requests
write I/Os      requests      number of write I/Os processed
write merges    requests      number of write I/Os merged with in-queue I/O
write sectors   sectors       number of sectors written
write ticks     milliseconds  total wait time for write requests
in_flight       requests      number of I/Os currently in flight
io_ticks        milliseconds  total time this block device has been active
time_in_queue   milliseconds  total wait time for all requests

Если мы запустим это по расписанию cron и определим некоторые времена ожидания, мы увидим, как долго мы ждем каждую операцию. Вы также будете иметь другие статистические данные об общей IOPS и пропускной способности RW. Документация идет более подробно по каждому полю.

Какой бы язык не был выбран, дескриптор файла, который нужно открыть для получения информации о диске, будет

/sys/class/block/<dev>/stat

Если мы делаем это по расписанию, мы можем рисовать причудливые графики;)

введите описание изображения здесь

17

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]