|
|
||
Edgar Silva's BlogDeployment ArchivesLooking as deep as possible with JBoss ProfilerPosted by edgars on June 13, 2007 at 10:22 PM | Permalink | Comments (0)I will show you now how you can use JBoss Profiler as your default choice for pre-production profiling tests. Step 1 - Download the JBoss ProfilerGo to the JBoss Profiler Project page here, and download the CR4 Version from that page Step 2 - For Linux Users
Copy to /usr/lib the file libjbossInspector.so from Step 3 - Testing your Java Library Loading
You can test if Java is really loading our profiler Library, to do that execute the following command line in console: [root@esilva jdk1.5.0_12]# java -XrunjbossInspector:/tmp Foo Running process 9330 Exception in thread "main" java.lang.NoClassDefFoundError: FooIf you see on the screen a result like that, you library is working fine. Step 4 - Deploying a Spring Sample: countries.war for Profiling issuesAfter to build the sample using ANT, I copied the war file to my JBOSS_HOME/servers/default/deploy and that´s all! It is ready to be deployed. Step 5 - Deploying the profiler Agent into JBoss ASGo to JBOSS_PROFILER_EXTRACTED_FOLDER and from there, copy to JBOSS_HOME/servers/default/deploy the file: jboss-profiler-noAOP.sar. This is a JMX agent, which could be useful for you. Don't forget to deploy the jboss-profiler.war file into JBoss as well. Step 6 - Setting JAVA_OPTS enviroment variable and starting JBossWe will check what happens with class inside packages beggining with org.springframework , in addition the profiler will keep the results into a folder located in /opt/profiledata. So to make it possible, we must export the variable JAVA_OPTS, and after this we can run JBoss AS. Declaring JAVA_OPTS: export JAVA_OPTS=-XrunjbossInspector:/opt/profiledata,include=org.springframework,ignore=*,And after you can start JBoss using the command ./run.sh from folder JBOSS_HOME/bin. As sooner you see JBoss starting, you will see a proccess identifier, this number will be useful for us to start the profiling task. Step 7 - Profiling the ApplicationI prefer the hard-core way to start to profile the Application, first of all you must go to the command-line window, and type: ps axYou will see a resulting screen as the following: 7865 pts/0 S+ 0:00 /bin/sh ./run.sh 7888 pts/0 Sl+ 5:44 /opt/jdk1.5.0_12/bin/java -Dprogram.name=run.sh -serv 8011 pts/1 S 0:00 su 8014 pts/1 S 0:00 bash 9928 ? S 0:00 pickup -l -t fifo -u 10061 ? Z 0:00 [ifconfig]So, you if you are using Sun's JDK you might use the kill -3 command in the proccess number 7888, and than if you go to the other screen where you can see JBoss output, you will see profiler initializing. Than the full syntax is the following: kill -3 7888And then, in the JBoss output window you will see messages like the followin: JBossProfiler:GCSTART JBossProfiler:GCFINISH ContendedEnter ThreadId -1428133384 681764947 ContendedEnterED ThreadId -1428133384 681764949 ContendedEnter ThreadId -1428133720 681764949 ContendedEnter ThreadId -1428133832 681764949 ContendedEnterED ThreadId -1428133832 681764950 ContendedEnterED ThreadId -1428133720 681764951 ContendedEnter ThreadId -1428133944 681764952 ContendedEnter ThreadId -1428134056 681764952 ContendedEnter ThreadId -1428134280 681764952 ContendedEnterED ThreadId -1428133944 681764952 ContendedEnterED ThreadId -1428134280 681764952 ContendedEnterED ThreadId -1428134056 681764952 ContendedEnter ThreadId -1428133944 681765959 ContendedEnterED ThreadId -1428133944 681765960 ContendedEnter ThreadId -1428134280 681766962 ContendedEnterED ThreadId -1428134280 681766963 ContendedEnter ThreadId -1428133944 681766966 ContendedEnterED ThreadId -1428133944 681766966 ContendedEnter ThreadId -1428133720 681767971 ContendedEnterED ThreadId -1428133720 681767972 ContendedEnter ThreadId -1428133608 681768978 ContendedEnterED ThreadId -1428133608 681768978You profiler is running, so go to the Application http://localhost:8080/countries and try to do some simple tests. If you wanna stop Profiler, please call the kill -3 process # again, and than on the folder you had selected on the JAVA_OPTS variable contains many files which profiler will proccess and show you the results.
Now, it's time to see the JBoss-Profiler User Interface, so type http://locahost:8080/jboss-profiler and than you will see the Profiler UI, click in the Runtime Profiler link and inform the folder where profiler is actually storing the informations, in our case: /opt/profiledata and click next. See the image 1:
Image 1 - The Profiler Initial Screen
And then inform the proccess number,in the next screen:
After the processing phase, you will able to identify some drawbacks into your Application. See the last image as an example: I hope it could be as useful for you as it have been these last days for me! See you! | ||
|
|