[BSD] Terhelt a gép, de nem látom hogy mi terheli

Laszlo Nagy gandalf at designaproduct.biz
2007. Feb. 16., P, 22:30:03 CET


Antal Rutz wrote:
> Laszlo Nagy wrote:
>   
>> Megoldódott a probléma, köszi mindenkinek hogy fordított rá időt. :-)
>>     
>
> Konkluzio?
>   
Az volt, hogy egy program elindított egy másikat, ciklusban. Mindig várt 
arra, hogy befejeződjön. A child process viszont hibás volt, ezért 
betöltődés után azonnal elszállt hibával. A top azért nem mutatott 
semmit, mert kell neki egy kis idő (1 másodperc?) hogy lemérje, mennyi 
CPU-t foglal egy processz. Nem volt rá ideje. Ez a másodpercenként 
elindított néhány száz processz emiatt "láthatatlan" volt top-ból. A 
megoldást egy nagyon okos ember mondta meg, aki figyelmes lett a vmstat 
kimenetében a következő értékre:

4960 prcfr

Ez a "pages freed by exiting processes", 5000 nagyon magasnak számít. Ebből rájött, hogy nagyon sok processz indul el, folyamatosan. Miután ezt megmondta, elkezdtem gondolkodni hogy mi lehet az, és rájöttem hogy biztos ez a program az. És tényleg. :-)

A dolgot az nehezítette, hogy ez a program már napok óta futott hibátlanul. A környezetében beállt változás tette hibássá, és persze eszembe sem jutott, hogy ilyen baj lehet. Azt gondoltam, hogy ha valami foglalja a CPU-t akkor az látszódni fog top-ból. Roszul gondoltam.

Mondjuk az azért furcsa volt, hogy egy másik programot futtatva az csak 0.3% CPU időt kapott, pedig az is CPU bound volt. Úgy látszik, hogy az új processz indításának mindig magasabb prioritása van. (De ez még így mindig nem kerek, mert csak 20% volt system, a többi 80% user volt, akkor meg miért nem jutott CPU idő más processzeknek???)

Konkúzió: nem bízz abban, hogy a top megmutatja az összes erőforrásigényes processzt....

Üdv,

  Laci





További információk a(z) BSD levelezőlistáról