提升CentOS LNMP响应速度可从硬件、软件、配置及监控层面优化,具体如下:
ulimit -n 65535 # 临时生效
# 永久生效需修改/etc/security/limits.conf
net.core.somaxconn=65535
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_max_syn_backlog=65535
vm.swappiness=10 # 减少内存交换
执行sysctl -p
生效。worker_processes auto; # 自动匹配CPU核心数
worker_connections 10240; # 单进程最大连接数
use epoll; # 启用高效事件模型
gzip on; gzip_types text/css application/javascript; # 压缩文本类内容
location ~* \.(jpg|css|js)$ {
expires 30d; add_header Cache-Control "public"; # 静态资源缓存30天
}
listen 443 ssl http2; # 启用HTTP/2
keepalive_timeout 65; keepalive_requests 100; # 保持长连接
参考来源:opcache.enable=1
opcache.memory_consumption=128 # 根据内存调整(建议128-256M)
opcache.max_accelerated_files=4000 # 缓存文件数
pm = dynamic
pm.max_children = 50 # 根据内存调整(建议50-100)
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_requests = 500 # 防止内存泄漏
参考来源:innodb_buffer_pool_size=1G # 建议设置为物理内存的50%-70%
innodb_log_file_size=256M # 提升写入性能
EXPLAIN
分析慢查询,优化SQL语句。OPTIMIZE TABLE table_name
。upstream backend {
server 192.168.1.1:80;
server 192.168.1.2:80;
least_conn; # 动态分配请求
}
top
、htop
、vmstat
。awk
或GoAccess
统计访问瓶颈。slow_query_log=1
,定期优化低效SQL。ab
或wrk
模拟高并发请求,验证优化效果:ab -n 10000 -c 1000 http://your-server.com/
注意事项:优化前需备份数据,测试环境验证配置,逐步调整避免影响服务稳定性。
参考来源: