Хотя использование каждого ядра довольно просто - другие значения могут оказаться непрактичными, по крайней мере, без запуска этого приложения в профилировщике некоторых типов.
Измерение использования QPI является чем-то весьма нетривиальным, если это вообще возможно. Intel vTune может быть в состоянии приобрести такие вещи, но только при использовании инструментальной версии ваших двоичных файлов.
Также на x86 нет способа выяснить использование L1, L2, L3 любого вида - вы можете получить низкоуровневые счетчики ЦП, чтобы измерить пропуски в кеше (но, вероятно, потребуется использовать инструментальные / профилированные двоичные файлы и всегда без что-то вроде vTune или PAPI).
Вы могли бы "легко" настроить что-то, чтобы перетащить все счетчики производительности нижнего уровня в SNMP и получить значения SNMP с помощью стандартных инструментов мониторинга с поддержкой SNMP, но помните, что извлечение SNMP - это то, что вы не хотите, чтобы происходило более 1 -2 / с макс. Или потяните эту информацию в нечто вроде collectd
.
Мне также кажется, что вы не понимаете проблемную область инструментов мониторинга. Они не предназначены для использования в качестве низкоуровневых аналитических зондов для поиска узких мест на уровне приложений / системы - в лучшем случае вы можете получить некоторые подсказки, какой ресурс (с точки зрения 10K футов) работает с полной загрузкой. Инструменты мониторинга и изменения - это то, что операционный персонал должен использовать, чтобы понять, какая часть их ИТ-системы в настоящее время используется и как, собирать исторические данные и прогнозировать будущее использование ресурсов и получать оповещения, когда что-то ломается.