web-dev-qa-db-ja.com

メモリを割り当てることができません:フォーク:新しいプロセスをフォークできませんか?

awsにホスティングがあります。最近、ブログをwordpressからawsに移動した後、サーバーの応答時間が著しく遅くなっています。主にブログにアクセスしながら。以下は、error_logファイルのログです。

[Wed Feb 25 06:10:10 2015] [error] (12)Cannot allocate memory: fork: Unable to fork new process
[Wed Feb 25 06:12:22 2015] [error] (12)Cannot allocate memory: fork: Unable to fork new process
[Wed Feb 25 06:12:36 2015] [error] (12)Cannot allocate memory: fork: Unable to fork new process
[Wed Feb 25 06:12:50 2015] [error] (12)Cannot allocate memory: fork: Unable to fork new process
[Wed Feb 25 06:13:35 2015] [error] (12)Cannot allocate memory: fork: Unable to fork new process
[error] (12)Cannot allocate memory: fork: Unable to fork new process
[Wed Feb 25 06:27:14 2015] [error] (12)Cannot allocate memory: fork: Unable to fork new process

php.iniファイルのメモリサイズを256から512 MBに増やしました。しかし、それでも問題は残っています。

また、KeepAliveをOnに変更しました。それでも解決しません。どんな提案/解決策も大いに役立ちます。

12
Muruga

AWSのVM上のubuntuでjenkins、mysql、Tomcatを使用してJavaアプリをホストしているときに、この問題に直面しました。

VMの再起動に関する問題を解決するために使用した最初のステップ。

AWSはデフォルトでハードドライブにスワップメモリ​​を提供しないので、手で作成することをお勧めします。これを行う方法 ここ を見つけることができます。言及する必要があります:スワップゾーンを使用したソリューション(理由がわからない)が機能しません。スワップファイルを作成する必要がありました。

頑張って!

9
barbarian

私はそれを修正するために同じ問題を抱えていましたが、2つのオプションがあります:

1-マイクロインスタンスから小さなインスタンスに移動し、これが問題を解決した変更です(Amazonのマイクロインスタンスは、CPUスチール時間が長い傾向があります)

2- mysqlデータベースサーバーの構成とApacheの構成を調整して、メモリを大幅に節約します。

このような低メモリ状況のチューニングガイド: http://www.narga.net/optimizing-apachephpmysql-low-memory-server/ (ただし、MyISAMテーブルの提案は使用しないでください-恐ろしい...)

この2つのオプションを使用すると、問題の発生をはるかに少なくすることができます。実行中のプロセスを閉じて、そこでハングしているプロセスを強制終了するためのより良い解決策を探しています。

3
J.Tural

Apacheのprefork MPMをhttpd.confに変更しましたこれらは私が最終的に使用した値です:

StartServers 1

MinSpareServers 1

MaxSpareServers 5

ServerLimit 16

MaxClients 16

MaxRequestsPerChild 0

ListenBacklog 100

次に、Sudo a2dismod name_of_moduleを使用して、いくつかのモジュールphpを非アクティブ化してみます。

0
Patrikoko