如何在负载较重的情况下对IO绑定的Perl Web应用程序进行基准测试和配置文件描述?

如何在负载较重的情况下对IO绑定的Perl Web应用程序进行基准测试和配置文件描述?

问题描述:

如何在负载较重的情况下对Web应用程序(使用Perl)进行基准测试(比较两种不同的实现)和配置文件(查找实现中的性能瓶颈)行为?这个webapp是(据说)IO绑定而不是CPU绑定。如何在负载较重的情况下对IO绑定的Perl Web应用程序进行基准测试和配置文件描述?

我想比较提议的实施(提议的改进)与当前的解决方案,要么在实际负载上,要么最小化最终性能命中(可能是负载均衡器后面的不同服务器上的两种不同实现),或者重新/模拟新实施或模拟繁重的IO使用情况。

我也想分析提议的实现中的CPU和IO瓶颈,但是在重负载下测试行为。

操作系统是Linux,网络服务器是Apache。


同样的问题被发布在ServerFault:How do I benchmark and profile IO bound Perl web application under heavy load?

我认为这里的回答可以是关于基准和分析用Perl编写的Web应用程序,或许也即将复制现实负载条件下,或寻找措施/基准能够预测哪种实施方案在重负荷下的IO界限条件下表现更好。

+1

Plain CGI和FastCGI(通过CGI.pm和CGI :: Fast),通过ModPerl :: Registry进行mod_perl部署,通过使用Plack :: App :: WrapCGI进行封装的PSGI部署 – 2010-09-28 11:21:53

+0

我不确定是否有OS - 或者与驱动程序无关的方式来修改此..您可能会发现一些特定于您的持久性存储驱动程序的工具,可以告诉您使用情况统计信息,例如字节传输,吞吐量等,你可以比较你的不同实现。您可能还想在http://serverfault.com上抛出此问题以查看Linux的磁盘使用实用程序?这不像系统管理那样是一个真正的Perl问题。 – Ether 2010-09-28 16:18:09

+3

http://www.perl.org/about/whitepapers/perl-profiling.html – eSniff 2010-09-29 18:43:58

我建议你使用慕宁(http://munin-monitoring.org/)。

它拥有大量的插件来查看系统的行为:cpu,I/O,内存,网络使用情况,mysql事务......几乎所有事情。

+0

不完全的答案我想看,但它会很有用。 – 2010-10-16 07:44:11

您可以使用Benchmark模块创建一些测试。它具有专门用于比较相同功能的两个实现的功能。虽然它不能完全为您处理模拟负载水平,但它会使它更容易完成。

+0

我了解Benchmark模块;问题是要么模拟I/O压力情况,要么在实时数据(如输入)上使用它,或者在Web应用程序中使用它。 – 2010-10-16 07:45:24