I do my own hosting for a few clients on my own VPS server (Lindode). Since my clients so far have been extremely low traffic, I have not had to really dig into some of the considerations that I would need for a higher traffic site. Now I am bidding on a client whose site will be potentially higher (not Facebook or twitter, but higher than Joe's ice cream shop). Is there a list of things I need to think about that I may be missing?

I am going to assume, at least at first, that I will be able to handle them on my shared Linode, but I could move to a dedicated Linode if need be. I am not thinking so far of multiple servers, but short of that there are still considerations. For example, mod_perl instead of straight CGI, better backups, etc. What else?

In case it matters, the stack will be debian-linux / apache / Perl / mysql / Template Toolkit.

  • 1
    FastCGI seems to be favoured over mod_perl these days.
    – Quentin
    Dec 25, 2010 at 19:14

1 Answer 1


Do you know roughly how much traffic the site will have? You should try to find out, and then do a load test on your application and server to see if it can handle it. There are various free tools for this.

You will probably also want to take a look at MySQL's Slow Query Log to see which of your database queries can be optimized.

Additionally, I'd do some tests with your application to see if FastCGI will perform better than mod_perl. Memcached and APC should also be considered. And make sure your MySQL query cache is set to the optimal size for your server.

There are also other high performance tweaks you can make to reduce the load on your server. For example, sharding or partitioning (don't do this unless you really need to) or setting a lighttp or nginx server for static content.

Aside from that, you may want to consider switching to cloud hosting or a VPS provider with auto-scaling.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.