Zrozumienie formatu czasu, który upłynął od ps, dla długotrwałych procesów

10

Używam pspolecenia jako części ćwiczenia, aby zidentyfikować procesy działające dłużej niż określony próg.

Korzystam z następującego szablonu, aby uzyskać upływ czasu na polecenie znanego procesu:

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

Zauważam, że w przypadku procesów krótko działających wartość etime (czas, który upłynął) przyjmuje format minutes:secondsi na podstawie tego mogę łatwo określić, jak długo proces był uruchomiony.

W przypadku bardzo długotrwałych procesów (dni) nie rozumiem formatu.

Mam proces serwera MySQL, który htoppokazuje, że działa przez 126 godzin.

Wykonanie ps -eo etime,command | grep mysql | grep -v grep | awk '{print $1}'daje mi wartość 9-03:35:32.

Domyślam się, że oznacza to 9, 3 godziny, 35 minut, 32 sekundy. Nie mogę ustalić, jakie są jednostki dla 9.

Cały proces trwał 126 godzin, czyli około 5,25 dnia. Sugeruje to, że 9 w powyższym wyniku nie reprezentuje dni. Nie mogą też trwać pół dnia, ponieważ (9 * 12) godzin + 3 godziny + 35 minut + 32 sekundy to mniej niż 5 dni.

Jak interpretować upływający czas, który widzę w procesach długotrwałych? Jakie jednostki towarzyszą 9 w powyższej produkcji?

Jon Cram
źródło
Tutaj widzisz format czasu POSIX. Minuty: sekundy to format czasu BSD. Linux pswyświetla jedno lub drugie w zależności od opcji, które przekazujesz.
Gilles „SO- przestań być zły”
Aby dokładnie sprawdzić, spróbuj etimeszamiast etimei porównaj wyniki.
Ruslan

Odpowiedzi:

16

Zgodnie ze standardem :

W ustawieniach regionalnych POSIX czas, jaki upłynął od uruchomienia procesu, w postaci:

[[dd-]hh:]mm:ss

gdzie dd oznacza liczbę dni, hh liczbę godzin, mm liczbę minut, a ss liczbę sekund. Pole dd musi być liczbą całkowitą dziesiętną. Pola hh, mm i ss są dwucyfrowymi liczbami całkowitymi dziesiętnymi wypełnionymi po lewej stronie zerami.

Zatem 9 oznacza dni, niezależnie od tego, czy w to wierzysz, czy nie. Czy mógłbyś źle interpretować dane wyjściowe z htop? Co mówi top (który ma format czasu minutes:seconds)? Czy jesteś pewien, że pole, na które patrzysz w htopie, jest równoważne etime? (Na przykład, może to znaczy 126 minut z CPU czas?)

Losowo 832
źródło
Dziękuję za potwierdzenie. htop zdecydowanie pokazuje 126 godzin, ale myślę, że może to nie być czas naścienny, ale inny czas (być może czas procesora). Pole w htopie nie jest równoważne etime, tutaj błędnie założyłem.
Jon Cram
1
@JonCram Czy na pewno masz godziny? Oryginalna góra pokazuje tylko minuty (tzn. Pójdzie do minut powyżej 60, a nie do godzin), liczba taka jak 126: 37 oznacza 126 minut i 37 sekund. Myślałem, że htop może być taki sam. Wydaje się, że 126 godzin czasu procesora w ciągu 9 dni.
Random832