Wordpress 在 Nginx+php5-fpm+varnish+APC 上 CPU 和内存占用高

Wordpress 在 Nginx+php5-fpm+varnish+APC 上 CPU 和内存占用高

经过几天的调试和调整设置后,我已经筋疲力尽,无法找到解决方案。请指导。

我在 DigitalOcean 上有以下服务器:

64GB Memory
8 Core processor
200GB SSD drive

我在其上运行着一个 Wordpress 网站。网站流量很大。(2000 到 3000 个并发实时用户)我确信由于我的设置不当,导致流量减少并且无法向用户提供页面。我预计实时用户数量会超过 5000,但实际数量始终保持在 2000 左右。

我经常收到 OOM 错误,因此mysql或被php5-fpm终止并且网站瘫痪。如果我进行调整php-fpmnginx我会收到502503错误。或者我收到upstream timed out (110: Connection timed out)'FastCGI sent in stderr: PHP message: PHP Fatal error: Maximum execution time of 30 seconds exceeded错误。

现在,我调整了设置,这样就不会出现任何错误,但流量已降至约 1500 个并发用户,并且拒绝上升。所以我肯定我的设置有问题。

/etc/php5/fpm/pool.d/www.conf设置:

pm = dynamic
pm.max_children = 500
pm.start_servers = 150
pm.min_spare_servers = 100
pm.max_spare_servers = 200
pm.max_requests = 5000

FastCGI 设置:/etc/nginx/conf.d/default.conf

location ~ \.php$ {
             try_files $uri =404;
             # proxy buffers - no 502 errors!
             proxy_buffer_size               128k;
             proxy_buffers                   4 256k;
             proxy_busy_buffers_size         256k;

            fastcgi_buffers 256 16k;
            fastcgi_buffer_size 128k;
            fastcgi_max_temp_file_size 0;
            fastcgi_intercept_errors on;
            fastcgi_keep_conn off;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_pass unix:/dev/shm/php-fpm-www.sock;


        }

APC 设置:/etc/php5/fpm/php.ini

[apc]
apc.write_lock = 1
apc.slam_defense = 0
apc.shm_size = "1024M"

我注意到php5-fpm进程占用了大量内存。例如,当我计算每个进程的平均内存时,我得到的结果为: ps --no-headers -o "rss,cmd" -C php5-fpm | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"M") }'并发238M流量为 1100。

请告诉我我的配置哪里错了。因为我百分之百确定我的流量堵塞了。


附加信息

Nginx 配置:/etc/nginx/nginx.conf

worker_processes  12;
worker_rlimit_nofile 20000;


events {
    worker_connections  3000;
    use epoll;
    multi_accept on;
}

但我注意到服务器上的 ulimit 是:

ulimit -n仅显示1024。这和我的问题有关吗?

相关内容