« 2007年09月 | メイン | 2007年11月 »

2007年10月11日

MySQL のウォームアップ (InnoDB編)

 サーバの起動直後はデータがメモリ上にないためデータベースの応答速度が遅い、というのは良く知られた話かと思います。MySQL の場合、使っているエンジンが MyISAM であれば、各データファイルをあらかじめ cat ... > /dev/null するなりしてバッファキャッシュに載せておけばいいのですが、InnoDB は独自のキャッシュを持っているのでそういうわけにもいかないように思います。

 具体的には、パフォーマンスを最大限発揮するためには OS のキャッシュにではなく、InnoDB のバッファプールにデータをロードすべきであるという点。それに、たとえ OS のキャッシュを利用するので良しとするケースでも、サーバの実メモリの過半をバッファプールに使用しているような場合だと、バッファプールを確保するために OS のキャッシュにロードしたデータが破棄されるケースが出てくるという点が、問題となるのではないでしょうか。

 じゃあどうすんべ、とお風呂の中で考えた結果、以下の案にたどり着きました。たぶんこの手順で問題ないと思うのですが、間違いがあればツッコミを入れていただければ幸いです。

続きを読む "MySQL のウォームアップ (InnoDB編)"

投稿者 kazuho : 2007年10月11日 22:44 | トラックバック (1) このエントリーを含むはてなブックマーク このエントリーを含むはてなブックマーク

2007年10月04日

DBIx::Printf と LIKE 式

Kazuho Oku / DBIx-Printf-0.05 - search.cpan.org
(svn リポジトリ)

 本社の山本さんに「DBIx::Printf では LIKE 式の扱いも考えるべき」と言われたので、こんな感じで対応してみました。

続きを読む "DBIx::Printf と LIKE 式"

投稿者 kazuho : 2007年10月04日 14:16 | トラックバック (0) このエントリーを含むはてなブックマーク このエントリーを含むはてなブックマーク

2007年10月02日

Perl で並列処理 (using マルチプロセス)

 Shibuya.pm で牧さんが Gungho の話をされたそうで、スライドを拝見しました。Pathtraq への言及もあってうれしい。

 で、スライドを読んでいて、HTTP アクセスと HTML 解析/保存処理を分離すべき、となっている点が気になりました。実は Pathtraq (のうち奥が書いている部分) では、Gungho と HTML の解析/保存処理を分離することはしていません。そのかわり、複数のワーカープロセスを駆動することで、スループットを確保しています。分離モデルとマルチプロセスモデル、どちらの手法を採るべきかは、解析/保存処理の重さやエラー処理の設計方針にもよると思うのですが、少なくとも1台のサーバで処理できる間はマルチプロセスモデルで問題ないのではないかと漠然と考えています。。別に分離したからといって悪いことはないのですが、マルチプロセスモデルには、OS側で自動的に処理能力の配分が行われるので、面倒な非同期処理を書いたり、細かな負荷配分の調整を行わなくても良い、というメリットがあります。

続きを読む "Perl で並列処理 (using マルチプロセス)"

投稿者 kazuho : 2007年10月02日 19:28 | トラックバック (1) このエントリーを含むはてなブックマーク このエントリーを含むはてなブックマーク