2010-09-28 30 views
7

如何在負載較重的情況下對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

回答

2

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

它擁有大量的插件來查看系統的行爲:cpu,I/O,內存,網絡使用情況,mysql事務......幾乎所有事情。

+0

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

-1

您可以使用Benchmark模塊創建一些測試。它具有專門用於比較相同功能的兩個實現的功能。雖然它不能完全爲您處理模擬負載水平,但它會使它更容易完成。

+0

我瞭解Benchmark模塊;問題是要麼模擬I/O壓力情況,要麼在實時數據(如輸入)上使用它,或者在Web應用程序中使用它。 – 2010-10-16 07:45:24