S
S
Snowindy2013-05-17 15:49:54
Java
Snowindy, 2013-05-17 15:49:54

Java profiler with minimal performance impact, for PROD environment?

Faced the problem of low performance of Java application. Given:
- VPS with FreeBSD 9, 3 GB RAM and a weak processor
- Tomcat 7.0.37
- Several application modules in the form of a set of WARs, one of them - the Load Average web application
is kept in the region of 2-3 (1 processor), processor load on average - about 50%.
The application is constantly processing, I want to understand which place is the main consumer of processor time.
From the profiler, it is necessary that it:
- influence the system to a minimum, this is production
- once in a given period of time, remove data from the system and save them to a file, for further analysis
- a normal visual tool for analyzing a snapshot
Can you tell me what would be best? What was used in such a situation?

Answer the question

In order to leave comments, you need to log in

3 answer(s)
D
dvayanu, 2013-05-17
@dvayanu

moskito.anotheria.net Take
, integrate. Have a lot of fun!
Here's a snippet of the demo:
server04.test.anotheria.net :8080/moskitodemo/mui/
If you need help, PM me!

D
dvayanu, 2013-05-17
@dvayanu

1) To the application. Although JVM information is written too. For example all JMX Beans.
2) Yes. See for example:
confluence.opensource.anotheria.net/display/MSK/MoSKito+Central
In your case, probably even faster:
confluence.opensource.anotheria.net/display/MSK/HowTo+Run+moskito-central+in+embedded+mode
3) More difficult :-)
Or look directly on the server, there are not only snapshots but also history.
confluence.opensource.anotheria.net/display/MSK/Accumulators
confluence.opensource.anotheria.net/display/MSK/Thresholds
Or see some third tool based on xml, json, csv, sql or some other files/ bases, etc.
An integrated tool for historical data is still under development.

D
dvayanu, 2013-05-17
@dvayanu

I guess I didn't fully understand your Requirements. On the portals www.parship.de and www.allyouneed.com they solved similar problems like this.
Nevertheless, good luck ;-)
By the way, maybe you should make systematic thread dumps and compare them later?
That is, look not “which component eats time and where” (mosquito) but “which thread is constantly Runnable and in the same place”. A kind of infinite or very long loop.

Similar questions
K
KhanTengri2011-06-17 23:56:41
Get from a remote web page?</a> <a class="content__item-button" href="/q/get-title-from-a-remote-web-page"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" class=""> <path fill-rule="evenodd" d="M15 14a1.002 1.002 0 01-1.703.71h-.004l-.003-.01-1.704-1.7H3c-1.104 0-2-.9-2-2V3c0-1.1.896-2 2-2h10c1.104 0 2 .9 2 2v11zM5 6c.552 0 1 .45 1 1s-.448 1-1 1-1-.45-1-1 .448-1 1-1zm3 0c.552 0 1 .45 1 1s-.448 1-1 1-1-.45-1-1 .448-1 1-1zm3 0c.552 0 1 .45 1 1s-.448 1-1 1-1-.45-1-1 .448-1 1-1z"></path> </svg> <span class="dark">6</span><span class="dn">Reply</span> </a> </div> </div><div class="content__item"> <div class="content__item-img name-color-T"> <span>T</span></div> <div class="content__item-content"> <div class="content__item-row"> <a href="/q/when-should-super-be-called-in-an-overridden-method">Tsuzukeru</a><span>2021-06-21 10:22:41</span></div> <a class="content__item-title similar" href="/q/when-should-super-be-called-in-an-overridden-method">When should super be called in an overridden method?</a> <a class="content__item-button" href="/q/when-should-super-be-called-in-an-overridden-method"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" class=""> <path fill-rule="evenodd" d="M15 14a1.002 1.002 0 01-1.703.71h-.004l-.003-.01-1.704-1.7H3c-1.104 0-2-.9-2-2V3c0-1.1.896-2 2-2h10c1.104 0 2 .9 2 2v11zM5 6c.552 0 1 .45 1 1s-.448 1-1 1-1-.45-1-1 .448-1 1-1zm3 0c.552 0 1 .45 1 1s-.448 1-1 1-1-.45-1-1 .448-1 1-1zm3 0c.552 0 1 .45 1 1s-.448 1-1 1-1-.45-1-1 .448-1 1-1z"></path> </svg> <span class="dark">1</span><span class="dn">Reply</span> </a> </div> </div><div class="content__item"> <div class="content__item-img name-color-N"> <span>N</span></div> <div class="content__item-content"> <div class="content__item-row"> <a href="/q/how-to-dunk-bean-before-contextrefreshedevent">nuclear_kote</a><span>2021-06-21 16:05:53</span></div> <a class="content__item-title similar" href="/q/how-to-dunk-bean-before-contextrefreshedevent">How to dunk bean before ContextRefreshedEvent?</a> <a class="content__item-button" href="/q/how-to-dunk-bean-before-contextrefreshedevent"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" class=""> <path fill-rule="evenodd" d="M15 14a1.002 1.002 0 01-1.703.71h-.004l-.003-.01-1.704-1.7H3c-1.104 0-2-.9-2-2V3c0-1.1.896-2 2-2h10c1.104 0 2 .9 2 2v11zM5 6c.552 0 1 .45 1 1s-.448 1-1 1-1-.45-1-1 .448-1 1-1zm3 0c.552 0 1 .45 1 1s-.448 1-1 1-1-.45-1-1 .448-1 1-1zm3 0c.552 0 1 .45 1 1s-.448 1-1 1-1-.45-1-1 .448-1 1-1z"></path> </svg> <span class="dark">1</span><span class="dn">Reply</span> </a> </div> </div><div class="content__item"> <div class="content__item-img name-color-H"> <span>H</span></div> <div class="content__item-content"> <div class="content__item-row"> <a href="/q/why-does-the-error-could-not-find-application-occur-when-deploying-java-to-heroku">HermanHaller</a><span>2020-04-24 22:29:10</span></div> <a class="content__item-title similar" href="/q/why-does-the-error-could-not-find-application-occur-when-deploying-java-to-heroku">Why does the error "Could not find application!" occur? when deploying Java to Heroku?</a> <a class="content__item-button" href="/q/why-does-the-error-could-not-find-application-occur-when-deploying-java-to-heroku"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" class=""> <path fill-rule="evenodd" d="M15 14a1.002 1.002 0 01-1.703.71h-.004l-.003-.01-1.704-1.7H3c-1.104 0-2-.9-2-2V3c0-1.1.896-2 2-2h10c1.104 0 2 .9 2 2v11zM5 6c.552 0 1 .45 1 1s-.448 1-1 1-1-.45-1-1 .448-1 1-1zm3 0c.552 0 1 .45 1 1s-.448 1-1 1-1-.45-1-1 .448-1 1-1zm3 0c.552 0 1 .45 1 1s-.448 1-1 1-1-.45-1-1 .448-1 1-1z"></path> </svg> <span class="dark">1</span><span class="dn">Reply</span> </a> </div> </div> </div> </div> </div> <div class="content find"> <p class="find__p">Didn't find what you were looking for?</p><a class="find__btn" href="#!">Ask your question</a> </div> <div class="find sm"> <p class="find__title">Ask a Question </p> <form class="find__form" action="#!"> <input class="find__input" type="text" placeholder="Ask your question here"> <button class="find__btn" type="submit"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 16 16" class="nBqR1"><path fill-rule="evenodd" d="M12.696 7.256L9.657 4.217a1 1 0 00-1.415 1.414l1.344 1.344H3.949a1.001 1.001 0 000 2h5.637l-1.344 1.343a1.002 1.002 0 000 1.415c.391.39 1.024.39 1.415 0l3.039-3.04A.993.993 0 0013 7.975a.997.997 0 00-.293-.708l-.011-.011z"></path></svg></button> </form> <p class="find__span">731 491 924 answers to any question</p> </div> </div> <aside class="banners"> <p>banners </p> </aside> </div> </main> </div> <script src="/assets/theme/js/highlight/highlight.min.js"></script> <script src="/assets/theme/js/app.min.js?_v=20220404145216"> </script> <script>hljs.highlightAll();</script> </body> </html>