Hardware. CPU(s), memory, network IO, and file IO
Operating System. Symmetric multiprocessing (SMP) and thread support
JVM. Version, tuning memory usage, and tuning garbage collection are important.
Tomcat. Later releases are more optimized for performance. If you use JavaServer
Pages, Jasper 2 available in Tomcat 4.1 significantly boosts performance.
Application. Application design can have the largest impact on overall performance.
Database. Conncurrent db connections allowed, db connection pooling, and object
caching.
Web Server. Can be used in front of Tomcat to serve static content removing this
load from Tomcat. This allows Tomcat to do what it does best, dynamic web
application content. Allows load balancing using multiple instances of Tomcat.
Network. Network delays. Nothing we can do about this.
Remote Client. Speed of remote client network connection. Nothing we can do
about this except compress the content using Apache mod_gzip or Tomcat
compression filter.