Мониторинг обработки пространства ядра Linux

Я запускаю две "службы", которые обслуживаются в пространстве ядра Linux:

  • Сетевой экран Linux Netfilter ("iptables")
  • Балансировщик нагрузки виртуального сервера Linux ("IPVS", "LVS")

Теперь я хочу (производительность) контролировать мое "приложение", как и любое другое программное обеспечение, которое я использую. Что бы это было в принципе? Время процессора и память.

Как я могу получить это из ядра? Потребление памяти iptables можно оценить по размеру таблицы отслеживания соединений, то же самое для ipvs. Это нормально для меня, но любые советы приветствуются.

Но как насчет процессорного времени, затрачиваемого на обработку маршрутизации, межсетевого экрана и балансировки нагрузки?

Включает ли "системное" время обработку пересылки пакетов и фильтрацию? Как насчет ipvs-обработки?

1 ответ

Любое процессорное время, проведенное в ядре, учитывается как "системное". Это включает в себя всю обработку netfilter и IPVS, потому что это весь код пространства ядра.

Что касается памяти, опять же, все данные являются структурами данных ядра, поэтому они нигде не отображаются в качестве отдельной подотчетной группы. Как вы предлагаете, единственный способ получить представление о том, сколько памяти используется, - это изучить размер таблиц состояний conntrack и IPVS.

Другие вопросы по тегам