Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I have created a very basic Django application which puts an email to the database (Coming soon page for a startup).

I launched a t1.micro instance to try out which load it can carry out. Nginx+FastCGI from Django+sqllite/postgres - tried both.

blitz.io test gave me a pretty unhappy result (just 100 users within 1 minute):


This rush generated 542 successful hits in 1.0 min and we transferred 809.01 KB of data in and out of your app. The average hit rate of 8.81/second translates to about 761,612 hits/day.

You got bigger problems though: 87.28% of the users during this rush experienced timeouts or errors!


I tried both to put varnish, disabled Debub mode in django and started fastcgi in threaded mode - nothing helps.

This is not gonna be a super highload page - just a coming soon page to save email of subscribers, it should carry at least 500-1000 users at the same time in peak...

I believe t1.micro is super small for that, but I also have tried small instance - not better result..

Please let me know should I use something different from Amazon EC2, or to pick smth better than t1.micro, or I that is definetely a configuration issues?...

share|improve this question
    
One thing you should know is that, meanwhile a micro is faster in bursts than a small, it will only allow certain seconds of 100% load, and then will cap you out and become very slow until you reduce the load again... –  Andor Apr 1 '12 at 18:47
    
Also... can you check if it's 100% cpu, or the status of your machine is "user" "idle" or "waiting" when running 'top' while loading the machine with blitz.io ? –  Andor Apr 1 '12 at 18:48
add comment

1 Answer

You need to have a realistic estimate on what is the number of users you will be expecting. And defenitely, a t1.micro is not gonna cut it.

You have some options like:

*) Get a realistic number., run a load test using tools like Apache JMeter. You might have to choose a small, medium or large instance and host the app there.

*) If downtime is not an option and since you mentioned a Python stack, have you considered using Google App Engine.

*) If it's gonna be a coming soon page., have you considered services like LaunchRock ?

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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