#linux #bash #kernel-module #monitor
#linux #bash #kernel-module #монитор
Вопрос:
Я работаю над проектом, который состоит из распределенной сетевой файловой системы ядра.
Я дошел до того, что тестирую свою реализацию. Для этого я хотел бы отслеживать загрузку процессора, и под этим я имею в виду загрузку ядра моего модуля.
Как я понял из аналогичного сообщения, нет способа отслеживать загрузку модуля ядра, поэтому мне было интересно, какой способ сделать это наилучшим образом?
Примером тестирования моего приложения может быть параллельный запуск dd
команды. На данный момент я использую pidstat -c "dd" -p ALL
для мониторинга загрузки системы команду dd. В то же время я смотрю на top
инструмент ( top -d 0.2
чтобы увидеть более «точные» значения).
Учитывая все это, я не уверен, что мой способ мониторинга достаточно точен.
Любой совет будет высоко оценен. Спасибо.
Ответ №1:
Вы могли бы использовать что-то вроде collectd для мониторинга всех видов показателей, возможно, показывая их с помощью Graphite для простого обзора с помощью некоторых инструментов обработки (например, средних значений по времени).
Тем не менее, вместо мониторинга загрузки процессора вы можете измерить пропускную способность. Максимально загрузив систему, вы сможете легко определить, какой ресурс является узким местом: дисковый ввод-вывод, сетевой ввод-вывод, процессор, память или что-то еще. А для распределенной сетевой файловой системы вам нужно убедиться, что узким местом является очень четкий дисковый или сетевой ввод-вывод.
Комментарии:
1. Спасибо l0b0 за ваш подробный ответ. Дело в том, что я разрабатываю FS, которая хранится в основной памяти, поэтому дисковый ввод-вывод — это не моя точка зрения. Кроме того, сеть не является основным направлением (для этого есть много инструментов, просто погуглите). То, что я искал, — это отслеживать загрузку процессора для моего модуля ядра или разумный способ по сравнению с тем, что я объяснил. Есть идеи? 🙂