Как проверить время выполнения процесса в Linux

Вы задавались вопросом, как найти время выполнения процесса в системе Linux или Unix? Это руководство покажет вам несколько инструментов, которые могут пригодиться при попытке найти время выполнения процесса в Linux.

Иногда приходится работать с медленно выполняющимися процессами. Медленным интернетом или запущенной программой, для которой необходимо отследить время выполнения. Давайте рассмотрим лучшие инструменты, которые вам стоит попробовать для этого.

Проверка времени процесса Linux с помощью Gnomon

Gnomon – это утилита, используемая для аннотирования протоколов консоли временными метками и поиска медленных процессов в системе Linux. Этот инструмент полезен для поиска долго выполняющихся процессов, когда вы хотите получить справку о том, что занимает так много времени.

Установка Gnomon

Так как Gnomon – это инструмент который написан на Node.js, в вашей системе должен быть установлен Node.js. Он необходим для установки gnomon с помощью менеджера пакетов npm. После того как инструмент npm будет установлен в вашей системе Linux. Перейдите к установке Gnomon с помощью команды:

$ npm install -g gnomon
/usr/local/bin/gnomon -> /usr/local/lib/node_modules/gnomon/bin/gnomon
+ gnomon@1.5.0
added 56 packages in 13.076s

Использование Gnomon

Чтобы добавить метку времени к каждой строке, нужно передать команду в gnomon. Это покажет, сколько времени заняло выполнение процесса. По умолчанию gnomon отображает секунды, прошедшие между каждой строкой, но это можно настроить.

Использование Gnomon
Использование Gnomon

Посмотрите на приведенный ниже пример, который показывает время, затраченное на выполнение 5 раз запроса ping к серверу google DNS.

Пример который показывает время затраченное на выполнение запроса ping
Пример который показывает время затраченное на выполнение запроса ping

Общее время составляет 3,3842 секунды.

Доступны следующие варианты параметров:

Ниже приведен список доступных вариантов:

-t | --type=<elapsed-line|elapsed-total|absolute> :

Тип временной метки для отображения.
elapsed-line: Количество секунд, в течение которых отображаемая строка была последней.
elapsed-total: Количество секунд с начала процесса.
absolute: Абсолютная временная метка в UTC.

=

Пример:

Пример использования Gnomon
Пример использования Gnomon

-f | –format=”format”: Форматирует абсолютную временную метку, используя строки формата даты PHP. Если тип – elapsed-line или elapsed-total, этот параметр игнорируется. По умолчанию используется формат “H:i:s.u O“.

-r | --real-time=<number|false>

Пример отключения обновления в реальном времени:

Gnomon Отключение обновления в реальном времени
Gnomon Отключение обновления в реальном времени

-h | –high=seconds : Высокий порог

-m | –medium=seconds : Средний порог. Работает так же, как и высокий порог, описанный выше, но вместо этого окрашивает метку времени в яркий цвет.

Проверка времени запущенного процесса с помощью команды ps

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

Чтобы определить идентификатор процесса, вы можете использовать такой инструмент, как pidof

$ pidof mpd
1388

Далее используйте ps с опциями -o etime, чтобы узнать время работы.

$ ps -p 1388 -o etime

ELAPSED
05-11:03:02

Опция etime отображает прошедшее время с момента запуска процесса в виде [[DD-]hh:]mm: ss. Из приведенного выше примера следует, что процесс выполняется 5 дней, 11 часов и 3 минуты. Используйте опцию etimes, чтобы получить прошедшее время в секундах.

Этот параметр команды также можно использовать для нескольких процессов. В примере ниже будет показано время запуска и время выполнения всех процессов на моем сервере Ubuntu.

$ ps -eo pid,lstart,etime,args

Время запуска и время выполнения всех процессов на сервере Ubuntu
Время запуска и время выполнения всех процессов на сервере Ubuntu

Вывод имеет 4 колонки:

PID – идентификатор запущенного процесса.

STARTED – Время, когда процесс был запущен.

ELAPSED – Общее время работы процесса.

COMMAND – Обработка выполненной команды.

Использование команды time в Ubuntu

Команда time сообщает сколько времени заняло выполнение команды в системе Linux. Вы можете установить ее, если она отсутствует в системе Ubuntu. Для этого используйте следующую команду.

$ sudo apt-get install time

Использование команда time:

# time [-p] command [arguments...]

Выход времени будет иметь:

  • Истекшее реальное время между вызовом команды и ее завершением.
  • Процессорное время пользователя.
  • Системное процессорное время.

Рассмотрим следующий пример для проверки использования диска в каталоге /root.

# time du -sh /root/

464K /root/
real 0m0.007s
user 0m0.002s

Из вывода видно, что фактическое время выполнения команды составляет 0m0.007s.

Давайте сделаем еще один, пинг на 8.8.8.8.

Еще одна проверка пинг с командой time
Еще одна проверка пинг с командой time

Фактическое время выполнения составляет 2,059 секунды.

Заключение

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

Nazario

Я — Nazario, создатель и автор сайта linuxwin.ru, специализируюсь на информационных технологиях с акцентом на системное администрирование Linux и Windows, веб-разработку и настройку различных систем. Мои глубокие знания и обширный практический опыт в этих сферах позволяют мне создавать детальные руководства и учебные материалы, ценные для пользователей всех уровней.

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

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

Linux и Windows
Выскажите своё мнение или присоединяйтесь к обсуждению:

Отправляя комментарий, вы даете согласие на обработку ваших данных в соответствии с политикой конфиденциальности и даёте согласие на их использование.