2010-09-28 12 views
7

Jak przeprowadzić test porównawczy (porównać dwie różne implementacje) i profil (znaleźć wąskie gardła wydajności w implementacji) zachowanie aplikacji sieci Web (w języku Perl) pod dużym obciążeniem? Ta webapp jest (podobno) związana z IO, a nie z CPU.Jak przeprowadzić test porównawczy i profilować aplikację internetową Perl IO bound pod dużym obciążeniem?

Chciałbym porównać proponowaną implementację (proponowane usprawnienie) z obecnym rozwiązaniem, na rzeczywistym obciążeniu, ale minimalizując ewentualne trafienie wydajności (być może dwie różne implementacje na różnych serwerach za równoważeniem obciążenia) lub odtwarzać/symulować obciążenie nowego implementacja lub symulowanie dużego obciążenia IO.

Chciałbym również uwzględnić wąskie gardła profilu CPU i IO w proponowanej implementacji, ale testowanie zachowania przy dużym obciążeniu.

System operacyjny to Linux, a serwer WWW to Apache.


To samo pytanie jest zamieszczona na ServerFault: How do I benchmark and profile IO bound Perl web application under heavy load?

Myślę, że odpowiedź może być tutaj o benchmarkingu i profilowania aplikacji internetowej napisany w Perlu, a być może również o replikacji realistycznych warunków obciążenia, lub znalezienie środka/wzorzec, który przewidywałby, która implementacja będzie działać lepiej w warunkach IO związanych z dużym obciążeniem.

+1

Zwykły CGI i FastCGI (przez CGI.pm i CGI :: Fast), wdrożenie mod_perl za pośrednictwem ModPerl :: Registry, wdrożenie PSGI za pomocą Wrapera przy użyciu Placka :: App :: WrapCGI –

+0

Nie jestem pewien, czy istnieje system operacyjny - lub agnostyczny sposób na podsłuchiwanie tego sterownika .. możesz znaleźć narzędzia specyficzne dla twoich stałych sterowników pamięci masowej, które mogą ci podać statystyki użytkowania, np. przesłanych bajtów, przepustowość itd., które można porównać dla różnych implementacji. Możesz również rzucić to pytanie na http://serverfault.com, aby zobaczyć, jakie narzędzia do używania dysku istnieją dla systemu Linux? To nie jest tak naprawdę kwestia Perla, tak samo jak administrowanie systemem. – Ether

+3

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

Odpowiedz

2

Proponuję użyć Munina (http://munin-monitoring.org/).

Posiada mnóstwo wtyczek, aby zobaczyć, jak zachowuje się system: procesor, i/o, pamięć, użycie sieci, transakcje mysql, ... prawie wszystko.

+0

Nie do końca odpowiedź Chciałem zobaczyć, ale przyda się. –

-1

Można utworzyć kilka testów przy użyciu modułu Benchmark. Posiada funkcje specjalnie do porównywania dwóch implementacji tej samej funkcjonalności. Choć nie radzi sobie z symulowaniem poziomów obciążenia, znacznie ułatwiłoby to pracę.

+0

Wiem o module Benchmark; problemem jest albo symulowanie sytuacji ciśnienia we/wy, albo używanie go na danych bieżących, takich jak dane wejściowe, lub używanie go w aplikacji internetowej. –

Powiązane problemy