LNMP(Linux + Nginx + MySQL + PHP)是常见的Web服务器架构,合理的资源分配对服务器性能至关重要。以下是一些优化建议:
PHP-FPM:CPU密集型,建议分配更多核心
pm.max_children
参数max_children = 可用内存 / 单个PHP进程内存占用
MySQL:查询密集型应用需要更多CPU资源
pm.max_children
和单个进程内存占用计算innodb_buffer_pool_size
worker_processes auto; # 自动匹配CPU核心数
worker_connections 1024; # 根据内存调整
keepalive_timeout 65;
gzip on; # 启用压缩
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8
innodb_buffer_pool_size = 4G # 总内存的50-70%
innodb_log_file_size = 256M
query_cache_size = 64M
max_connections = 100 # 根据应用需求调整
top
, htop
, vmstat
监控资源使用nginx -t
测试配置更改4核8GB服务器: - Nginx: 2 worker进程 - PHP-FPM: max_children=80 (假设每个进程30MB) - MySQL: innodb_buffer_pool_size=4G
8核16GB服务器: - Nginx: 4 worker进程 - PHP-FPM: max_children=150 - MySQL: innodb_buffer_pool_size=10G
记住,最佳配置取决于具体应用特性,建议通过压力测试和持续监控来微调参数。