简体   繁体   English

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

[英]How do I benchmark and profile IO bound Perl web application under heavy load?

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? 如何在负载很重的情况下对Web应用程序(在Perl中)进行基准测试(比较两种不同的实现)和配置文件(在实现中查找性能瓶颈)? This webapp is (supposedly) IO bound rather than CPU bound. 这个webapp(假设是)IO绑定而不是CPU绑定。

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. 我想将提议的实现(建议的改进)与当前的解决方案进行比较,无论是在实际负载上还是最小化最终的性能损失(可能是在负载均衡器后面的不同服务器上的两个不同的实现),或者重放/模拟新实现的负载,或者模拟大量使用IO。

I'd like also profile CPU and IO bottlenecks in proposed implemetation, but testing behavior under heavy load. 我还想在提议的实现中描述CPU和IO瓶颈,但是在重负载下测试行为。

The OS is Linux, web server is Apache. 操作系统是Linux,Web服务器是Apache。


The same question is posted on ServerFault: How do I benchmark and profile IO bound Perl web application under heavy load? ServerFault上发布了同样的问题: 如何在高负载下对IO绑定的Perl Web应用程序进行基准测试和分析?

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. 我认为这里的答案可以是基于Perl编写的Web应用程序的基准测试和分析,也可能是关于复制实际负载条件,或者找到测量/基准测试,它可以预测哪些实现在重负载下的IO限制条件下会表现更好。

I'd suggest you to use Munin ( http://munin-monitoring.org/ ). 我建议你使用Munin( http://munin-monitoring.org/ )。

It has tons of plugins to see how a system behaves: cpu, i/o, memory, network usage, mysql transactions, ...almost everything. 它有大量的插件来查看系统的行为:cpu,i / o,内存,网络使用,mysql事务,......几乎所有东西。

You could create some tests using the Benchmark module. 您可以使用Benchmark模块创建一些测试。 It has functions specifically for comparing two implementations of the same functionality. 它具有专门用于比较相同功能的两个实现的功能。 While it doesn't quite handle simulating load levels for you, it would make it a lot easier to do. 虽然它不能完全处理模拟负载水平,但它会使它更容易。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM