Uzun süren işlemler için ps geçen zaman biçimini anlama


10

psBelirli bir eşik değerinden daha uzun çalışan işlemleri tanımlamak için bir alıştırmanın parçası olarak bir komut kullanıyorum .

Bir know process komutu için geçen süreyi almak için aşağıdaki şablonu kullanıyorum:

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

Kısa süreli işlemlerle fark ettim, etime (geçen zaman) değeri formatı alır minutes:secondsve bundan bir sürecin ne kadar süredir çalıştığını kolayca belirleyebilirim.

Çok uzun süren işlemler için (günler boyu), biçimi anlamıyorum.

htop126 saat boyunca çalışan bir MySQL sunucu işlemi var .

Yürütmek ps -eo etime,command | grep mysql | grep -v grep | awk '{print $1}'bana bir değer veriyor 9-03:35:32.

En iyi tahminim, bunun 9 şey, 3 saat, 35 dakika, 32 saniye anlamına gelmesidir. 9 için birimlerin ne olduğunu anlayamıyorum.

Söz konusu işlem 126 saat, yaklaşık 5.25 gün sürmektedir. Bu, yukarıdaki çıktıdaki 9'un günleri temsil etmediğini göstermektedir. (9 * 12) saat + 3 saat + 35 dakika + 32 saniye 5 günden az olduğu için yarım gün olamazlar.

Uzun süren süreçler için gördüğüm geçen zaman değerini nasıl yorumlayabilirim? Yukarıdaki çıktıdaki 9'a hangi birimler eşlik ediyor?


Burada POSIX saat biçimini görüyorsunuz. Dakika: saniye BSD saat biçimidir. Linux ps, geçtiğiniz seçeneklere bağlı olarak birini veya diğerini görüntüler.
Gilles 'SO- kötü olmayı bırak

Tekrar kontrol etmek için, etimesyerine deneyin etimeve sonuçları karşılaştırın.
Ruslan

Yanıtlar:


16

Standarda göre :

POSIX yerel ayarında, işlemin başlatılmasından bu yana geçen süre şu şekilde:

[[dd-]hh:]mm:ss

burada dd gün sayısını, ss saat sayısını, mm dakika sayısını ve ss saniye sayısını temsil eder. Dd alanı ondalık tam sayı olmalıdır. Ss, dd ve ss alanları, solda sıfırlarla doldurulmuş iki basamaklı ondalık sayılar olmalıdır.

Yani, ister inanın ister inanmayın, 9 gün demektir. Htop'tan çıktıyı yanlış yorumlayabilir misiniz? Top (zaman biçimine sahip minutes:seconds) ne diyor? Htop'ta baktığınız alanın etime eşdeğer olduğundan emin misiniz? (örneğin, olabilir bu 126 demektir dakika arasında işlemci zaman?)


Onay için teşekkürler. htop kesinlikle 126 saat gösteriyor, ama bunun duvar zamanı değil, başka bir zaman (belki de CPU zamanı) olabileceğini düşünüyorum. Htop'taki alan etime eşdeğer değil, burada yanlış olduğunu varsaydım.
Jon Cram

1
@JonCram Saatlerin olduğundan emin misiniz? Orijinal üst kısım yalnızca dakikaları gösterir (yani saatlere bölmek yerine 60'ın üzerindeki dakikalara gidecektir), 126: 37 gibi bir sayı 126 dakika ve 37 saniye anlamına gelir. Htop'un aynı olabileceğini düşünüyordum. 9 günde 126 saat CPU zamanı çok gibi görünüyor.
Random832
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.