MySQLチューニング

結局MySQLのプロセスがいっぱいメモリーをとってスラッジングしているのが原因のような気がする。
ので、例によって適当にチューニング。

以下を /etc/my.cnf に挿入

# Tuning Memory Usage
innodb_buffer_pool_size=512M
innodb_additional_mem_pool_size=20M
innodb_log_buffer_size=16M
innodb_log_file_size=128M
sort_buffer_size=2M
read_rnd_buffer_size=1M
join_buffer_size=256KB
read_buffer_size=1M
key_buffer_size=256M
myisam_sort_buffer_size=1M
net_buffer_length=16384
max_connections=100
innodb_log_files_in_group=2

install Bundle::CPAN on CentOS5.5 が失敗する件の解決方法

先ほどサーバーをリブートしたらtiarraが動かなくなったので、cpanにて、Scalar::Util を強制再インストールして、PPからXSにしたんですが。

そのときにCPANが install Bundle::CPAN してねーと言ってきたので指示通りインストールしようとしたら

Recursive dependency detected:
    ExtUtils::MakeMaker
 => M/MS/MSCHWERN/ExtUtils-MakeMaker-6.56.tar.gz
 => File::Spec
 => S/SM/SMUELLER/PathTools-3.33.tar.gz
 => File::Path
 => D/DL/DLAND/File-Path-2.08.tar.gz
 => File::Spec.
Cannot continue.

とか出る問題。
結局調べた結果、cpanを起動してから install Bundle::CPAN するのではなく、

perl -MCPAN -e 'install( q{Bundle::CPAN} )'

とperlに直接モジュールを読み込ませてアップデートするとよい模様。
原理はよくわかってない。

(via http://blog.laufeyjarson.com/2009/06/recursive-dependencies-in-cpan/ の コメント)

何かメモリーリークしてた?

よくよく見てるとすごくswapが消費された状態だったので、いったんリブートしてみた。

どうかしら?

っていうか、別の問題として、shutdown -r new だと起動途中で止まってしまうっぽく、さくらさんにリセットコールしなきゃいけなかったのと、tiarraが

weaken is only available with the XS version of Scalar::Util at main/ModuleManager.pm line 12

というエラーで起動しない問題があるのだけれど。

apacheのチューニング

今までは、さくらの専用サーバエントリーのデフォルトというか、おそらくCeontOS4のデフォルト値のまま運用してきてたのですが。

ググルさんのクローラーがきたときとかはともかく、POST時にものすごくロードアベレージが上がるのでどうしようかと。

大名管理者的にはメモリとCPUの大きなメニューに変更するか、機能を分散配置するんだろうけど。さくらのVPSが逆引きできればいくつかのサーバに分散してもやすくなるんだけど、とりあえず現状では無理だし、どうしようかと。

で、とりあえず、今までデフォルトのまま運用していたapacheのパラメタを見直そうかと言うことで。

/etc/httpd/conf/httpd.conf
変更前:

KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 15
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000

変更後:

KeepAlive On
MaxKeepAliveRequests 50
KeepAliveTimeout 10
ServerLimit      100
MaxClients       100
MaxRequestsPerChild  400

変更後の数字は適当。本当はちゃんと計算すべきな気もする。とりあえず運用して具合を見ようかと。