Может показаться странным, но в версии Windows Server 2012 R2 произошли некоторые не очень приятные изменения счетчиков производительности CPU. Речь не идет о добавлении каких-то новых счетчиков или удалении существующих, набор остался точно таким же, каким мы его видели в версии 2012 и ранее. О нововведении постараюсь подробно рассказать ниже.
Если вам интересны счетчики производительности Windows, рекомендую обратиться к основной статье тематики – Счетчики производительности.
Изменения счетчиков производительности CPU
Как вам может быть известно, названия счетчиков производительности Windows в той или иной степени привязаны к основному языку ОС. Если у вас английская версия, то и счетчики будут иметь названия на английском языке; если же вы пользуетесь русскоязычной версией, то добавляется ещё и русская вариация названий счетчиков, которой вы можете пользоваться полноценно. Выглядят названия примерно таким образом:
\Processor Information(_Total)\% Processor Time
\Сведения о процессоре(_Total)\% загруженности процессора
Выше вы можете увидеть названия одного и того же счетчика на разных языках. В системном мониторе это выглядит так:
Для мониторинга добавлены два одинаковых счетчика, только один взят с сервера, на котором установлена полностью английская версия ОС, а другой счетчик взят с русскоязычной версии ОС другого сервера.
Помимо понятного всем словесного представления счетчиков, существует также и их числовое представление, призванное унифицировать использование счетчиков производительности на операционных системах с разными языками. Посмотреть какое представление будет иметь нужный вам счетчик вы можете открыв реестр:
1 |
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009 |
Вам нужно значение параметра Counter, в нем вы найдете полный список счетчиков на данной системе и их числовые варианты. Русскоязычная версия хранится практически по тому же пути, просто вместо 009 нужно заходить в 019.
Упоминаемый выше счетчик % загруженности процессора будет иметь цифровое представление:
\1848(_Total)\1850
Не буду подробно углубляться в механизм определения соответствий словесных значений цифровым, но с этого момента начинается самое интересное. Дело в том, что \Processor Information(_Total)\% Processor Time соответствует \1848(_Total)\1850 только в версиях ОС до Windows Server 2012 включительно, а с версии Windows Server 2012 R2 тот же счетчик будет иметь совсем другое числовое представление:
\4674(_Total)\4676
Зачем вообще беспокоиться об этих вещах, спросите вы? Дело в том, что цифровое представление широко используется в той же системе мониторинга ZABBIX (подробнее о ZABBIX читайте в рубрике ZABBIX, а также непосредственно в статье о performance counters – Шаблоны Windows в ZABBIX) и, выражаясь простым языком, для версии Windows Server 2012 R2 придется создавать отдельный шаблон мониторинга, если вам нужно отслеживать параметры именно группы Processor Information. С группой Processor все осталось как прежде и если вам не нужно использовать специфичные для Processor Information счетчики, пользуйтесь устаревшей, но проверенной группой Processor.
Заметил это все чисто случайно, когда на серверах с ОС версии 2012 R2 счетчики работали нормально, а с более старыми версиями отказывались возвращать данные.