Help me to optimize a heavy traffic site

Hi..

I am a beginner level web developer from India. One of my projects is to provide online form submission facility for government recruitment purposes. Let me explain all the factors in short -

What website does:

It mainly contains a form, a very long one. It's about 120 fields long. Many of the fields are inter-dependent. It also requires applicants to upload scanned copy of their photo and signature (about 100kb each).

The form is two legged. First leg is to fill up personal info and get a PDF challan with applicant's details on it. After submitting the chalan in bank, second leg is to verify identity and continue with the remaining form. Every field has to be validated. At the end of this leg, final PDF is produced containing all the details filled in form and images of photograph and signature. Also, a confirmation mail and an SMS are sent to applicant.

Traffic requirements and problems:

The client wants capacity of handeling 2k forms per hour. But the traffic often exceeds than this. Internet speed in India sucks and the users are also not very computer friendly. Imagine the worst you can.

What approach should I take to optimize the site performance? Also, please tell me how do I calculate my server requirement, in case I need to change it?

Sorry for broken English, it's not my first language.

(Newb here, but maybe I can help) My first port of call would be to try and optimise apache for high load, there is alot you can do with apache and optimisation so just make a quick google for "How to Optimisie Apache for High Traffic Load" or something along those lines and you should find something that will help you hold more load.

After that my next port of call would be to try and switch to Nginx (I would set up a test bed before going live), I haven't used Nginx myself yet, but I have been told that it is lighting fast out of the box and that might help you take on more load. If you are still struggling then I would advise you to again, try and optimise Nginx for heavy traffic load, after a quick google I found this: http://blog.martinfjordvald.com/2011/04/optimizing-nginx-for-high-traffic-loads/ which might help squeeze some more performance out for you.

If you are still having little luck then other than code optimisation the only other thing you could do is deploy a higher performance server, or you could try deploying a second server as a load balancer.

I hope that helps, but if not comment back and I'll try my best :)

use cdn versions of common libraries in place of any you are currently running on page

https://developers.google.com/speed/libraries/devguide

minify css (google it)

Run the page speed test within the firefox / firebug developer tools on one of your output pages and deal with the points it raises..

Thanks for both advices. I will definitely try this out.

There is also pingdom

tools.pingdom.com/

Awesome tool

http://tools.pingdom.com/fpt/#!/byQ7eK/http://www.teksyndicate.com

Just out of curiousity I did tek syndicate... not good :D

You need to click on the performance grade tab to get the proper breakdown on what you are losing points for.

What kind of hardware do you have to work with? Are you using PHP?

What exactly is your problem? The bandwith or the processor load?