2010-09-28 3 views
7

Wie kann ich das Verhalten einer Web-Anwendung (in Perl) unter starker Last (Vergleich zweier verschiedener Implementierungen) und eines Profils (Performance-Engpässe in einer Implementierung finden) analysieren? Diese Webanwendung ist (vermutlich) IO gebunden statt CPU-gebunden. Ich möchte die vorgeschlagene Implementierung (vorgeschlagene Verbesserung) mit der aktuellen Lösung vergleichen, entweder mit Real Load, aber Minimierung eventueller Leistungseinbußen (vielleicht zwei verschiedene Implementierungen auf verschiedenen Servern hinter Load Balancer) oder Wiederholung/Simulation von Last auf einem neuen Implementierung, oder simulieren Sie die Verwendung schwerer IOs.Wie kann ich E/A-gebundene Perl-Webanwendungen unter hoher Last messen und profilieren?

Ich möchte auch CPU und IO Engpässe in der vorgeschlagenen Implementierung, aber Testverhalten unter hoher Belastung.

Das Betriebssystem ist Linux, Webserver ist Apache.


Die gleiche Frage auf ServerFault posted: How do I benchmark and profile IO bound Perl web application under heavy load?

Ich denke, hier die Antwort über das Benchmarking und die Profilierungs Web-Anwendung in Perl geschrieben werden kann, und vielleicht auch realistische Lastbedingungen zu replizieren, oder eine Maßnahme zu finden/Benchmark, der vorhersagen würde, welche Implementierung unter IO-gebundenen Bedingungen unter hoher Last besser funktionieren würde.

+1

Plain CGI und FastCGI (über CGI.pm und CGI :: Fast), mod_perl Bereitstellung über ModPerl :: Registry, PSGI Deployment über Wrapper mit Hilfe von Plack :: App :: WrapCGI –

+0

Ich bin mir nicht sicher, ob es ein Betriebssystem gibt - oder treiber-agnostische Art und Weise, dies zu überprüfen. Sie könnten einige Werkzeuge finden, die spezifisch für Ihre persistenten Speichertreiber sind, die Ihnen Nutzungsstatistiken mitteilen können, z übertragene Bytes, Durchsatz usw., die Sie für Ihre verschiedenen Implementierungen vergleichen können. Sie können diese Frage auch auf http://serverfault.com stellen, um zu sehen, welche Dienstprogramme für die Festplattennutzung für Linux existieren? Es ist nicht wirklich eine Perl-Frage so sehr wie Systemadministration. – Ether

+3

http://www.perl.org/about/whitepapers/perl-profiling.html – eSniff

Antwort

2

Ich würde vorschlagen, dass Sie Munin (http://munin-monitoring.org/) verwenden.

Es hat Tonnen von Plugins, um zu sehen, wie sich ein System verhält: CPU, I/O, Speicher, Netzwerknutzung, MySQL-Transaktionen, ... fast alles.

+0

Nicht genau antwort ich wollte sehen, aber es wird nützlich sein. –

-1

Sie könnten einige Tests mit dem Modul Benchmark erstellen. Es hat Funktionen speziell zum Vergleichen zweier Implementierungen derselben Funktionalität. Es ist zwar nicht ganz in der Lage, Lastwerte für Sie zu simulieren, es wäre jedoch viel einfacher zu machen.

+0

Ich weiß über Benchmark-Modul; Das Problem besteht darin, entweder die E/A-Drucksituation zu simulieren oder sie auf Live-Daten wie Eingaben zu verwenden oder sie in der Web-App zu verwenden. –

Verwandte Themen