插件窝 干货文章 LNMP服务器资源分配技巧

LNMP服务器资源分配技巧

内存 Nginx 优化 服务器 227    来源:    2025-05-07

LNMP服务器资源分配优化指南

LNMP(Linux + Nginx + MySQL + PHP)是常见的Web服务器架构,合理的资源分配对服务器性能至关重要。以下是一些优化建议:

1. CPU资源分配

  • Nginx:作为前端服务器,Nginx对CPU需求较低,通常1-2个核心即可处理大量并发
  • PHP-FPM:CPU密集型,建议分配更多核心

    • 根据PHP应用复杂度调整pm.max_children参数
    • 一般规则:max_children = 可用内存 / 单个PHP进程内存占用
  • MySQL:查询密集型应用需要更多CPU资源

    • 对于复杂查询,建议分配2-4个核心

2. 内存分配

  • Nginx:内存占用小,每个worker约2-10MB
  • PHP-FPM
    • 根据pm.max_children和单个进程内存占用计算
    • 典型WordPress站点每个PHP进程约20-50MB
  • MySQL
    • 分配可用内存的50-70%给innodb_buffer_pool_size
    • 确保有足够内存处理连接和临时表

3. 磁盘I/O优化

  • MySQL数据目录:使用SSD或高性能存储
  • 日志文件:与数据目录分开存储
  • Nginx缓存:考虑使用内存缓存或快速SSD

4. 配置参数调优

Nginx优化

worker_processes auto; # 自动匹配CPU核心数
worker_connections 1024; # 根据内存调整
keepalive_timeout 65;
gzip on; # 启用压缩

PHP-FPM优化

pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8

MySQL优化

innodb_buffer_pool_size = 4G # 总内存的50-70%
innodb_log_file_size = 256M
query_cache_size = 64M
max_connections = 100 # 根据应用需求调整

5. 监控与调整

  • 使用top, htop, vmstat监控资源使用
  • 使用nginx -t测试配置更改
  • MySQL慢查询日志分析优化
  • PHP OPcache启用和调优

6. 典型服务器配置示例

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

记住,最佳配置取决于具体应用特性,建议通过压力测试和持续监控来微调参数。