Nginx 和 PHP FPM 很慢

Nginx 和 PHP FPM 很慢

我的服务器有 512 MB 内存。nginx.conf 设置是

user www-data;
worker_processes 2;
pid /var/run/nginx.pid;

events {
    worker_connections 768;
    # multi_accept on;
}

http {

##
# Basic Settings
##

sendfile on;
#tcp_nopush on;
#tcp_nodelay on;
keepalive_timeout 3;
types_hash_max_size 2048;
# server_tokens off;

# server_names_hash_bucket_size 64;
# server_name_in_redirect off;

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

##
# Logging Settings
##

access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;

##
# Gzip Settings
##

gzip on;
gzip_disable "msie6";

# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

##
# Virtual Host Configs
##
upstream php {
    server 127.0.0.1:9000;
}


open_file_cache max=5000 inactive=20s;
open_file_cache_valid    30s;
open_file_cache_min_uses 2;
open_file_cache_errors   on;

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}

我的 php fpm 配置是

user = www-data
group = www-data
pm = dynamic

pm.max_children = 50

pm.start_servers = 25

pm.min_spare_servers = 8

pm.max_spare_servers = 40

我正在使用一个 wordpress 网站。但是它太慢了。我还有另一台 512 MB 的办公室服务器。它使用 apache,比 nginx + phpfpm 更快。我的配置有什么问题吗?

内存使用情况

内存可用

最佳结果

最佳结果

答案1

最初不要启动那么多 php 服务器,也许可以考虑在没有此代码块的情况下进行测试:

open_file_cache max=5000 inactive=20s;
open_file_cache_valid    30s;
open_file_cache_min_uses 2;
open_file_cache_errors   on;

在我看来,您最初尝试使用 php 将太多内容加载到 RAM 中,而且从顶部的内存使用情况来看,您的网站似乎有点资源密集型,您是否考虑过使用像 APC 这样的操作码缓存器?http://pecl.php.net/APC

答案2

我使用类似的设置,nginx 和 php-fpm 都使用了 APC。最小和最大服务器有点高,我还有一个虚拟机,每台机器的内存大约为 500mb。阅读后https://stephentanner.com/tuning-php-fpm.html我已将我的机器调整到以下状态。

pm.max_children = 6
pm.start_servers = 2
pm.min_spare_servers = 2
pm.max_spare_servers = 4
pm.max_requests = 50

我的机器上有 4 个 php-fpm 进程,每个进程大约 60mb,消耗大约 252mb,从而为 nginx/mysql/whatnot 留下了更多的资源。

如果它不符合您的需要,请尝试一下,并稍微调整一下。

答案3

我有点不确定你为什么要进行内联 gz 压缩,这需要 CPU 周期..你为什么需要它?

正如 anthonysomerset 所说,降低 php 子项的数量。

相关内容