HotSpot JIT JVM: -server
Memory Allocation: -Xms, -Xmx, -Xss
GC Avoidance
Monitoring: -verbose:gc
Frequency
Minor vs. Full GC
Optimization
To enrich your career and become a JBoss professional, visit Tekslate, the global online training platform:" JBoss Training". This course will help you achieve excellence in this field.
GC should run as infrequently and as quickly as possible
Example: -XX:NewSize=80m -XX:MaxNewSize=80m -Xms400m -Xmx400m -XX:+UseParallelGC -XX:ParallelGCThreads=2
Use 64bit Hardware/OS/JVM to be able to allocate over 4GB
Do not use extra-large or extra small heaps
Use the multi-processor/core machine to take advantage of parallel GC
Use Sun’s Java 5 JVM (self-tuning) over 1.4 (or older)
Tuning GC on Java
Tune connectors in server.xml maxThreads + 25% = max minSpareThreads + 5% = normal maxSpareThreads + 5% = peak Remove unnecessary Valves, Loggers, and Connectors Precompile JSPs Turn off "development" mode on jsp handler (servlet) in conf/web.xml Session timeout JSPs can be precompiled (by developers or assemblers) using Ant’s jspc task.
By default JBoss creates a new thread for each RMI request Wasteful and unscalable during spikes Switch to pooled invoker In conf/standardjboss.xml replace all occurrences of :jboss:service=invoker,type=jrmp by jboss:service=invoker,type=pooled
System-wide logging set on DEBUG or TRACE can bring JBoss to a standstill Configured in conf/log4j.xml By default, JBoss uses INFO priority and logs to both CONSOLE and FILE
Consider changing the <root> priority to ERROR
Consider logging to FILE only
Consider using category filters for your own class hierarchies
<category name="my.package">
<priority value="INFO"/>
</category>
<root>
<priority value="ERROR" />
<appender-ref ref="FILE"/>
</root>
Increase the scan frequency of the deployment scanner (default: 5 secs) Consider setting MinimumSize on [stateless] Session Bean Container pool (conf/standardjboss.xml) Use Hibernate in place of CMP (2.x) Avoid XA connection pools Use JDBC drivers to check on connections
Remove services that are not needed Not a huge impact on performance Frees up memory and other resource (like threads) Faster JBoss startup Excellent security practice Breaks Java EE TCK Create a new configuration set (copy of default) Services that can be trimmed include the following: Mail Service (and libraries) Cache Invalidation Service J2EE client deployer service HAR deployer and Hibernate session management services Hypersonic (provide a different DefaultDS for JMS MQ) JMS MQ HTTP Invoker (RMI over HTTP) Support for XA Data Sources JMX Console JMX Invoker Adaptor (JMX calls over RMI) Web Console JSR-177 for JMX Console/Email Monitor Alerts Properties Service Scheduler Service/Manager UUID key generation EAR Deployer JMS Queue Destination Manager CORBA/IIOP Service Client User Transaction Service Attribute Persistence Service RMI Classloader Remote JNDI Naming JNDI View Pooled Invoker Bean Shell Deployer
For an in-depth understanding on JBoss click on:
You liked the article?
Like: 0
Vote for difficulty
Current difficulty (Avg): Medium
TekSlate is the best online training provider in delivering world-class IT skills to individuals and corporates from all parts of the globe. We are proven experts in accumulating every need of an IT skills upgrade aspirant and have delivered excellent services. We aim to bring you all the essentials to learn and master new technologies in the market with our articles, blogs, and videos. Build your career success with us, enhancing most in-demand skills in the market.