приложение для мониторинга (использование процессора и кеша) на одном Linux-компьютере с 80 ядрами - PullRequest
2 голосов
/ 05 декабря 2011

Я ищу инструмент для мониторинга производительности для моего приложения, который будет собирать / визуализировать в режиме реального времени загрузку ЦП и кеша на одном компьютере Linux, таком как IBM System или HP ProLiant с типичной конфигурацией 8 процессоров / 80 ядер.Приложение представляет собой самодельный многопоточный код C +, который использует OpenMP.
Этот инструмент мониторинга не должен работать 24 часа в сутки;он не должен отправлять уведомления по электронной почте.
Я запусту этот инструмент непосредственно перед отправкой команд в мои приложения, приложения выполнят команду (это может занять не более нескольких минут).В течение этого промежутка времени мне нужно проанализировать:

 - usage of cores
 - data movement between processors 
 - usage of L1, L2, L3 caches
 - some other metrics (help me here) which can help to find bottleneck in application 
 performance and resource utilization

Я думаю, что такие инструменты, как Nagios / Zabbix, слишком тяжелы для этой задачи.
С другой стороны, используя инструменты командной строки, такие как "top" и"Сар" для 80 ядер не очень удобно, и было бы неплохо иметь графику (не обязательно в режиме реального времени) ...

Ответы [ 2 ]

2 голосов
/ 05 декабря 2011

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

Измерение использования QPI является чем-то весьма нетривиальным, если это вообще возможно. Intel vTune может быть в состоянии приобрести такие вещи, но только при использовании инструментальной версии ваших двоичных файлов.

Также на x86 нет способа выяснить использование L1, L2, L3 любого вида - вы можете получить низкоуровневые счетчики ЦП, чтобы измерить пропуски в кеше (но, вероятно, потребуется использовать инструментальные / профилированные двоичные файлы и всегда без что-то вроде vTune или PAPI).

Вы могли бы "легко" настроить что-то, чтобы перетащить все счетчики производительности нижнего уровня в SNMP и получить значения SNMP с помощью стандартных инструментов мониторинга с поддержкой SNMP, но помните, что извлечение SNMP - это то, что вы не хотите, чтобы происходило более 1 -2 / с макс. Или потяните эту информацию в нечто вроде collectd.

Мне также кажется, что вы не понимаете проблемную область инструментов мониторинга. Они не предназначены для использования в качестве низкоуровневых аналитических зондов для поиска узких мест на уровне приложений / системы - в лучшем случае вы можете получить некоторые подсказки, какой ресурс (с точки зрения 10K футов) работает с полной загрузкой. Инструменты мониторинга и изменения - это то, что операционный персонал должен использовать, чтобы понять, какая часть их ИТ-системы в настоящее время используется и как, собирать исторические данные и прогнозировать будущее использование ресурсов и получать оповещения, когда что-то ломается.

0 голосов
/ 05 декабря 2011

SiteScope, Hyperic или любая комбинация сценариев оболочки, собственных утилит ОС и БД для хранения результатов могут выполнять эту работу.

...