Nginx after one day and conversion of two more machines
Wednesday, April 8th, 2009Nginx impressed me with the way it was written and its performance has impressed me as well.
This one client has 3 machines that ran Apache2-mpm-worker with php5 running under fastcgi. While page response time was good, the machines constantly ran at roughly 15% idle cpu time, with roughly 600mb-700mb of the ram used for cache. All of the machines are quadcore with 4gb RAM and have been running for quite a while and have been tweaked and tuned along the way.
We started with the conversion of one site on one machine which resulted in the client being so impressed that we converted a second site on that machine which resulted in about 80mb/sec being served from nginx within minutes of deployment. The next morning after we glanced over everything and confirmed that nginx was holding up, we converted the rest of that machine over to Nginx. Traffic grew almost 20% after that change.
We started looking at the other machines, one of which runs phpadsnew on a relatively large network of his sites and the banners that are served from two of the main sites on one machine. Converting those two over to nginx meant another 50mb/sec of traffic swapped from Apache. Immediately he saw results with faster pageloads of his sites that pulled content from a central domain and with the banner ads being displayed more quickly. After a few moments of analysis, it was decided to swap the entire machine from Apache2 to Nginx. That process took a few hours due to the number of virtual hosts and the lack of any real script to migrate the configurations. Response time on the sites was definitely faster. After a little more discussion, rather than give that machine a day to settle in to see if we would find any problems, we converted his third machine.
First response in the morning:
yesterday we sent 69.1k unique surfers to sponsors, that is the highest we have ever done.
While only one of three machines was running Nginx for the entire day, one machine had about 8 hours under Nginx and the other about 2 hours under Nginx for that ‘day.’
Today, the results are somewhat clear. Traffic is up overall, the machines are much more responsive. Each machine is now roughly 80% idle and has roughly 2.4gb of memory reserved for cache.
Backups are scheduled at 3am on the boxes, a few rsync jobs are run to keep some content directories synced between the machines. Overall you can see the impact on the first graph as the right hand side shows a bit more growth. The last graph was running nginx, but, struggled to push more than 85mb/sec or so. The middle graph shows a decline, but, they believe that is external to the process. The sites are loading more quickly and they expect that the sites will grow quite a bit. So far, they are reporting roughly an 18% increase in clicks to their sponsor.