This tip article is edited and republished from the original source.
by Andrew Oliver
In Java Performance Tuning on Linux Servers, Andrew Oliver covered some general and network performance tuning issues for JEE apps running on Linux. He now looks at issues for applications in the data layer. Lower level database issues, the higher level server application persistence model, and the interactions between the two are discussed. As before, it is assumed the application is “transactional” in nature. Most web applications, including client server and business applications fall in this space. (Messaging, analytical and ETL-type applications require different strategies, and different choices).
This article was edited and republished from the original source.
by Andrew C. Oliver
At JBoss, I was asked to help write some training materials for “performance tuning JBoss/Java on RHEL/Linux”. It wasn’t a very easy task because I knew the audience would primarily be composed of administrators who might not be interested in the whole system, compounded with the fact that most people mean performance and scalability when they say performance. What I would do to make one single client connect and perform its operations as quickly as possible on a single server is inherently very different from what I’d do for 10000 users connecting to a cluster. The type of performance tuning that I do for an application with no users and all messaging is very different from what I do for a standard web application-type system.
This tip article is edited and republished from the original source.
by Michael Juntao Yuan and Clebert Suconic
Memory leaks are one of the most common bugs in software engineering. A memory leak is created when a developer allocates memory space for an object but forgets to free the memory when the object is no longer in use. Memory leaks are hard to find. But they can cause application crashes, poor performance, or even open security holes if they are not fixed.
Compared with native programming languages such as C and C++, one of the major advantages of the Java platform is that Java has a built-in defense mechanism against memory leaks. The Java Virtual Machine (JVM) runs a Garbage Collector (GC) service periodically to free up memory for objects no long used by the application. So, the developer does not have to remember to the free the objects manually. Automatic memory management in Java is a great feature for improving developer productivity and application quality.