web-dev-qa-db-ja.com

I / Oキャッシュを無効にした後でもチェロキーの仮想メモリ使用量が多い

私は、openvzコンテナで実行されているUbuntu 10.04LTS 64ビットと、ソースからコンパイルされたCherokee1.0.8を使用しています。 Advanced-> I/O Cache-> NOTからI/Oキャッシュを無効にした後でも、cherokee-workerの仮想メモリ使用量は約430MBです。

この問題はopenvzに特有のものですか?多くの人が、ioキャッシュを無効にすることでvirtメモリの使用量を減らすことに成功したと報告しているためです。

htop出力: http://imgur.com/z5JEL.jpg (初心者は画像を投稿できません。)

前もって感謝します。

nidheeshdas

1
nidheeshdas

その少なくとも一部は、チェロキーの各スレッドに割り当てられるスタック割り当て(RLIMIT_STACK)になります...そして、チェロキーは多くのスレッドを作成します。このメモリは実際には使用されておらず、まだ使用可能であるため、通常は問題ではありませんが、OpenVZではクォータにカウントされるため、OpenVZVPSでメモリを抑える必要があります。 OpenVZは、起動したばかりの210MB以上を使用していると考えているため、256MBVPSのデフォルト構成でチェロキーを起動することすらできません。

Web構成の[詳細設定]-> [リソース]でチェロキーが使用しているスレッドの数を減らすか(cherokee.confを直接編集している場合は、設定は「server!thread_number = XX」です)、スタックを変更するだけです。 'ulimit -s SIZE_IN_KB'でチェロキーを実行する前のサイズ( 'ulimit -s'で変更する前のデフォルトを確認できます-私のVPSのデフォルトは10240、スレッドあたり10MB)。チェロキーを実行する前にulimitを設定する必要があり、システム全体ではないことに注意してください。したがって、同じシェルからチェロキーを起動する前にシェルで実行するか、チェロキーを起動する前に起動スクリプトを編集して「ulimit-sXX」を実行します。

(特にローエンドの)VPSで物事を機能させるための優れたリソースはLow​​EndBoxです。 " マルチスレッドアプリのスタック制限を減らす "の方法に関するブログ投稿があります。

1
Womba

メモリは、チェロキーではなくphp5-fpmプロセスによって使用されています。あなたは太ったphpアプリケーションを実行していますか?

0
imcsk8