私はVPSにNginx + php-fpmを備えたUbuntu 12.04でwordpressを使用しています。2つのCPUコア+ 4096Mbのメモリがあります。
Mysqlデータベースを別のサーバーに移動して、リモートアクセスを設定しました。一度に約300人のオンライン訪問者がいて、php-fpmは実際には大量のCPUを使用します。
ワードプレスにはAPC-cacheとbatcacheも使用しています。
php-fpm設定:
listen = /var/run/fpm-macradar.sock
;listen.backlog = -1
pm = ondemand
pm.max_children = 30
pm.start_servers = 15
pm.min_spare_servers = 10
pm.max_spare_servers = 20
;pm.process_idle_timeout = 10s;
pm.max_requests = 500
pm.status_path = /status
chdir = /
request_slowlog_timeout = 60s
slowlog = /var/log/$pool.log.slow
request_terminate_timeout = 120s
rlimit_files = 131072
rlimit_core = unlimited
catch_workers_output = yes
;php_flag[display_errors] = off
php_admin_value[error_log] = /var/log/fpm-php.www.log
php_admin_flag[log_errors] = on
php_admin_value[memory_limit] = 128M
助けていただければ幸いです
2つのCPUしかなく、並列に30の子がある場合は、CPUがサポートするプロセスの数を引き継いでいます。動作しようとしている子が複数いる場合、それぞれのCPUは少なくなり、その結果、すべてが遅くなるだけでなく、CPUのオーバーヘッドも発生します。 WordPressのように、各リクエストで大量のCPUを使用する場合)は、これは非常に重要です。
最大数を2つか3つの子に減らし、接続のキューを管理するnginxを使用すると、クエリは失われません。
FPMが「オンデマンド」の場合は、pm.max_childrenを定義するだけでよく、この場合は次のようになります。
pm.max_children = 2
お役に立てば幸いです。
これは古い質問ですが、投稿を編集している誰かによって今日ぶつけられました。
Wordpressキャッシングプラグインをインストールすると効果的ですが、それでもPHPが実行されるため、比較的低速です。Webサイトの訪問者の一部が匿名(つまりログインしていません)Nginxでページキャッシュ(fastcgi_cache)を実行すると、PHP)の呼び出しをまったく回避できます。これにより、CPU使用率が劇的に低下し、応答時間が改善されます。ページは、貴重な1秒、またはサイトが非常に静的な場合は、1日以上かかる可能性があります。変更を公開するときにキャッシュをクリアするのが難しい部分ですが、解決策があります-以下を参照してください。
LEMPで書いたチュートリアル を読んでください。この最初の部分では、ダウンロードする構成ファイルを提供します。それらはよくコメントされており、チュートリアルの後半ではそれらについて説明します。 Nginxによる microcaching に関するすばらしい記事もあります。