Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Как собрать статистику процесса


(drshafikova) #1

Добрый день!

есть два процесса, они в фоновом режиме незаметно для пользователя занимаются построением тайлов (фоновое кэширование).

Собственно, мне нужно во время выполнения фонового кэширования собратать след. данные по этим 2м процессам: Загрузка процессора, Запись на диск/Чтение с диска, Загрузка сети.

Все это я могу посмотреть в Мониторе ресурсов, но он не позволяет эти данные сохранить, т.е. если фоновое кэширование идет 20мин, то чтобы оценить среднюю величину этих параметров я все эти 20 минут должна смотреть в Монитор ресурсов.

Возможно есть способ писать эту информацию в файл и уже его анализировать?


(Sergey Korol) #2

Язык программирования какой хоть используете?


(Mykhailo Poliarush) #3

В общем, можно например взять JMeter и там есть PerfMon.
C помощью него можно мониторить разные процессы, диск, трафик и т.д.
При чем это все можно разбивать по процессам.
http://jmeter-plugins.org/wiki/PerfMonMetrics/


(drshafikova) #4

О, спасибо за такой быстрый ответ! немного знаю java, но приложения не Java. Поковыряю PerfMon Metrics,читала что он мониторит во время теста, а у меня теста нет (т.е. из вне запустить фоновое кеширование невозможно), а ну в принципе я могу в тесте запрашивать состояние, и между запросами как раз мониторить. Надо смотреть, еще раз спасибо


(Mykhailo Poliarush) #5

Ну причем тут Java или нет. Просто JMeter позволяет мониторить внешние процессы.

Никто вам не запрещает создать тест без окончания и прослушивать нужные процессы.

Я уже не раз так делал, с одной стороны запускаю тесты, а на других серверах запускаю jmeter в “режиме отслеживания” и прослеживаю все что там происходит. Процесс может висеть и день и два без проблем. Проверено.

Да, мы пытаем отвечать чем побыстрее. Вот ответ на ваш пост уже через 8 минут :smile:


(drshafikova) #6

А что за режим отслеживания?
В тесте, который запрашивает не закэшированные тайлы N-пользователями плагин отлично работает, а вот если в тесте только PerfMon Metrics Collector, то процессы с таким именем не находятся. Вот то, что я пытаюсь заставить работать


(Mykhailo Poliarush) #7

Ну режим отслеживания - это я так назвал, нет такого понятия в JMeter. Это просто запуск с бесконечным циклом, который делает только одну вещь - мониторит что-то.

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

Вы лучше покажите как настраивали прослеживание за процессами внутри perfmon collector.

Вот где нужно делать настройки, в данном случае CPU


(drshafikova) #8

вот так настроены

причем процесс есть

наличие .exe в имени не влияет


(Mykhailo Poliarush) #9

а Process ID пробовали? а другие процессы пробовали мониторить? что происходит?

попробуйте еще PTQL https://support.hyperic.com/display/SIGAR/PTQL


(drshafikova) #10

для процессов видных в диспетчере задач работает, а вот для моих “демонических” пока никак


(drshafikova) #11

может то, что процесс является фоновым влияет? хотя в справке по плагину вроде этого не указано


(drshafikova) #12

с помощью PTQL откопать процессы удалось


(drshafikova) #13

не подскажите, как понимать загрузку ЦП свыше 100%?


(Dmitriy Zverev) #14

У Вас в системе 2 ядра, видимо => 200%


(Vol) #15

Использую фоновый perfmon через command line, по окончанию тестирования даю команду остановки и получаю csv с детальной информацией о работе процесса. Колонки можно добавлять\удалять.

Пример старта на ремоут машине для калькулятора:

  1. logman create counter PerfLog -s PC-NAME -u USER_NAME PASSWORD -c "\Process(Calc)\% Processor Time" "\Process(Calc)\% User Time" "\Process(Calc)\IO Read Bytes/sec" "\Process(Calc)\IO Write Bytes/sec" "\Process(Calc)\Private Bytes" "\Process(Calc)\Virtual Bytes" "\Process(Calc)\Working Set" "\Process(Calc)\Handle Count" "\Process(Calc)\Thread Count"
  2. logman update PerfLog -s PC_NAME -u USER_NAME PASSWORD -si 5 -f csv --v -ow
  3. logman start PerfLog -s PC_NAME

Пример стопа, получение результатов:

logman query -s
logman stop PerfLog -s

Удачи!


(drshafikova) #16

Процессы контролирую метрики собираю, когда стала сводить данные в общей таблице обнаружила следующее:
размер файла, который должен считать процесс чтобы построить кэш = 2 472 404 992байт, а вот количество считанной информации за время выполнения кэширования оказывается значительно меньше (примерно 500 000 000).
Если бы было больше я бы это объяснила, но вот когда меньше, я в тупике.
Проверила вариант, что кэш построен не полностью, но он не подтвердился, объем кэша и количество тайлов правильные