Debian LNMP性能调优有哪些技巧
   小樊
 39
 2025-11-02 20:44:24
          
Debian LNMP性能调优技巧
 1. Nginx性能调优
  - 进程与连接配置:将
worker_processes设为auto以自动匹配CPU核心数;worker_cpu_affinity设为auto优化CPU亲和性,减少进程间切换开销;worker_rlimit_nofile设置为65535,提升文件描述符上限,避免高并发时连接拒绝。  - 系统调用与压缩优化:开启
sendfile系统调用,利用内核级文件传输提升静态文件(如图片、CSS)处理效率;若静态内容无需压缩(如已用CDN或浏览器支持gzip),可关闭gzip以减少CPU占用。  - Keepalive与超时设置:
keepalive_timeout设为65秒,keepalive_requests设为100000,复用TCP连接降低握手开销;fastcgi_read_timeout调整为300000(5分钟),避免PHP脚本执行慢导致连接超时。  - 日志与安全优化:
server_tokens设为off,隐藏Nginx版本信息,减少信息泄露风险;error_log设置为/var/log/nginx/error.log并调整日志级别(如error),避免频繁写入日志影响性能。  
 2. PHP性能调优
  - OpCache加速:启用
opcache.enable=1,开启PHP字节码缓存;配置opcache.interned_strings_buffer=64(共享字符串缓冲区)、opcache.max_accelerated_files=10000(加速文件数量)、opcache.memory_consumption=256(缓存内存大小),提升PHP脚本执行效率;开启opcache.jit=on并设置opcache.jit_buffer_size=128M,进一步加速动态代码执行。  - PHP-FPM进程管理:调整
pm.max_children(最大子进程数)为(系统内存 - 系统预留内存) / 单个PHP进程内存(如1GB内存可设为50-80);pm.start_servers设为启动时的子进程数(如pm.max_children的1/4);pm.min_spare_servers和pm.max_spare_servers分别设为最小/最大空闲进程数(如5-10),避免频繁创建/销毁进程的开销;pm.max_requests设为1000-2000,防止单个进程内存泄漏。  
 3. MySQL/MariaDB性能调优
  - 内存配置:
innodb_buffer_pool_size设为系统内存的50%-80%(如4GB内存设为2-3GB),缓存InnoDB表数据和索引,减少磁盘I/O;tmp_table_size和max_heap_table_size设为64M-128M,避免临时表过大导致磁盘写入。  - 连接与查询优化:
max_connections根据服务器处理能力调整(如1GB内存设为100-150),避免过多连接耗尽内存;query_cache_size和query_cache_type根据查询模式设置(如读多写少可设为64M和1,写多则设为0),减少重复查询的开销;开启慢查询日志(slow_query_log=1),定期分析并优化慢查询语句(如添加索引)。  
 4. Linux系统优化
  - 文件描述符限制:通过
ulimit -n 65535临时提高当前会话的文件描述符限制;修改/etc/security/limits.conf,添加* soft nofile 65535和* hard nofile 65535,永久生效。  - 网络参数调优:
sysctl -w net.core.somaxconn=65535增加监听队列长度,避免连接排队溢出;sysctl -w net.ipv4.ip_local_port_range="1024 65535"扩大本地端口范围,支持更多并发连接;sysctl -w net.ipv4.tcp_fin_timeout=30缩短TIME_WAIT状态超时(从默认60秒降至30秒),释放端口资源;sysctl -w net.ipv4.tcp_fastopen=3开启TCP快速打开,减少握手延迟;sysctl -w net.nf_conntrack_max=2097152增加连接跟踪表大小,支持高并发连接。  
 5. 缓存优化
  - Nginx静态资源缓存:通过
proxy_cache_path指令设置缓存路径(如/var/cache/nginx),配置levels=1:2(缓存目录层级)、keys_zone=my_cache:10m(共享内存区域)、max_size=1g(缓存最大大小),对静态资源(如图片、CSS、JS)设置expires 30d和add_header Cache-Control "public",提升静态资源访问速度。  - 浏览器缓存:在Nginx的
location块中添加add_header Etag $request_time和add_header Vary "Accept-Encoding",让浏览器缓存静态资源,减少重复请求。