A few weeks back, Jarrod from rootusers.com posted a benchmark that demonstrated that when handling small static files, Nginx outperformed our OpenLiteSpeed Web Server, particularly during the 1 and 2 CPU Core tests. We decided to dig deeper and investigate these results.
During our investigation we discovered a bug which caused our software to use gzip compression on even the smallest static files. These files would not see any benefit from being compressed and their compression was taking up extra CPU cycles.
Our team jumped to the task of releasing a solution and the same week we discovered the original benchmark, extra logic was added, tested, and released (in OpenLiteSpeed 1.4.16) to handle these smaller files. With this fix, our internal benchmarks showed OpenLiteSpeed being able to process small static file requests between 2 and 3 times faster than before. This improvement can be seen in the graphs below.
During these tests we used a setup similar to the one used by Jarrod. Our client used 4 GB of RAM and 8 CPU cores and our server used 4GB of RAM and 1, 2, 4, and then 8 CPU cores.
In our 4 and 8 core tests, we discovered that our client was only able to consistently send 100,000 requests per second and wasn’t able to test the full potential of these servers. This is especially noticeable in the 8 core test where OLS 1.4.16 briefly reaches 200,000 requests per second and shortly thereafter returns to our limit of 100,000 requests per second.
Because of the huge impact this gzip bug had on performance, we have requested that Jarrod redo his tests with the newest version of OpenLiteSpeed and he has stated that he will look into redoing them. We are looking forward to seeing the outcome.