在Debian上部署LNMP(Linux+Nginx+MySQL/MariaDB+PHP)时,资源分配需从系统配置、服务参数及硬件层面综合优化,以下是关键要点:
ulimit -n 65535提升Nginx/PHP-FPM的文件句柄上限,避免高并发时连接中断。/etc/security/limits.conf永久生效:* soft nofile 65535
* hard nofile 65535
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),优先使用物理内存。worker_processes:设置为CPU核心数(grep -c ^processor /proc/cpuinfo),提升并发处理能力。worker_connections:单进程最大连接数,建议设置为1024-4096,配合use epoll提升I/O效率。gzip压缩(gzip on)减少传输体积,静态文件(如图片、CSS)设置expires缓存头(如expires 30d)。innodb_buffer_pool_size:设置为服务器物理内存的50%-80%,用于缓存数据提升查询效率。max_connections:根据应用并发量调整(建议≤1000),避免连接数耗尽。slow_query_log=1),定期分析并优化低效SQL。pm.max_children:根据服务器内存计算(建议内存/单个PHP进程占用内存,如512MB内存设为10-20),避免进程过多导致资源争抢。opcache:缓存PHP字节码,减少重复编译开销,参数示例:opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
top、htop、vmstat实时监控CPU/内存使用,或使用Prometheus+Grafana构建可视化监控体系。参考来源: