在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
構建可視化監控體系。參考來源: