0

1 日あたり 140,000 ページ ビュー (分析) のサーバーを実行しています。php-fpm プロセスは、それぞれ約 10 ~ 12M かかります。
サーバーは 10G RAM、mysql は 1.2G ~ 1.6G

構成は次のようになります。

nginx

user  nginx;
worker_processes  4;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  /var/log/nginx/access.log  main;
     access_log off;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  10;

    client_max_body_size 20M;

        server_tokens off;

    include /etc/nginx/conf.d/*.conf;
}

このようなphp-fpm:

listen = 127.0.0.1:9000
listen.allowed_clients = 127.0.0.1
user = webadmin
group = webadmin
pm = dynamic
pm.max_children = 900
pm.start_servers = 900
pm.min_spare_servers = 200
pm.max_spare_servers = 900
pm.max_requests = 500
chdir = /

通常、サーバーは 500 人の同時ユーザー (この見積もりを取得するためにリアルタイムの Google アナリティクスを使用) で問題なく実行できますが、ユーザーがそれほど多くない場合 (75 ~ 100 人の同時ユーザー) には停止します。

構成は、私が信頼している ISP によって行われますが、それでも構成が理にかなっているかどうか知りたいです。

4

1 に答える 1

0

これが最良の設定だと言っているわけではありませんが、私たちにとってはうまくいきます。

nginxのセットアップで更新したものは次のとおりです。

worker_connections 、ブラウザはリクエストごとに2つの接続を開くので、技術的には512のリクエストごとに1024の使用可能な接続がないので、2048に変更すると思います

また、書き込み時間を考慮してI / Oを低く抑えるために、エラーログファイルのパラメータを「info」に変更したので、「warn」から「info」に変更しました。

アクセスログを保持したい場合は、ログ全体をスリム化することをお勧めします。

マスターnginx.confを確認する価値があるかもしれません。また、構成がこのファイルによって上書きされ、デフォルトに戻されている可能性があります。

私が経験した大きなリストから私がした2つの小さなことだけですが、この記事は素晴らしいです-リンク

于 2013-01-09T16:09:04.750 に答える