Мониторинг загрузки процессора несколькими одноименными процессами (Решено)
-
День добрый!
Есть необходимость мониторить сервер 1С. Он запускает для работы 2-6 процессов с именем rphost.exe.
Если я пытаюсь мониторить количество занимаемой ими памяти черезProcess.WkSet(rphost.exe)то все работает вроде нормально, вижу общую занимаемую ими память(примерно прикинул, вроде сходится все), но когда пытаюсь посмотреть загрузку процессора через\Процесс(rphost)\% загруженности процессораожидаемо получаю данные только по одному(видимо у кого PID меньше) процессу, знаю, что это вроде ограничение самой Windows и ее счетчиков производительности. Нет ли аналога этого счетчика в агенте NetXMS? Либо какого-то лайфхака как мониторить общую загрузку CPU этими процессами? -
Можно собирать Process.CPUTime(rphost.exe) - это даст общее время использованое всеми процессами с таким названием в миллисекундах. Затем в трансформации включить подсчет разницы (delta calculation), и добавить формулу пересчета в проценты:
return $1 * 100 / 60000;
(принимаем что собирается каждые 60 секунд, если чаще, то соответственно поменять интервал в формуле).
-
-
Возникли вопросы:
- Какой тип delta calculation выбирать? Simple Delta?
- Как правильно трактовать данный параметр, он ведь будет не в процентах, как обычная загрузка процессора? Какая цифра будет соответствовать 100% загрузки процессора?
- Если время сбора данных 5 секунд, нужно ставить "/5000" в формуле трансформации? Тут вроде все ясно, но на всякий случай решил уточнить.
-
Да, "simple delta". Можно еще выбрать "average per second" - тогда будет средняя загрузка за секунду - только делить в таком случае надо будет на 1000.
Это будет процент процессорного времени, затраченный на исполнение данного процесса. Так что по идее это та-же самая закрузка в процентах - просто когда она считается для системы в целом, то это процент процессорного времени, затраченный на исполнение всех процессов в системе.
Да, надо делить на 5000.
-
-
Это процент использованного процессорного времени - 100% это полная загрузка, т.е. процессор вообще не простаивал. Но если система многопроцессорная, то 100% это полная загрузка одного ядра - поскольку за каждый интервал времени максимальное кол-во потраченного процессорного времени будет кол-во ядер * период. Загрузка процессом 200% означает что процесс полностью использовал 2 ядра. Если хотите процент от общей мощности системы, то надо делить значение на кол-во процессоров.
-
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login