How do I benchmark (compare two different implementations) and profile (find performance bottlenecks in an implementation) behavior of a web application (in Perl) under heavy load? This webapp is (supposedly) IO bound rather than CPU bound.
I'd like to compare proposed implementation (proposed improvement) with current solution, either on real load but minimizing eventual performance hit (perhaps two different implementations on different servers behind load balancer), or replay / simulate load on a new implementation, or simulate heavy IO usage.
I'd like also profile CPU and IO bottlenecks in proposed implemetation, but testing behavior under heavy load.
The OS is Linux, web server is Apache.
The same question is posted on ServerFault: How do I benchmark and profile IO bound Perl web application under heavy load?
I think the answer here can be about benchmarking and profiling web application written in Perl, and perhaps also about replicating realistic load conditions, or finding measure / benchmark which would predict which implementation would perform better under IO bound conditions under heavy load.