优化CentOS上的LNMP性能可从硬件、软件、配置及监控等多方面入手,具体如下:
一、硬件优化
- 升级硬件:使用SSD硬盘提升I/O性能,增加内存减少磁盘交换,多核CPU提升并发处理能力。
- RAID配置:数据库服务器推荐RAID 10,平衡读写性能与冗余。
二、操作系统优化
- 内核参数调整:
- 增加文件描述符限制:
fs.file-max=1000000
。
- 优化TCP连接:
net.ipv4.tcp_tw_reuse=1
,net.core.somaxconn=65535
。
- 关闭不必要的服务:避免非必要进程占用资源。
三、Nginx优化
- 进程与连接数:
worker_processes
设为CPU核心数,worker_connections
设为1024+(根据内存调整)。
- 启用压缩与缓存:
gzip on
压缩传输数据,静态资源设置expires 30d
缓存。
- 静态文件处理:将静态资源(图片、CSS、JS)通过Nginx直接处理,减少后端压力。
- 负载均衡:多服务器场景下配置
upstream
模块分发请求。
四、MySQL优化
- 配置参数调整:
innodb_buffer_pool_size
设为服务器内存的50%-80%。
max_connections
根据并发量调整,避免过高。
- 索引与查询优化:
- 为高频查询字段创建索引,避免全表扫描。
- 使用
EXPLAIN
分析慢查询,优化SQL语句。
- 存储引擎选择:优先使用InnoDB,支持事务与行级锁。
五、PHP优化
- 启用OPcache:缓存编译后的字节码,减少重复解析。
- 调整进程管理:
pm = dynamic
动态调整进程数,pm.max_children
根据内存设置(如50-200)。
- 代码优化:避免循环中查询数据库,使用预处理语句,启用Gzip压缩输出。
六、缓存与架构优化
- 应用层缓存:使用Redis或Memcached缓存热点数据,减轻数据库压力。
- CDN加速:将静态资源部署到CDN,降低服务器负载。
七、监控与维护
- 工具监控:使用
top
、htop
、Nginx Amplify
等监控系统资源与性能。
- 日志分析:定期分析Nginx、MySQL慢查询日志,定位瓶颈。
- 定期维护:清理无用文件,优化数据库表结构,更新软件版本。
注意:优化前需在测试环境验证,避免直接修改生产环境配置。