- How to find uptime of a linux process
- Как проверить время выполнения процесса в Linux
- Проверка времени процесса Linux с помощью Gnomon
- Установка Gnomon
- Использование Gnomon
- Доступны следующие варианты параметров:
- Проверка времени запущенного процесса с помощью команды ps
- Использование команды time в Ubuntu
- Заключение
- Как узнать, как долго длится процесс в Linux
- Узнать, как долго длится процесс в Linux
- You may also like
- 📜 Чтение файла построчно на Bash
- 📧 В чем разница между IMAP и POP3
- ✔️ Как управлять контейнерами LXD от имени обычного.
- 📜 Руководство для начинающих по созданию первого пакета.
- Феноменальная популярность электроники Xiaomi: основные причины
- 📜 Получение вчерашней даты в Bash: Практическое руководство
- Использование специальных гелей при мышечных болях
- 📦 Как расширить/увеличить файловую систему VxFS на Linux
- Услуги по размещению серверного оборудования в ЦОД
- Для чего выполняется ИТ консалтинг на предприятиях?
- Leave a Comment Cancel Reply
- • Свежие записи
- • Категории
- • Теги
- • itsecforu.ru
- • Страны посетителей
- IT is good
How to find uptime of a linux process
As «uptime» has several meanings, here is a useful command.
ps -eo pid,comm,lstart,etime,time,args
This command lists all processes with several different time-related columns. It has the following columns:
PID COMMAND STARTED ELAPSED TIME COMMAND
PID = Process ID
first COMMAND = only the command name without options and without arguments
STARTED = the absolute time the process was started
ELAPSED = elapsed time since the process was started (wall clock time), format [[dd-]hh:]mm:ss TIME = cumulative CPU time, «[dd-]hh:mm:ss» format
second COMMAND = again the command, this time with all its provided options and arguments
If you have a limited version of ps such as is found in busybox , you can get the process start time by looking at the timestamp of /proc/ . For example, if the pid you want to look at is 55.
# ls -al /proc | grep 55 dr-xr-xr-x 7 root root 0 May 21 05:53 55
. and then compare it with the current date.
# date Thu May 22 03:00:47 EDT 2014
can generate the etimes= with proc entries like etime=$(date -d «$(stat -c %y /proc/$
1234 being the process id.
example with two processes started at the same hour minute seconds but not the same milliseconds:
$ stat /proc/9355 . Access: 2017-11-13 17:46:39.778791165 +0100 Modify: 2017-11-13 17:46:39.778791165 +0100 Change: 2017-11-13 17:46:39.778791165 +0100 $ stat /proc/9209 . Access: 2017-11-13 17:46:39.621790420 +0100 Modify: 2017-11-13 17:46:39.621790420 +0100 Change: 2017-11-13 17:46:39.621790420 +0100
yes, too old and yet too hard stuff. I tried with the above proposed «stat» method but what if I had «touch»-ed the PID proc dir yesterday? This means my year-old process is shown with yesterday’s time stamp. Nah, not what I need 🙁
In the newer ones, it’s simple:
ps -o etimes -p ELAPSED 339521
as simple as that. Time is present in seconds. Do whatever you need it for. With some older boxes, situation is harder, since there’s no etimes. One could rely on:
ps -o etime -p ELAPSED 76-03:26:15
which look a «a bit» weird since it’s in dd-hh:mm:ss format. Not suitable for further calculation. I would have preferred it in seconds, hence I used this one:
ps -o etime -p --no-headers | awk -F '(:)|(-)' 'BEGIN;=1;i--) s=s+a[i]*$i>END' 339544
do not parse the output of etime because busybox 1.29.3 changed the format. use the stat + /proc method instead
Such a simple thing is not properly answered after 5 years?
I don’t think you can accurately get milliseconds. eg. if you see man procfs and see /proc/$$/stat which has field 22 as startime, which is in «clock ticks», you would have something more precise, but clock ticks aren’t going at a perfectly constant rate (relative to ‘wall clock time’) and will be off. sleeping and certain things (ntpd I guess) offset it. For example on a machine running ntpd, with 8 days uptime and has never slept, dmesg -T has the same problem (I think. ), and you can see it here:
# date; echo h > /proc/sysrq-trigger; dmesg -T | tail -n1 ; date Fri Mar 3 10:26:17 CET 2017 [Fri Mar 3 10:26:16 2017] sysrq: SysRq : HELP : loglevel(0-9) reboot(b) crash(c) terminate-all-tasks(e) memory-full-oom-kill(f) kill-all-tasks(i) thaw-filesystems(j) sak(k) show-backtrace-all-active-cpus(l) show-memory-usage(m) nice-all-RT-tasks(n) poweroff(o) show-registers(p) show-all-timers(q) unraw(r) sync(s) show-task-states(t) unmount(u) force-fb(V) show-blocked-tasks(w) Fri Mar 3 10:26:17 CET 2017
# example pid here is just your shell pid=$$ # current unix time (seconds since epoch [1970-01-01 00:00:00 UTC]) now=$(date +%s) # process start unix time (also seconds since epoch) # I'm fairly sure this is the right way to get the start time in a machine readable way (unlike ps). but could be wrong start=$(stat -c %Y /proc/"$pid") # simple subtraction (both are in UTC, so it works) age=$((now-start)) printf "that process has run for %s seconds\n" "$age"
Как проверить время выполнения процесса в 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 отображает секунды, прошедшие между каждой строкой, но это можно настроить.
Посмотрите на приведенный ниже пример, который показывает время, затраченное на выполнение 5 раз запроса ping к серверу google DNS.
Общее время составляет 3,3842 секунды.
Доступны следующие варианты параметров:
Ниже приведен список доступных вариантов:
Тип временной метки для отображения.
elapsed-line: Количество секунд, в течение которых отображаемая строка была последней.
elapsed-total: Количество секунд с начала процесса.
absolute: Абсолютная временная метка в UTC.
-f | —format=»format»: Форматирует абсолютную временную метку, используя строки формата даты PHP. Если тип — elapsed-line или elapsed-total, этот параметр игнорируется. По умолчанию используется формат «H:i:s.u O«.
Пример отключения обновления в реальном времени:
-h | —high=seconds : Высокий порог
-m | —medium=seconds : Средний порог. Работает так же, как и высокий порог, описанный выше, но вместо этого окрашивает метку времени в яркий цвет.
Проверка времени запущенного процесса с помощью команды ps
Вы можете использовать команду ps для проверки времени работы определенного процесса. Сначала нужно найти идентификатор процесса, а затем использовать его для поиска.
Чтобы определить идентификатор процесса, вы можете использовать такой инструмент, как pidof
Далее используйте ps с опциями -o etime, чтобы узнать время работы.
Опция etime отображает прошедшее время с момента запуска процесса в виде [[DD-]hh:]mm: ss. Из приведенного выше примера следует, что процесс выполняется 5 дней, 11 часов и 3 минуты. Используйте опцию etimes, чтобы получить прошедшее время в секундах.
Этот параметр команды также можно использовать для нескольких процессов. В примере ниже будет показано время запуска и время выполнения всех процессов на моем сервере Ubuntu.
PID — идентификатор запущенного процесса.
STARTED — Время, когда процесс был запущен.
ELAPSED — Общее время работы процесса.
COMMAND — Обработка выполненной команды.
Использование команды time в Ubuntu
Команда time сообщает сколько времени заняло выполнение команды в системе Linux. Вы можете установить ее, если она отсутствует в системе Ubuntu. Для этого используйте следующую команду.
Использование команда time:
Выход времени будет иметь:
- Истекшее реальное время между вызовом команды и ее завершением.
- Процессорное время пользователя.
- Системное процессорное время.
Рассмотрим следующий пример для проверки использования диска в каталоге /root.
# time du -sh /root/
464K /root/
real 0m0.007s
user 0m0.002s
Из вывода видно, что фактическое время выполнения команды составляет 0m0.007s.
Давайте сделаем еще один, пинг на 8.8.8.8.
Фактическое время выполнения составляет 2,059 секунды.
Заключение
Теперь вы знаете, как узнать время выполнения процесса в Linux. Первый метод идеально подходит для интерактивных процессов. Для процессов которые работают в фоновом режиме, всегда можно узнать их время выполнения с помощью команды ps.
Как узнать, как долго длится процесс в Linux
Вы когда-нибудь хотели узнать, как долго процесс запускается в вашем Linux-боксе?
Это краткое руководство поможет вам узнать время работы активного процесса.
Вам не нужны никакие приложения для мониторинга.
В Unix-подобных операционных системах существует команда ps, которая используется для отображения информации об активных процессах.
Используя команду ps, мы можем легко узнать, как долго работает процесс.
Узнать, как долго длится процесс в Linux
Команда ps имеет разные спецификаторы формата (ключевые слова), которые могут использоваться для управления выходным форматом.
Мы будем использовать следующие два ключевых слова, чтобы найти время работы активного процесса.
- etime – прошедшее время с момента запуска процесса в виде [[DD-] hh:] mm: ss.
- etimes – прошедшее время с момента запуска процесса в секундах.
Во-первых, вам нужно узнать PID процесса. Следующая команда отображает PID процесса dhcpcd.
Как видно из вышеприведенного вывода, 8299 является PID процесса dhcpcd.
Теперь мы можем узнать, как долго этот процесс выполнялся с помощью команды:
$ ps -p 8299 -o etime ELAPSED 04:05:37
Вы также можете просмотреть прошедшее время в секундах, используя ключевое слово etimes.
$ ps -p 8299 -o etimes ELAPSED 14749
Не только один процесс, мы также можем отображать время безотказной работы всех процессов с помощью команды:
ps -eo pid,comm,lstart,etime,time,args
ps -eo pid,comm,lstart,etimes,time,args
Первая команда отображает время безотказной работы всех процессов Linux в формате [[DD-] hh:] mm: ss, а на последнем отображает время безотказной работы в секундах.
Вот пример вывода второй команды.
Как видно из вышесказанного, у нас есть время безотказной работы всех процессов с шестью столбцами.
- PID – идентификатор процесса
- COMMAND (второй столбец) – имя команды без параметров и / или аргументов.
- STARTED – абсолютное время начала процесса.
- ELAPSED – Истекшее время с момента запуска процесса в виде [[dd-] hh:] mm: ss.
- TIME – суммарное время процессора, “[dd-] hh: mm: ss” format.
- COMMAND (последний столбец) – имя команды со всеми ее опциями и аргументами.
Для получения дополнительной информации о команде ps проверьте страницы руководства.
И это все на данный момент. Теперь вы знаете, как узнать, как долго работает процесс в вашей Linux-системе. Надеюсь это поможет. Я скоро буду здесь с другим полезным руководством.
itisgood
4 способа сохранить выполнение команды после выхода из сеанса SSH
Как запускать команду Linux каждые X секунд навсегда
You may also like
📜 Чтение файла построчно на Bash
📧 В чем разница между IMAP и POP3
✔️ Как управлять контейнерами LXD от имени обычного.
📜 Руководство для начинающих по созданию первого пакета.
Феноменальная популярность электроники Xiaomi: основные причины
📜 Получение вчерашней даты в Bash: Практическое руководство
Использование специальных гелей при мышечных болях
📦 Как расширить/увеличить файловую систему VxFS на Linux
Услуги по размещению серверного оборудования в ЦОД
Для чего выполняется ИТ консалтинг на предприятиях?
Leave a Comment Cancel Reply
• Свежие записи
• Категории
• Теги
• itsecforu.ru
• Страны посетителей
IT is good
В этой статье вы узнаете, как удалить удаленный Git-репозиторий. Процесс прост, но его полезно запомнить, чтобы избежать неожиданностей в будущем. Git – это…
В 11-й версии своей операционной системы Microsoft серьезно переработала интерфейс и убрала несколько привычных функций. Нововведения не всем пришлись по душе. Мы дадим…
Продажа ноутбука нередко становится хлопотным занятием. Кроме поиска покупателя, продавцу необходимо подготовить устройство перед проведением сделки. Но если последовательно выполнить все шаги, ничего…
Вы можете оказаться в ситуации, когда вам нужно использовать скрипт шелла для чтения файлов построчно. В этом руководстве я расскажу о нескольких способах…
Вторичное жильё выгоднее для молодых семей, желающих приобрести свою первую квартиру. Сталкиваясь с ипотечным кредитованием, можно избежать много лишней суеты и проблем, если…