-
Date: Wed, 11 Jun 2003 11:21:16 -0400
-
Traffic: 2+ million hits per day - 550,000 page views per day on average
-
URL: http://www.isoldmyhouse.com
As consultants we were hired to repair, revamp and rebuild a online
classifieds site in which a lot of cost and effort was placed in
promoting the site and generating traffic but the site itself was
based on a 3rd party product that simply could not handle the half
million hits a day the site was getting.
Without a lot of effort the decision was made to build a custom
solution from the ground up using Perl and Apache under Linux.
After completing the project and having some difficult issues with the
current ISP we moved the entire site to an ISP that we have had a long
term relationship with and who provides us with everything one would
need to properly maintain such a project.
Little did we know that the second we moved to our new ISP it was like
opening up the flood gates (long story relating to other ISP),
overnight this CGI driven site went from a half million hits a day to
a million and with it came a number of problems, a lot of which were
unfixable without adding more hardware - there was simply far too much
traffic coming through during the peak times of the day.
Having spent a week doing everything we could, optimizing everything
possible it was clear that at best, we may be able to gain enough to
just keep our heads above water.
Reluctantly we knew we had no choice but to give mod_perl a try, we
really didn't think it was going to make that much of a difference but
every little bit counted at this point.
We knew that it was going to be very difficult to setup apache and
especially convert our code over - I mean after all I've heard as many
stories of nightmare conversions as success stories.
After about the first week of pouring through the documentation and
experimenting on our development server, I realized HOW WRONG I WAS..
Once we understood what was expected, conversion of the current code
was less painful and a lot more interesting to do then some of the
phone calls or meetings that led up to getting the contract for the
project itself J.
Once everything was done we could see instantly the improvement on our
dev server, what we didn't know nor what we were prepared for was what
would happen once this was running in production, I mean sure it was
fast when there is only 2 of us on the machine, so was the old site.
What we saw after going live was one of those moments when you are
just blown away, where you are sitting there saying "I see it but I
just don't believe it".
At our best estimate we gained more then a 300% performance increase,
during peak hours we were seeing load times of 20 - 30, processing
going defunct etc. etc. prior to mod_perl.
Since the day we went live we haven't seen the machines even sweat,
even the DB machine was impacted by the change in a positive way.
We are currently up over 2 million hits a day, the 1 million hits
gained since going live with mod_perl has resulted in practically
nothing (everything is still saying "Give me More!!!")
We'd like to think it was easy moving to mod_perl because we are such
awesome coders, but of course the truth is it's due to the awesome
documentation at http://perl.apache.org, the fantastic support of
mod_perl in all those perl modules we have all come to depend on, the
invaluable mailing lists and mailing list archives, and what I
personally think is the coolest thing of all, Stas Bekman who never
left me or anyone else I've seen on the mailing list hanging for any
answer.
We have just completed a re-design of the site and have been up and
running under Apache 2 and mod_perl 2 for about 6 months now with as
few problems as anyone could ever hope to have.
Mod_perl is clearly the solution for high traffic sites, however
because of our experience with mod_perl we have since done everything
in it, from the simplest of form mailers to complex sites because in
my eyes there is no reason not to do things the best possible way the
first time around!
Thanks to Everyone on the Mod_perl Team