“Zaman” süreçleri tam olarak durduğunda tam olarak ne anlama geliyor?


11

Neden kritik takas uyarıları aldığımızı inceleyeceğim ve şöyle bir şey bulacağım:

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  SWAP COMMAND
14683 user1     30  10 16.0g 772m  744 S  0.3  0.3 277:24.87 6.5g MATLAB
14576 user1     30  10 8125m 1.1g  736 S  0.3  0.4 261:16.73 4.1g MATLAB

burada TIME + sütunu bu işlemler için dondurulur.

Benim sorum, yukarıda, bu ne anlama geliyor?

Anladığım kadarıyla, durma zamanı CPU tarafından işlenmemiş / işlem görmüyor demektir. Ancak yukarıdaki örnek% 0,3 CPU kullanımını göstermektedir, bu yüzden çok küçük olmasına rağmen, zaman sütunu artmaya devam etmemeli mi?

Bu süreçler "bitti" mi? Hangi durumda, nasıl temizlenirler? Onları başlatan kullanıcının bu kaynakların serbest bırakılması için onları veya başka bir şeyi kabul etmesi gerekiyor mu?


1
% 0.3'te, bu her 3/4 saniyede 1 santigrat saniyedir. Yeterince bekledin mi?
Stéphane Chazelas

1
Akıllara durgunluk veren vahiy: zaman artışı CPU kullanımının yüzdesi olarak hesaplanıyor Vay. Eğer CPU% 100 olsaydı, bu gerçek zamana eşit olurdu?
CptSupermrkt

5
TIME, CPU'nun (herhangi bir CPU) başlatıldığından beri işlemdeki herhangi bir iş parçacığını çalıştırmak için harcadığı toplam süredir. Bu nedenle, birkaç CPU çekirdeğiniz varsa ve işlem çok iş parçacıklıysa, gerçek zamanlıdan daha hızlı gidebilir.
Stéphane Chazelas

Yanıtlar:


10

Gibi sahte bir iş çalıştırır sleep 120ve sonra izlemek htopdurumunda, durumu Saka "UYKU" olduğunu ve süreç TIMEboyunca 0: 00.00 kalır göreceksiniz .

Bunun nedeni, bu işlemin TIMEsütunun amacı olan 0 CPU zamanı tüketmesidir . Belirli bir işlemin kullandığı CPU süresini izler.

              ss # 1

Bir işlem birden fazla CPU çekirdeğinde çalışabiliyorsa, bu sayı zaman zaman kafa karıştırıcı olabilir, çünkü görünüşe göre mevcut olandan daha fazla zaman tüketebilir. Burada devam eden şey, X sayıda çekirdeğiniz varsa, zamanınızın X * TIME olarak görünebileceğidir.


4

Bunun gibi bir eşitsizlik elde etmenizin nedeni, TIME + sütununun listelenen sürecin ölü yumurtlanmış çocukları tarafından kullanılan CPU süresini etkilememesidir. Bu nedenle, görüntülediğiniz satırların (muhtemelen, hızlı bir şekilde) hemen ölmekte olan çocuklar yumurtlar ..

So, the CPU usage is due to spawned children which do not count in the TIME+ column. 'S' anahtarıyla kümülatif zaman yapmak için üst kısmı değiştirebilirsiniz.

Ama araştırmaya çalıştığınız şeyin yanlış göstergelerine baktığınızı düşünüyorum.

strace -p <pid> burada arkadaşınızdır ve koşu sürecine ve tam olarak ne yaptığına göz atmanıza izin verir.

Strace sayısız seçenek alıyor. Bazı dikkate değer seçenekler yüzden iyi bir yapmak, -f, -ff, -i, v, vb .. Strace en yararlı bir araçtır dahil man straceböyle giderme konularda verir seçenekleri kendiniz ve göz

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.