人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ApacheのWorkerについて質問です。

このような設定でapacheをパフォーマンス向上の目的でworkerモードで動作させています。
<IfModule worker.c>
ServerLimit 3
StartServers 2
MaxClients 75
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 256
</IfModule>

あるページをSpeedyCGIで動作させているのですが、そのページをYahooのボットなどがクロールし始めたり
ちょっと同時アクセスが増えると300MぐらいあるhttpdプロセスやSpeedyCGIのプロセスが60ほど起動し
Swapを使い果たしてしまうような感じです。

きっと設定が悪いのですが、ServerLimitは設定してありますしどのあたりが悪いのか分かりません。
安定稼働させたいのですが、いい設定方法などは無いでしょうか?

●質問者: yumtan
●カテゴリ:インターネット ウェブ制作
✍キーワード:Apache httpd swap Yahoo アクセス
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● pah00
●27ポイント

MaxRequestsPerChild 256

この値が小さすぎます。

4000ぐらいは最低必要です。

◎質問者からの返答

5000ぐらいにしてみました。

有難うございます。


2 ● b-wind
●27ポイント

きっと設定が悪いのですが、ServerLimitは設定してありますし

同時実行数に関しては MaxClient の方が直接的に作用する。

mpm_common - Apache HTTP サーバ


300MぐらいあるhttpdプロセスやSpeedyCGIのプロセス

300M ぐらいあるのはどっち?

httpd がメモリ食ってるなら異常な状態だし、SpeedyCGI の方なら実メモリと併せて上限が計算できるはず。


安定稼働させたいのですが、いい設定方法などは無いでしょうか?

現状の情報だけだと何とも言えないなぁ。

Yahoo! のクローラーが問題ならクローラーだけ同時アクセス数を絞ればいいだろうし、

アプリがメモリを食い過ぎてるようなら設計から見直すべき。

◎質問者からの返答

同時実行数に関しては MaxClient の方が直接的に作用する。

なるほど。

プロセスの数を制限するにはServerLimitであっていますよね?

300M ぐらいあるのはどっち?

httpd がメモリ食ってるなら異常な状態だし、SpeedyCGI の方なら実メモリと併せて上限が計算できるはず。

それはhttpdです。

書き忘れていたのですがlibphp5を導入してるからだと思います。

workerですのでlibphpなど導入していると1プロセスあたり300Mぐらいになるのは普通だと思っていたのですが違いますか?

speedycgiは1プロセスあたり20Mぐらいです。

現状の情報だけだと何とも言えないなぁ。

Yahoo! のクローラーが問題ならクローラーだけ同時アクセス数を絞ればいいだろうし、

アプリがメモリを食い過ぎてるようなら設計から見直すべき。

ですよね…

httpdのプロセスの数を制限出来たら嬉しいのですが…


3 ● naninanida11
●26ポイント

http://httpd.apache.org/docs/2.0/ja/mod/worker.html

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ