debian

LNMP在Debian上的资源分配

小樊
44
2025-08-19 22:40:29
栏目: 智能运维

在Debian上部署LNMP(Linux+Nginx+MySQL/MariaDB+PHP)时,资源分配需从系统配置、服务参数及硬件层面综合优化,以下是关键要点:

一、系统级资源分配

  1. 文件描述符限制
    • 通过ulimit -n 65535提升Nginx/PHP-FPM的文件句柄上限,避免高并发时连接中断。
    • 修改/etc/security/limits.conf永久生效:
      * soft nofile 65535
      * hard nofile 65535
      
  2. 内核参数调优
    • 优化网络性能:
      sysctl -w net.core.somaxconn=65535
      sysctl -w net.ipv4.tcp_fin_timeout=30
      sysctl -w net.ipv4.tcp_fastopen=3
      
    • 减少磁盘交换:设置vm.swappiness=10(/etc/sysctl.conf),优先使用物理内存。

二、Nginx资源分配

  1. 进程与连接优化
    • worker_processes:设置为CPU核心数(grep -c ^processor /proc/cpuinfo),提升并发处理能力。
    • worker_connections:单进程最大连接数,建议设置为1024-4096,配合use epoll提升I/O效率。
  2. 静态资源缓存
    • 启用gzip压缩(gzip on)减少传输体积,静态文件(如图片、CSS)设置expires缓存头(如expires 30d)。

三、MySQL/MariaDB资源分配

  1. 内存与连接管理
    • innodb_buffer_pool_size:设置为服务器物理内存的50%-80%,用于缓存数据提升查询效率。
    • max_connections:根据应用并发量调整(建议≤1000),避免连接数耗尽。
  2. 查询优化
    • 启用慢查询日志(slow_query_log=1),定期分析并优化低效SQL。
    • 为高频查询字段添加索引,避免全表扫描。

四、PHP资源分配

  1. PHP-FPM参数优化
    • pm.max_children:根据服务器内存计算(建议内存/单个PHP进程占用内存,如512MB内存设为10-20),避免进程过多导致资源争抢。
    • 启用opcache:缓存PHP字节码,减少重复编译开销,参数示例:
      opcache.enable=1
      opcache.memory_consumption=128
      opcache.max_accelerated_files=10000
      
  2. 代码层面优化
    • 避免冗余数据库查询,使用缓存(如Redis)存储热点数据。

五、硬件与监控建议

参考来源

0
看了该问题的人还看了