2011/7/11 Sebastian Sera <[email protected]>: > Salutare, > > Am o problema cu un proces java, un server de aplicatii scris de o mare > companie (nu dam nume). > Problema este ca la momente care nu pot fi prevazute, procesul duce CPU-ul > in 800%, mananca toate core-urile si ingheata aplicatia complet. > > Ce vad in vmstat este un numar incredibil de mare de context switches > (>20.000) > Vad prin /proc/pid/task, ca java-ul parent deschide o groaza de procese unul > dupa altul si nu apuc sa vad ce face fiecare. > Am incercat cu strace (strace -f -p <PID> dar am atat de multe informatii > acolo ca nu imi dau seama care dintre procesele copii raman agatate si care > nu. > > Dupa un restart al aplicatiei totul merge perfect, de unde deduc ca nu e o > problema de incarcare creata de multe cereri ci mai degraba ca ceva ramane > agatat, iar la restart isi revine. > > Intrebarea mea: Am vreun utilitar mai inteligent pentru a vedea fiecare > proces copil in parte ce face, cat cpu mananca samd?
Versiunea academica: vezi ca exista JMX, java management extensions, si/sau jconsole, cu care poti sa te legi la jvm sa vezi ce face (pornesti java cu niste parametri magici suplimentari, si-ti expune un socket pe care te poti lega cu diverse instrumente), asa teoretic poti investiga ce se intampla prin interiorul jvm-ului. Versiunea pe scurt: asa face java daca nu-si ia restarturi din cand in cand :D -- Petre. _______________________________________________ RLUG mailing list [email protected] http://lists.lug.ro/mailman/listinfo/rlug
