Розуміння формату часу, який минув ps для тривалих запущених процесів


10

Я використовую psкоманду як частину вправи для визначення процесів, що працюють довше заданого порогу.

Я використовую наступний шаблон, щоб отримати минулий час для команди відомого процесу:

ps -eo etime,command | grep <something to identify a process> | grep -v grep | awk '{print $1}'

Я помічаю при короткочасних процесах значення etime (минуло часу) приймає формат, minutes:secondsі з цього можу легко визначити, як довго процес працює.

Для дуже тривалих процесів (довгих днів) я не розумію формат.

У мене є сервер MySQL, який htopпоказує, що працює 126 годин.

Виконання ps -eo etime,command | grep mysql | grep -v grep | awk '{print $1}'дає мені значення 9-03:35:32.

Я найкраще здогадуюсь, що це означає 9 щось, 3 години, 35 хвилин, 32 секунди. Я не можу зрозуміти, що таке одиниці для 9.

Цей процес тривав 126 годин, приблизно 5,25 дня. Це говорить про те, що 9 у вищенаведеному виході не представляють днів. Вони не можуть бути і півдня, оскільки (9 * 12) годин + 3 години + 35 хвилин + 32 секунди менше 5 днів.

Як інтерпретувати значення минулого часу, яке я бачу для тривалих процесів? Які одиниці супроводжують 9 у наведеному вище висновку?


Тут ви бачите формат часу POSIX. Хвилини: секунди - формат часу BSD. Linux psвідображає те чи інше, залежно від параметрів, які ви передаєте.
Жил "ТАК - перестань бути злим"

Для повторної перевірки спробуйте etimesзамість etimeі порівняйте результати.
Руслан

Відповіді:


16

Відповідно до стандарту :

У локалі POSIX минув час з початку процесу у вигляді:

[[dd-]hh:]mm:ss

де dd позначає кількість днів, hh кількість годин, mm кількість хвилин, ss кількість секунд. Поле dd має десяткове ціле число. Поля hh, mm та ss мають бути двоцифровими десятковими цілими числами, зафіксованими зліва нулями.

Отже, 9 означають дні, вірите ви чи ні. Чи можете ви неправильно інтерпретувати вихід з htop? Що говорить верхній (який має формат часу minutes:seconds)? Ви впевнені, що поле, яке ви дивитесь у htop, еквівалентне etime? (Наприклад, може це означає 126 хвилин від процесорного часу?)


Дякуємо за підтвердження. htop, безумовно, показує 126 годин, але я думаю, що це може бути не стінний час, а інший час (можливо час CPU). Поле в htop не еквівалентне etime, тут я припустив неправильно.
Джон Крам

1
@JonCram Ви впевнені, що це години? Оригінальний верх показує лише хвилини (тобто це піде на хвилини понад 60, а не на години), число на зразок 126: 37 означає 126 хвилин і 37 секунд. Я думав, що htop може бути однаковим. 126 годин процесорного часу за 9 днів здається чималим.
Випадково832
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.