[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