Как запрограммировать счетчики производительности оборудования - PullRequest
2 голосов
/ 24 мая 2009

Я имел дело с этой проблемой для моей диссертации. Цель состоит в том, чтобы разработать инструмент мониторинга сервера .net специально для серверов Windows 2K8. Пока все, что я могу получить, это счетчики производительности программного обеспечения. Имеются в виду те, которые доступны через perfmon и классы WMI.

Но есть еще одна проблема, которая заключается в том, что мне нужно иметь возможность отслеживать такие вещи, как количество пропущенных TLB или текущая пропускная способность памяти. И вот где я застрял ... Поскольку не существует стандартного .net способа получить эти счетчики, я читал код из программ с открытым исходным кодом, таких как Oprofile. Но поскольку я не знаю, что именно ищу, на этом фронте не было достигнуто большого прогресса.

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

Заранее спасибо.

1 Ответ

3 голосов
/ 24 мая 2009

Наиболее широко используемая библиотека для чтения счетчиков производительности - это Performance API (PAPI) . На самом деле PAPI - это два API ( высокий уровень и низкий уровень ). Я склонен использовать низкоуровневый, поскольку нахожу его более интуитивным, но это может быть только я.

В PAPI есть два типа событий. Предустановленные события должны быть независимыми от платформы, хотя они могут незначительно отличаться в зависимости от того, как они подсчитываются внутри. Они включают в себя промахи TLB и задержки памяти, так что, возможно, вы могли бы начать там. Если это не соответствует вашим потребностям, вы можете захотеть взглянуть на собственные события, которые относятся к вашему конкретному оборудованию и обычно включают в себя каждое событие, которое может рассчитывать оборудование. Используйте papi_native_aval, чтобы получить их список.

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

Если вам нужно больше, то, возможно, взгляните на perfmon2 , который более новые версии PAPI используют в Linux, если он доступен.

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