Enterprise Performance in the Lab and the Real World
Performance and scalability are essential to the successful deployment of an enterprise portal application. Liferay Portal has performed well in high-traffic, heavy-usage deployments in real world applications worldwide.
Liferay has also exhibited impressive results in lab-based stress tests engineered both by independent testers and our internal development team. In a recent
eWeek benchmarking test, for example, a J2EE stack built on CentOS Linux, Apache, and Liferay (labelled "Linux J2EE in comparison charts) was measured as delivering the highest
average hits per second, the second highest
average throughput per second, and the third highest
average document download time among eight different portal solutions.
On the
hits per second and
download time metrics, Liferay outperformed JBoss Portal by a whopping factor of 23. On the
throughput metric, Liferay significantly outperformed all other configurations except .NET, by an average factor of 10.
Liferay Portal has also been certified by
Azul Systems on its 384 CPU environment, demonstrating its scalability in a highly-clustered environment.
For our internal benchmarks of Liferay Portal, we used Microsoft's Web Application Stress Tool (WAST). The primary goal of the load tests was to determine the page load time of a 3400+ Sempron running Liferay under varying amounts of load. The Sempron was chosen to represent a budget server, to serve as a lower threshold of expected performance (more robust servers should deliver greater performance).
These are the exact specifications of the test components:
Server:
- The maximum number of allowable threads was set to 20,000.
- The maximum size of the JVM heap was set to 1280.
Client Machines:
(6) AMD 3400+ Sempron(s) with 2 GB RAM running Microsoft Web Application Stress Tool
Understanding the Test
Our tests dealt simply with threads from the client machines making requests to the server. In the absence of a true high volume of concurrent users, or of user emulation that accurately includes think time, threadwise performance can be multiplied (by a conservative or aggressive factor) to extrapolate an estimate of how many users can be handled by the server with the given hardware profile. The threadwise performance of the server is an easily comparable metric across test results.
Metrics
The primary metric WAST generates is Total Time until Last Byte is received (TTLB), commonly understood as page load time. This is an appropriate metric for a web-based application such as a portal, and is the determining factor of a user’s psychological perception of a site's performance.
The secondary metric is requests per second. This metric allows one to determine the server’s peak point of operating efficiency. The server should never reach a point where there is a sharp drop in the number of requests per second it can handle.
Results
Liferay Portal supports up to 9,000 concurrent page requests with a page load time of 6 seconds on a 3400+ Sempron server. Even at 18,000 concurrent page requests, page load time only increased by 0.552s. A conservative user multiplier of 5 would yield 90,000 concurrent users with a page load time of about 6.6 seconds and little or no degradation in operating efficiency. A more aggressive multiplier of 15 would yield an estimate of 135,000 concurrent users.