Назад | Перейти на главную страницу

Мониторинг производительности в Linux / Unix

Я запускаю несколько серверов Windows и (Debian и Ubuntu) серверов Linux и AIX.

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

В Windows я использую для этого Windows Performance Monitor (perfmon). Настроил эти счетчики:

Для узких мест:

Для общей деятельности:

(Подробнее о выборе этих счетчиков на: http://itcookbook.net/blog/windows-perfmon-top-ten-counters )

Это действительно хорошо работает. Это позволяет мне искать в одном месте и определять наиболее распространенные узкие места.

Итак, мой вопрос: как я могу сделать что-то эквивалентное (или очень похожее) на серверах Linux?

Я немного посмотрел на nmon (http://www.ibm.com/developerworks/aix/library/au-analyze_aix/), который представляет собой бесплатный инструмент мониторинга производительности, разработанный для AIX, но также доступный для Linux. Однако я не уверен, позволяет ли мне nmon устанавливать указанные выше счетчики. Может быть, это потому, что Linux и AIX не позволяют отслеживать эти же самые меры. Итак, какие из них выбрать и почему?

Если nmon не подходит для этого, что вы порекомендуете?

Анализ основных показателей системы не дает хорошего представления о производительности. Он может указывать на то, насколько ограничена производительность, но если вы хотите измерить производительность своих приложений, вам действительно нужно посмотреть на реальные транзакции.

Тем не менее, инструментов для измерения производительности нет отбоя. Я использую нагиос. Немного не хватает управления тенденциями / емкостью, но он удивительно гибок в отчетности, эскалации, изоляции ошибок и добавлении пользовательских сценариев (которые вам понадобятся, если вы хотите измерить ваш сделки). Конечно, существуют зонды, охватывающие все перечисленные вами показатели как для MSWindows, так и для Linux.

Мы используем Nagios для базового мониторинга и Graphite для мониторинга производительности. Графит - очень масштабируемое решение. В сочетании с плагином Diamond вы можете измерить практически что угодно без особых усилий.

http://graphite.wikidot.com/
https://github.com/BrightcoveOS/Diamond

Мне нравится munin, потому что он прост в установке и использовании. (apt-get install munin munin-node)

Есть несколько хороших вариантов, некоторые из них F / OSS (некоторые F / OSS с доступными контрактами на поддержку, некоторые полностью коммерческие для этого.

я использую http://collectd.org/ с моим собственным сценарием (на основе этот), чтобы нарисовать красивые картинки из полученных данных в файлах rrd и присылать мне время от времени электронные письма. Это может быть не так практично для вас (я контролирую только пару машин).

Для более крупной установки вам, вероятно, понадобится что-то вроде Zabbix (еще один вариант с открытым исходным кодом, но считается более «корпоративным», чем collectd).

Вы можете найти более полный список на http://en.wikipedia.org/wiki/Comparison_of_network_monitoring_systems

В общем, как системный администратор я выполняю несколько шагов, чтобы отслеживать все серверы, которые я использую. Системные команды, такие как top, free -m, vmstat, iostat, iotop, sar, netstat и т. Д. Ничто не приближается к этой утилите linux, когда вы анализируете / отлаживаете проблему. Эти команды дают вам четкое представление о том, что происходит на вашем сервере.

Nagios: Он превосходит все инструменты мониторинга / оповещения. Его очень легко настроить, но очень сложно настроить для новичков. Хотя есть некоторые плагины nagios.

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

New Relic, Zabbix и Munin - это некоторые другие известные сервисы.

Я наткнулся на похожий вопрос ранее. Вы можете увидеть, помогут ли вам другие ответы.