結局 MaxClients を減らすと通常時でもコネクションが足りないという……
どうしたものかと思っていたら、phpのメモリー制限を、移行時のアップロード制限を緩和するために128Mに上げてったのでした。
そりゃ巨大なプロセスが上がるわね。
で、
/etc/php.ini
memory_limit = 8M ; Maximum amount of memory a script may consume
戻してみる。どうでしょう?
結局 MaxClients を減らすと通常時でもコネクションが足りないという……
どうしたものかと思っていたら、phpのメモリー制限を、移行時のアップロード制限を緩和するために128Mに上げてったのでした。
そりゃ巨大なプロセスが上がるわね。
で、
/etc/php.ini
memory_limit = 8M ; Maximum amount of memory a script may consume
戻してみる。どうでしょう?
適切なプロセス制限数がわからんな……
やっぱり更新するとロードアベレージがすごいのでー。
次に疑ったのはhttpdのプロセス数。100超えしているので。
とりあえず生存時間を短くすべく最大接続回数を制限してみる
/etc/httpd/conf/httpd.conf
MaxClients 100 MaxRequestsPerChild 400
↓
MaxClients 80 MaxRequestsPerChild 100
10年ぐらい前はscreen使ってたんだけど、漢字コード(当時)通らなかったりして微妙に使いにくかったので、何となく使うのをやめて今に至るのですが。
昔から設定で何とかなってたのかもしれないけど、不満を感じている部分は.screenrcを書くと解消される事がわかったので、遅ればせながら設定。
defutf8 on defkanji UTF-8 defencoding UTF-8 encoding UTF-8 UTF-8 defscrollback 10000 autodetach on startup_message off caption always "%n %t %= %{=b wk} %{=s wb}%y/%m/%d %{=s wb}%02c" bind ^e encoding eucJP UTF-8 bind ^u encoding UTF-8 UTF-8 bind ^w encoding SJIS UTF-8 bind ^j encoding jis UTF-8
1〜4行目:文字コード関連(使用するシステム/ユーザのロケールに合わせる)
5行目:スクロールバッファサイズ
6,7行目:起動時の著作権表示を抑止し、ターミナルが切断されたときに自動デタッチする
8行目:キャプション行。これが出ていることでscreen起動中であることを認識できるように(よく起動忘れがあるので)。Window番号/名称を表示して今どのウィンドウが開いてるかを識別できるように(頻繁にわからなくなるので) したのと、左端に日時を表示。日時表示は気がつかない間にラインが切れていても認識できるようにおまけ表示として。
9〜12行目:漢字コード変換指定をキーストロークで指定できるように指定。eucJPとUTF-8のホストが混在しているのと、RT58iがSJISなので。
とりあえず当面はこんな感じで。
結局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
先ほどサーバーをリブートしたら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
というエラーで起動しない問題があるのだけれど。
XML-Sitemapの作成に時間がかかっている可能性が出てきたので、毎回更新しない設定にしてみた。
どうだろ?
今までは、さくらの専用サーバエントリーのデフォルトというか、おそらく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
変更後の数字は適当。本当はちゃんと計算すべきな気もする。とりあえず運用して具合を見ようかと。
PPTPで外出先からおうちのNASをみたい!プロジェクトが進展しましたですよ。
いや、まだゴールでないのは弱いが。
PPTPで同じアドレスブロックに割り振られているので、ブロードキャストが通るのかと思ったら、そんなことはなく、NetBIOS名解決ができていないという課題を解決すべく。LMHOST書けばいいんだろうけど、ちょっとやってみてうまくいかなかったのと、個人的に静的設定をできるだけしたくない(移行時に忘れる)ので、WINSを上げようと。
で、NAS(LS-QL)の実装は結局sambaだし、WINS担ったりしないかしらと思ったら、そんなオプションはなく。
結局1つVM作って、そこのnmbdを設定することに。OSはCentoOS5.3(設定がうまくいったら、それを踏襲して、netbookで展開しようかと)
[global] workgroup = fairies server string = Samba Server Version %v interfaces = eth0 bind interfaces only = yes local master = yes preferred master = yes os level=65 wins support = yes dns proxy = yes
(interfaces周りは不要な気もするけど、一応)
RT58iにて、外出先PCに割り当てられるアドレスに対して、
LANインタフェースのすべてのパケットを通過するように
フィルターを書く(たぶんいらない気はするけど、念のため)
で、無事にマスターブラウザーになるか、と思ったらNASがマスターブラウザーのままなのですよねー。そしてWINSにも登録されない……
で、よく設定画面を見たら、NASのほうは、DHCPで配られたWINSは無視して、別途手動でWINSを書いてやらないとだめ、でした。(まあ、考えてみたら中身Linuxだし当然ですね)
これで、外からファイルサーバーが見えるようになって、共有フォルダーの中身も見えるようになった。
外部PCからファイルをNASに置くのは成功したんだけど、NASからファイルを吸い上げようとすると、フォルダーウィンドゥがハングアップするのだよねえ……。何らかのパケットが通ってないのかなあ……