Я работаю над агентом мониторинга, который работает с системами, использующими ядро Linux. Открыв / proc / stat, вы можете легко узнать, сколько времени один или все процессоры (совокупность) прожигают в ожидании завершения запросов ввода-вывода.
Я пытаюсь найти способ разбить это число, чтобы различать дисковый и сетевой ввод-вывод. Например, после преобразования единицы измерения тактов ядра в секунды вы увидите, что все ЦП вместе потратили 1024 секунды на ожидание ввода-вывода. Я хотел бы знать, сколько из них сгорело из-за медленных сетевых подключений.
Я не уверен, возможно ли это вообще, любая помощь приветствуется :) Я не вижу ничего в / proc / net или sysfs, что могло бы помочь.





Попробуйте посмотреть SystemTap. Он очень похож на Solaris DTrace, и вы можете получить различные уровни детализации.
Спасибо за ссылку! Я ждал стабильного порта dtrace для Linux, но еще никому не удалось это сделать.