2008-10-08 8 views
2

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

Мой первый проход просто добавьте в init.d: ​​

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

Это работает топ в «пакетном» режиме каждые 15 секунд. Предположим, что/TMP имеет много места ...

Вопросы:

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

ответ

1

Возможно, вы обнаружили, что vmstat и iostat с задержкой и без повторного счетчика - лучший вариант.

1

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

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

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

2

Мы используем sysstat для наблюдения за такими вещами.

5

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

1

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

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

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

+0

+1. Да, я знаком с/proc! Я надеялся не писать что-то, но вы правы в том, что можете сосредоточиться на том, что вам нужно. Хорошо, где мое окно emacs ... – 2008-10-08 20:45:01

1

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

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

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

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

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

  • Использование памяти
  • Использование CPU
  • Использование сети
  • Disk I/O

Удачи :)