web-dev-qa-db-ja.com

Nginx + PHP 5.3.3(php-fpmを使用)-メモリ使用量?

最近、Debian 5.0 Lenny(i386)でXen VPS(linode.com)を購入しました512MB RAM。現在、このサーバーで実行されている小さなWebサイト(Drupalで構築されたもの)は3つだけで、1日あたり合計約600人のユーザーがいます。

Webサーバーとして、私はnginx 0.7.67PHP 5.3. with php-fpm)を使用します。平均メモリ消費量は約100-105MBです。 Muninグラフが示すものは次のとおりです。

alt text

これが「トップ」コマンドの表示です(メモリ使用量でソート)。

alt text

私のphp5-fpm.confで:

pm = dynamic
pm.max_children = 50
pm.start_servers = 2
pm.min_spare_servers = 2
pm.max_spare_servers = 5
pm.max_requests = 500

いくつかの大きなプロジェクトをこのVPSに移行する前に、これがこの種のサーバー構成の通常のメモリ消費であるかどうかを知りたいですか?このVPSが処理できるWebサイト(たとえば、Zend Frameworkで構築された)のユーザー数は?

ありがとうございました!

6
user38484

私にとってそれはよさそうだ。あなたのPHP + MySQLは約100メガバイトのRAMしか使用しておらず、オペレーティングシステムが呼吸するための十分なスペースを残しています。

あなたの「このVPSは何人のユーザーを処理できますか?」質問:状況によります。適切なキャッシュとその他のベストプラクティスがあれば、1秒あたり少なくとも数十のリクエストを処理する必要があると思います。

コンテンツが非常に動的でキャッシュ可能性が低く、データベース構造が複雑であるか、データベースが大きい場合、パフォーマンスが低下します。

通常、トラフィックが増加するたびに最初にヒットする制限はメモリであり、非常に動的なコンテンツではCPUも苦しめられます。

7

それは良くありません、あなたのphp5-fpmプロセスはおよそ35Moかかります。この構成では、50のプロセス(max_children = 50)があり、それぞれに35moが割り当てられます。したがって、512Moしかないマシンは交換されます。あなたの限界はphp-fpmの約10プロセス(max_children = 10)だと思います。

7

Linodeは揺れる!私の唯一のアドバイスは、MySQLを別の512MBのlinodeに移動することです。メリットはたくさんあり、月額20ドルで破産しない限り、デメリットはありません。

私の腸はあなたがdebianまたはubuntuを実行していると言っています。スタックスクリプトライブラリをチェックしてください。 linode用に最適化された専用のMySQLサーバーがあります。次に、プライベートIP(無料)をfile/nginx/php-fpmサーバーに追加し、プライベートIPをdbサーバーに追加します。すべてのデータは、linodeのDCのローカルネットワーク内を移動します。高速で、毎月の帯域幅の上限にはカウントされません。

「より大きなプロジェクト」サイトを同じnginx/php-fpmlinodeに配置することもできます。トラフィックが増加するにつれて、専用のmemcached VPS、専用のPHP-FPM VPSを追加し、必要な数の$ 20 512MBlinodeに水平方向にスケーリングできます。

データベースは垂直方向にスケーリングされます...したがって、空腹になり始めたら、次のサイズに増やします。

処理できる量は、キャッシュ、クリーンなコード、ページの読み込みごとのdb呼び出しの数などの要因によって異なります...フロントエンドをdbから分割すると、「必要なだけ大きくスケーリング」するための扉が簡単に開かれます。

2
eyecool

私もこの事実を心配していました。 613Mbの「メモリ」しかないマイクロインスタンスでAmazonEC2仮想サーバーシステムを使用して実行しています。私たちのテストから、目立った問題なしに同時に実行されている少なくとも50人の子供を処理できると言えます。動作を説明することはできませんが、それでも機能することはわかります。

0
Brian