色々やってみた結果、PostgreSQLをチューニングしてもブログの再構築はこれ以上速くならないことが分かった。面白いのは、PostgreSQLにするとMySQLの倍近い速さで再構築が出来るのだけれど、この時にtopを見ているとPostgreSQLはほとんどCPUを使っていないのに対し、MySQLはかなりCPUを使っている。MySQL-5.0系はロックの処理に問題があるようで、ほとんどSELECTしか発行しない再構築においても、CPUをかなり消費するように見える(mysql-debuginfoを入れてoprofileをかけたわけでは無いので、当てずっぽうだが)。
そして、PostgreSQLでの再構築の際にCPUを使っているのは、もちろんmt.cgi、つまりperlなわけでこいつをどうにか高速化したいのだけれど…
まず比較的簡単にできるところから手を付けた。
FastCGIを使うのはそれほどやっかいではないので、こいつからやってみる。少し調べたところRHEL/CentOS + EPELでの手順を紹介しているものが無かったし、自分も忘れそうなのでメモ書きしておく。
前提条件としては、RHEL/EPELのレポジトリが見えること。この状態で、まずRPMを入れる。
# yum install mod_fcgid fcgi mod_fcgid-selinux
次に、CPANモジュールを入れる。
# cpan
cpan> install FCGI
cpan> install CGI::Fast
mt-config.cgiにFastCGIを利用するスクリプトを指定する。
......
DeleteFilesAtRebuild 1
AdminScript mt.fcgi
CommentScript mt-comments.fcgi
TrackbackScript mt-tb.fcgi
SearchScript mt-search.fcgi
ファイルをリネームする。
# mv mt.cgi mt.fcgi
# mv mt-comments.cgi mt-comments.fcgi
# mv mt-tb.cgi mt-tb.fcgi
# mv mt-search.cgi mt-search.fcgi
SELinuxのタイプを変更する。
# chcon -t httpd_fastcgi_script_exec_t /var/www/cgi-bin/mt/*.fcgi
ダッシュボードにつなぐと、あら快適(笑)。