Sakai is a Java-based application. Not only are its parts written in Java, but the Tomcat server on which it is running is Java-based as well. This section explores how to monitor and tune Java/Sakai.
Java runs on many operating systems and types of hardware. To achieve this high degree of consistent compatibility, tools compile the Java source into runnable code (known as pseudo byte code) and run the code in a virtual machine that sits between the running code and the operating system. The Java Virtual Machine (JVM) hides the underlying complexity by abstracting details away in the language itself, so that programmers call the same methods, such as for opening files, no matter on which hardware or operating system the code is running.
The JVM also manages the Java application's memory via a Garbage Collector (GC), which cleans up the objects that are no longer used. The JVM manages memory by splitting it up into parts. When objects are first created...