Test::TCP+Devel::NYTProfでWAFのパフォーマンスチューニング
HTTP::Engineから拝借したんですが、Test::TCP + Devel::NYTProfの組み合わせで、WAFのprofilingが簡単にできます。
#!/usr/bin/env perl use strict; use HTTP::Engine; use LWP::UserAgent; my $module = shift || 'ServerSimple'; my $port = shift || empty_port(); my $loop = shift || 100; test_tcp( client => sub { my $port = shift; my $ua = LWP::UserAgent->new; for ( 0 .. $loop ) { $ua->get("http://localhost:$port/"); } }, server => sub { my $port = shift; if ( !$ENV{NO_NYTPROF} ) { require Devel::NYTProf; $ENV{NYTPROF} = 'start=no'; Devel::NYTProf->import; DB::enable_profile(); $SIG{TERM} = sub { DB::_finish(); exit; }; } my $engine = TestApp::Web->new( server => $module, port => $port, ); $engine->setup; $engine->run; }, );
tokuhiromさんのTest::TCPは素晴らしいですね。これで大分チューニングがしやすくなりました。
# 上記のスクリプトは以下の場所にいれてあります。
http://github.com/dann/angelos/tree/master/tools