People asked for a rough guide for running load tests against their live site and whether this is a good idea at all.
Well, let me first say that test environments exist for exactly that purpose. So if you already have something live, of course you used it before going live for load testing, and now you cannot run another test there… yes, you need a test environment. This is well spent money for several reasons:
- Created data will not pollute your installation aka log entries, analytics data, orders in the database, created users, and so on.
- You do not have to take your live site down for testing.
- Problems during testing will not leave your live site down or take it down.
- Your hosting company or IT department might charge for all test traffic against the live site as it would have been real traffic (revenue share, bandwidth utilization), so having your own testing realm makes expenses more predictable.
- You can easily change code and retest when changes are necessary. You can profile, you can debug.
- You do not risk problems with traffic going to live systems, such as payment due to configuration or testing errors. If you already had items from test orders piling up in your office, you know what I mean.
So, get yourself a test environment. Spend the money and enjoy the freedom to measure, debug, and tune.
P.S. Of course, there are situations, where you cannot replicate a live environment or you cannot find application problems in a test setup due to totally different timing behavior… Well, this indicates only that your live environment is already screwed.