Мониторинг использования ядра ЦП на серверах терминалов

У меня терминальные серверы windows 2003, многоядерные. Я ищу способ контролировать использование отдельных ядер ЦП на этих серверах. У конечного пользователя может быть запущенный процесс (например, Internet Explorer или Outlook). Ядро для этого процесса может увеличиться почти до 100%, оставив другие ядра «нормальными». Таким образом, общее использование ЦП на сервере — это просто сумма всех ядер или если 7 ядер на 8-ядерном сервере простаивают, а 8-е работает на 100%, то 1/8 = 12,5% использования.

Какую утилиту я могу использовать для мониторинга нескольких серверов? Если загрузка ЦП для ядра «высокая», что бы я использовал для определения процесса-нарушителя, а затем как я мог бы автоматически убить этот процесс, если он был в списке «утвержденных процессов уничтожения»?

Продукт от http://www.packettrap.com/ под названием PT360 был бы идеальным, за исключением того, что они используют SMNP для получить данные, и SMNP, по-видимому, дает только общее использование ЦП, оно не разбито по отдельным ядрам. Взгляните на их опцию Dashboard с «гаджетом» для измерения процессора. Это именно то, что мне нужно, лишь бы это работало на уровне ядра.

Любые идеи?


person airrob    schedule 07.09.2008    source источник


Ответы (3)


Индивидуальное использование ЦП доступно через стандартные счетчики производительности Windows. Вы можете отслеживать это в perfmon.

Однако это не даст вам желаемого результата. Если поток/процесс не был явно привязан к одному ЦП, то неуправляемый процесс не будет увеличивать нагрузку на одно ядро ​​до 100%, в то время как все остальные простаивают. Неуправляемый процесс будет прыгать между всеми процессорами. Я не знаю, почему Windows планирует потоки таким образом, предположительно потому, что нет никакой выгоды от принудительного сходства и некоторых потерь из-за необходимости обрабатывать прерывания на определенных ядрах.

Вы можете увидеть это достаточно легко просто в диспетчере задач. Наблюдайте за графиками отдельных ЦП, когда у вас запущен один процесс, привязанный к вычислительным ресурсам.

person Rob Walker    schedule 07.09.2008

Вы можете попробовать Spotlight для Windows. Вы можете графически детализировать все виды показателей производительности и нагрузки. Это бесплатное программное обеспечение.

person Tomalak    schedule 08.10.2008

perfmon от Microsoft может контролировать каждый отдельный процессор. perfmon также работает удаленно, и вы можете контролировать различные аспекты Windows.

Я не уверен, помогает ли это находить запущенные процессы, потому что планировщик Windows не всегда выполняет процесс на одном и том же ЦП -> на вашей машине с 8 ЦП вы увидите 12,5% использования всех ЦП, если один процесс убегает.

person simon    schedule 07.09.2008