以下是CentOS LAMP(Linux+Apache+MySQL+PHP)性能调优的核心秘籍,涵盖硬件、系统、服务及监控层面:
一、硬件与系统基础优化
- 硬件升级:采用SSD存储替代HDD,增加内存和CPU核心数,提升I/O和计算效率。
- 内核参数调优:
- 编辑
/etc/sysctl.conf,设置vm.swappiness=10减少交换,net.ipv4.tcp_tw_reuse=1优化TCP连接复用。 - 调整文件句柄限制:修改
/etc/security/limits.conf,增大nofile值以支持高并发。
- 编辑
二、Apache性能优化
- 配置多处理模块(MPM):
- 动态内容选
worker/event模式,静态内容选prefork,调整MaxRequestWorkers(建议设置为内存的10%-15%)。
- 动态内容选
- 启用缓存与压缩:
mod_cache+mod_disk_cache缓存静态内容,mod_deflate启用Gzip压缩减少传输体积。
- 连接优化:
- 启用
KeepAlive并设置MaxKeepAliveRequests=100、KeepAliveTimeout=5,平衡连接复用与资源占用。
- 启用
三、MySQL/MariaDB优化
- 内存与缓存配置:
innodb_buffer_pool_size设为服务器内存的50%-80%,innodb_log_file_size设为256M-512M。- 启用查询缓存:
query_cache_type=1,query_cache_size=64M(注意:MySQL 8.0+已移除查询缓存,需用应用层缓存替代)。
- 索引与查询优化:
- 为高频查询字段创建索引,避免全表扫描;使用
EXPLAIN分析慢查询。
- 为高频查询字段创建索引,避免全表扫描;使用
- 并发与日志:
- 调整
max_connections匹配服务器负载,关闭不必要的二进制日志(如非主从复制场景)。
- 调整
四、PHP性能优化
- 启用OPcache:
- 安装
php-opcache,在php.ini中设置opcache.enable=1,opcache.memory_consumption=128(根据内存调整)。
- 安装
- 代码级优化:
- 减少函数嵌套,使用高效的数据结构;避免
SELECT *,只查询必要字段。
- 减少函数嵌套,使用高效的数据结构;避免
- 配置优化:
- 调整
php.ini中memory_limit(如256M)、max_execution_time,关闭display_errors生产环境。
- 调整
五、缓存与架构优化
- 应用层缓存:
- 使用Memcached/Redis缓存数据库查询结果,减少重复查询。
- HTTP缓存:
- 通过
mod_expires设置静态文件缓存时间(如CSS/JS缓存1年),降低服务器负载。
- 通过
- 负载均衡(高并发场景):
- 使用Nginx反向代理+Keepalived实现负载均衡,分散Apache压力。
六、监控与持续调优
- 工具部署:
- 用
top/htop监控CPU/内存,vmstat/iostat分析系统负载,mysqltuner优化数据库参数。
- 用
- 日志分析:
- 定期查看Apache错误日志(
/var/log/httpd/error_log)和MySQL慢查询日志,定位性能瓶颈。
- 定期查看Apache错误日志(
注意事项
- 每次优化前备份配置文件,测试环境验证后再应用到生产环境。
- 避免过度优化,优先保证系统稳定性,根据实际业务负载动态调整参数。
参考来源:[1,2,3,4,6,7,8,9,10,11,12,13,14]