無知を承知で…JSNサーバー負荷対策

無知は無知と言いたい。無知なくせに知ったかぶりしてお客様に甚大な被害が及ぶより全然マシです。
無知であることを知らしめることは恥ずかしいことではなく、これから吸収する可能性と意欲をあらわしていると、そう思います。(自己弁護w)

さて、本題ですが、Apacheにおける負荷制御のシステムがよく理解できません。
/etc/security/limits.confをいじる方法(ulimitと同じような制限方法だと思う)だと*1、apacheからwrapされるプロセスには働かないようで*2、結局無限ループCGIのプロセスは10個くらい全部立ち上がりました。*3かといって、ユーザーapacheにその制限をかけるとするととんでもなく面倒なことになりそうなのでできないしな…。*4

さくらの人が公開しているmod_access_limitはApache1.3系での実装なんですよね。
Netniceという機構が非常によさそうなのですが、やはりLinuxでの対応はアルファリリースであることを考えると、本運用できないと。(最終更新日が2005年ですし)
とりあえず、Netniceのページで例示されていたいくつかのモジュールを試してみます。

たしかmod_bwshareはJSNでも帯域制限で入れてたはずなので、これで接続数を制限する方向が今のところ妥当な線でしょう。

ただ、これだけでは根本的解決にならないんですよね…。
SpamAssassin→spamc にすることとかもしないとです。*5
というか、メールサーバーを分けたりする方向を訴えているのですが、なかなか通りません*6
今のサーバーは1台でいろんな機能をまかなっているので、重くなる原因がいっぱいある。
これを切り分けできればいろいろと楽になるのですが、ここまで大きくなると集中メンテとかで数時間ダウンさせないと修正できないレベルになってきてますね…。

うお。ここまで書いて気づいた。
同じ内容のエントリーを6月にも書いてますねorz
あ~。懸念事項がやっぱりこうやって現れてきてしまいました。

春休み使って少し案を練ってみます。

  • *1これはApacheというよりもLinuxのシステム的に制限をかける方法です。
  • *2いったんApacheによって起動した後にユーザーに権限を振る?
  • *3そのユーザーには5個の制限をかけてテストしてみたんですが…。
  • *4要するにサーバー全体で立ちあがるCGI数の制御になるので、ユーザーごとの負荷制御にならない
  • *5大々的に書いてますがすぐできるだろ>俺
  • *6予算的に
スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク