У меня проблемы с вводом / выводом в нескольких системах Linux, которые я администрирую. Они проявляются в том, что процессы часто блокируются на несколько секунд в таких простых системных вызовах, как open (), unlink () или close () для файлов (что является проблемой, потому что некоторым задействованным программам требуется довольно низкая задержка ввода-вывода для работы должным образом). Это правда, что рассматриваемые системы испытывают некоторую умеренную нагрузку ввода-вывода, но я вряд ли могу подумать, что этого будет достаточно, чтобы оправдать такое огромное время ожидания. Иногда для завершения вызовов может потребоваться более 15 секунд (хотя чаще они могут занимать 1, 2 или 3 секунды или около того).
Мой вопрос: как я могу узнать, почему это происходит? Что мне хотелось бы, так это какой-нибудь инструмент, который мог бы сказать мне, какие процессы блокируются в ядре, и почему то, на чем они спят, занято, что с ним происходит и тому подобное. Есть ли такой инструмент, или есть какой-то другой способ отладки того, что происходит?
С другой стороны , конечно, если у вас есть какие - либо подсказки относительно того , что на самом деле это происходит, как это может избежать?
Для записи, файловая система, которую я использую - XFS.
источник