Contenu connexe
Similaire à ウェブアプリケーションのパフォーマンスチューニング (20)
Plus de Yasuhiro Onishi (7)
ウェブアプリケーションのパフォーマンスチューニング
- 13. レスポンスタイム計測 - HTTPヘッダ
LogFormat "%h %t "%r" "%{X-Ridge-Dispatch}o" %D"
123.123.123.123 [20/Nov/2010:01:02:03 +0900] "GET / HTTP/1.1"
"Hatena::Monolith::Engine::Index#default" 1021
%{レスポンスヘッダ名}o で reverse proxy のログにディスパッチ
結果をレスポンスタイムと共に記録
- 18. 遅い原因を調査する - run.pl
$ perl server.pl -p 3000
# Webサーバーとして動作する
$ perl run.pl http://d.hatena.ne.jp/onishi/
# 1リクエストだけ処理する
プロファイリングしやすい
-d オプションを入れてプロファイラを実行
cron で定時実行して継続プロファイル
- 21. Devel::NYTProf - 実例
sub sanitize {
my $str = shift;
$str =~ s/&(?![#a-zA-Z0-9_]{2,6};)/&/g;
$str =~ s/</</g;
$str =~ s/>/>/g;
$str =~ s/"/"/g;
$str =~ s/'/'/g;
$str =~ s//\/g;
return $str;
}
- 23. Devel::NYTProf - 実例
sub sanitize {
my $str = shift;
$str =~ /[&<>"']/ or return $str;
$str =~ s/&(?![#a-zA-Z0-9_]{2,6};)/&/g;
$str =~ s/</</g;
$str =~ s/>/>/g;
$str =~ s/"/"/g;
$str =~ s/'/'/g;
$str =~ s//\/g;
return $str;
}
- 27. Devel::KYTProf - add_prof(s)
use Devel::KYTProf;
Devel::KYTProf->add_prof(
'Foo::Bar',
'baz',
sub { },
);
# Foo::Bar クラスの baz メソッドを計測対象に
Devel::KYTProf->add_profs(
'Foo::Bar',
[qw/baz piyo/]
);
- 31. 継続プロファイリング
0 * * * * perl -d:KYTProf run.pl http://d.hatena.ne.
jp/onishi/ >> /var/log/profile.log 2>&1
毎時実行して記録を残す
日々のパフォーマンスの状況を残す
一時的な問題があった時に後から何があったか眺めたり
パフォーマンス改善の効果を確かめたり