web-dev-qa-db-ja.com

Apacheの多くのインスタンスがPassenger / Railsで生成されます

実稼働Webサイト用のDebianLinux VPSサーバー(512MB)があります。

私はApacheでPhusionPassengerを使用してRails 2.3.4アプリケーションをRuby 1.9でサービスしています。PhusionPassengerインスタンスのプールを3に制限しています

トラフィックは比較的少ないですが、サーバーがクラッシュすることがあり、( 'top'コマンドを使用している場合)Apache(/ usr/sbin/Apache2 -k start)のインスタンスが多数あり、そのうちの20個がすべてを占めていることに気付きます。私が持っているメモリとウェブサイトが応答しなくなります。

これについてどうすればよいか、潜在的な問題をどこから探し始めるか、Apacheインスタンスの数を見つけたり制限したりする方法がわかりません。

ありがとう、

タム

3
Tam

それがあなたの [〜#〜] mpm [〜#〜] セットアップになります。 * nixボックスを使用しているので、おそらく Prefork httpd -l(またはubuntuではApache2 -l)を実行して、モジュールにコンパイルされていることを確認できます。

Httpd.conf(またはセットアップによってはApache2.conf)に移動し、環境に合わせてMPMワーカーの適切な構成を編集します。

編集:

示されているようにプリフォークmpmを実行していますが、prefork.cコンパイル済みとしてリストされています。/etc/Apache2/Apache2.confにアクセスすることをお勧めします(チェックするUbuntuボックスしかありませんが、Debian派生物なので同じである必要があります)。

以下のようなセクションがあります。それらの値を編集します。

# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>
2
Zypher