Инструменты мониторинга производительности и команда статуса процесса (ps) - PullRequest
0 голосов
/ 01 марта 2019

В настоящее время я ищу инструменты мониторинга производительности, которые выдают метрики для конкретных процессов ОС.Я хочу что-то более легкое (чтобы не влиять на производительность системы, которую он отслеживает в настоящее время), поэтому я написал простой скрипт bash, который использует команду ps для извлечения CPU% и Memory%, записывает их в файл испит в течение указанной пары секунд и повторяется до тех пор, пока не завершится.

У меня вопрос: правильный ли это подход, потому что, как указано в документации ps ( здесь ):

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

Я знаю о другихтакие способы, как использование ps_util в python и получение информации таким способом.Однако это (и любой другой инструмент) быстрее или надежнее?Если да, можете ли вы порекомендовать инструмент?Или команда ps достаточно безопасна?

1 Ответ

0 голосов
/ 01 марта 2019

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

Загрузка ЦП в настоящее время выражается в процентах времени, потраченного на выполнение в течение всего времени жизни процесса.Это не идеально, и это не соответствует стандартам, которым в противном случае соответствует PS.Использование ЦП вряд ли будет составлять ровно 100%.

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

Для более подробного объяснения различий между top и ps вы можете прочитать ответы на этот вопрос: https://unix.stackexchange.com/questions/58539/top-and-ps-not-showing-the-same-cpu-result

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