Дисковый ввод-вывод


Управление дисками мы рассматривали сначала в главе 8, а затем в главе 18. Как правило, быстродействие диска существенно ограничивает суммарную производительность вычислительной системы. Если программы постоянно ожидают завершения дисковых операций, прежде чем продолжить работу, их производительность начинает снижаться. Такая ситуация, называемая блокированием на диске, препятствует нормальной работе программ. Действенное решение состоит в том, чтобы установить более быстрые диски или больше дисков, либо перераспределить нагрузку на диски.

Операционная система FreeBSD предоставляет несколько инструментов для проверки дисковой активности, но я предпочитаю пользоваться утилитой gstat(8), поэтому продемонстрирую ее. Достаточно просто запустить команду gstat без аргументов, и она будет выводить обновленную информацию примерно каждую секунду:

Мы видим здесь разнообразную информацию о каждом диске, участке и разделе в виде отдельных строк для каждого устройства. Утилита gstat(8) показывает разнообразную полезную информацию, например, количество операций чтения в секунду (r/s), количество операций записи в секунду (w/s), скорость чтения и записи в килобайтах в секунду, а также число миллисекунд, затраченных на каждую операцию чтения и записи. Первое, на что следует обратить внимание, — колонка %busy, вторая справа.

Первая запись, раздел свопинга (1), у нас простаивает. А диск ad0 (2) загружен на 97 процентов. Неудивительно, что ощущается замедление работы системы! Чуть ниже видно, что наибольшая активность диска ad0 в действительности приходится на участок ad0s1 (3). Большинство разделов простаивает, лишь небольшая активность наблюдается в разделе ad0s1e. А вот раздел ad0s1f (4) очень перегружен, на него приходится 98,2% активности и сотни операций чтения в секунду. Проверив содержимое файла /etc/fstab или воспользовавшись командой mount(8), можно увидеть, что раздел ad0s1f является разделом /usr данного сервера. Какие-то процессы читают много, очень много данных с диска… Но что это за процессы? Чтобы ответить на этот вопрос, необходимо воспользоваться другим инструментом.

Комментарии запрещены.