Использование «top» в Linux в качестве полупостоянного инструментария - PullRequest
2 голосов
/ 08 октября 2008

Я пытаюсь найти лучший способ использовать top в качестве полупостоянного инструментария при разработке встроенного Linux. (Инструментарий будет удален из окончательных тестовых и производственных выпусков.)

Мой первый шаг - просто добавить это в init.d: ​​

top -b -d 15 >/tmp/toploop.out &

Это выполняется в «пакетном» режиме каждые 15 секунд. Давайте предположим, что / tmp имеет много места…

Вопросы:

  1. Стоит ли выбирать 15 секунд для общего мониторинга?
  2. Насколько серьезно это нарушает состояние системы, кроме дискового пространства?
  3. Какие другие (возможно, лучшие) инструменты можно использовать, как это?

Ответы [ 7 ]

5 голосов
/ 08 октября 2008

Посмотрите на collectd . Это очень легкая система мониторинга системы, закодированная для обеспечения производительности.

2 голосов
/ 08 октября 2008

Мы используем sysstat для мониторинга подобных вещей.

1 голос
/ 09 октября 2008

На работе для мониторинга системы во время стресс-тестов мы используем инструмент под названием nmon .

Что мне нравится в nmon, так это возможность экспортировать в XLS и создавать для вас красивые графики.

Генерирует статистику для:

  • Использование памяти
  • Загрузка ЦП
  • Использование сети
  • Дисковый ввод / вывод

Удачи:)

1 голос
/ 09 октября 2008

Жаль, что вы не сказали, что вы отслеживаете.

  1. Вы должны решить, в порядке ли 15 секунд или нет. Не стесняйтесь опускать его ниже, если хотите (и иметь быстрый жесткий диск)
  2. Не беспокойтесь, если вы не используете мягкую систему реального времени
  3. Посмотрите на инструменты, предложенные в других ответах. Я добавлю еще одно предложение: «iotop», для ответа на вопросы «кто бьет HDD».
1 голос
/ 08 октября 2008

Если вы ищете общую нагрузку, вероятно, достаточно времени безотказной работы. Однако, если вам нужна конкретная информация о процессах, вы любите приключения и у вас включена файловая система / proc, возможно, вы захотите написать свои собственные инструменты. Основным преимуществом этой среды является то, что вы можете сосредоточиться именно на том, что вы хотите, и минимизировать нагрузку, вносимую в систему.

Файловая система proc предоставляет вашему приложению доступ для чтения к памяти ядра, которая отслеживает многие интересные переменные. Чтение из / proc - один из самых легких способов получить эту информацию. Кроме того, вы можете получить больше информации, чем предоставлено top. Я делал это в прошлом, чтобы получить время, затрачиваемое пользователем и системой на этот процесс. Кроме того, вы можете использовать это для получения информации о количестве файловых дескрипторов, открытых процессом. Вы также можете использовать это, чтобы получить подробную информацию о том, как работает сетевая система.

Большая часть этой информации предварительно обрабатывается другими приложениями, которые можно использовать, если вы получите необходимую информацию. Тем не менее, довольно просто читать необработанную информацию. Сделайте man proc для получения дополнительной информации.

1 голос
/ 08 октября 2008

Я подозреваю, что 15 секунд будет более чем достаточно, если вы на самом деле не хотите наблюдать за тем, что происходит в режиме реального времени, но здесь это не так.

Что касается нагрузки, на холостом ходу PIII 900 МГц с 768 МБ оперативной памяти, работающей под управлением Ubuntu (не знаю, какая версия, но не старше года), я обновляю каждые 0,5 секунды, и загрузка процессора составляет около 2%. При 15-секундных обновлениях наблюдается загрузка процессора на 0,1%.

В зависимости от того, что именно вы хотите, вы можете использовать выходные данные uptime, free и ps, чтобы получить большую, если не всю, информацию top.

1 голос
/ 08 октября 2008

Может оказаться, что vmstat и iostat с задержкой и без счетчика повторов - лучший вариант.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...