优化Apache:减少连接开销与提升静态内容处理效率
KeepAlive On、MaxKeepAliveRequests 100(单连接最大请求数)、KeepAliveTimeout 5(空闲连接超时时间),平衡连接复用与资源占用。MaxRequestWorkers(并发处理的最大请求数,如1GB内存可设为150)、MinSpareServers/MaxSpareServers(空闲进程池范围),避免进程频繁创建销毁的开销。mod_deflate压缩文本类响应(HTML、CSS、JS),配置LoadModule deflate_module modules/mod_deflate.so及AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript,减少传输数据量(通常压缩率可达50%-70%)。a2dismod命令禁用未使用的模块(如autoindex、status),减少内存占用和潜在安全风险。优化MySQL/MariaDB:提升数据库查询与处理效率
innodb_buffer_pool_size(InnoDB缓存池,建议设为物理内存的50%-70%,如8GB内存设为5-6GB)、key_buffer_size(MyISAM索引缓存,若使用InnoDB可设为64M-128M),提升数据读取速度。EXPLAIN分析慢查询,添加合适的索引(避免全表扫描),避免SELECT *(只查询所需字段),减少不必要的JOIN操作,拆分大查询为小查询。OPTIMIZE TABLE整理表碎片(尤其频繁更新的表),清理无用数据(如过期日志),重建索引(ALTER TABLE table_name ENGINE=InnoDB),保持数据库高效运行。query_cache_type=1、query_cache_size=64M,缓存SELECT查询结果(注意:MySQL 8.0已移除查询缓存,需用其他缓存方案替代)。优化PHP:提升脚本执行效率
OPcache缓存PHP脚本字节码,避免重复编译,配置zend_extension=opcache.so、opcache.enable=1、opcache.memory_consumption=128(缓存大小,根据内存调整)、opcache.max_accelerated_files=4000(缓存的文件数量),显著提升PHP执行速度(通常可提升30%-50%)。mod_php,通过FastCGI进程管理PHP,支持动态调整进程数量(pm.max_children根据内存设置,如1GB内存设为50-100),提高并发处理能力,减少资源浪费。Linux系统优化:提升底层资源利用率
ulimit -n 65535(临时生效),并在/etc/security/limits.conf中添加* soft nofile 65535、* hard nofile 65535(永久生效)。/etc/sysctl.conf,开启net.ipv4.tcp_tw_reuse=1(重用TIME_WAIT连接)、net.ipv4.tcp_fin_timeout=30(TIME_WAIT超时时间,减少半连接占用),调整net.core.somaxconn=1024(监听队列长度),提升网络吞吐量。XFS(支持高并发、大文件)或EXT4(稳定、兼容性好)文件系统,挂载时添加noatime选项(减少文件访问时间更新),降低磁盘I/O负载。缓存技术:减少重复计算与数据库访问
Memcached或Redis缓存热点数据(如用户会话、商品信息、查询结果),配置合理的过期时间(如会话缓存设为30分钟,商品信息设为1小时),减少对数据库的直接访问(缓存命中率可达80%以上)。mod_cache模块缓存动态生成的页面(如首页、文章页),配置CacheQuickHandler off、CacheLock on,设置CacheRoot(缓存目录)和CacheMaxFileSize(最大缓存文件大小),降低服务器负载。MySQL查询缓存(5.7及以下)或Redis缓存查询结果,避免重复执行相同SQL。负载均衡与高可用:分散请求压力
Nginx作为前端反向代理,处理静态内容(图片、CSS、JS),将动态请求(PHP)转发给Apache,利用Nginx的高并发特性(事件驱动模型)减轻Apache压力(通常Nginx可处理10万+并发连接)。HAProxy或LVS实现多台LAMP服务器的负载均衡,将请求分发到多台服务器,提升整体处理能力(如3台服务器可承受3倍流量),避免单点故障。监控与持续优化:及时发现问题并调整
top(查看CPU、内存占用)、htop(更直观的资源监控)、iostat(查看磁盘I/O)、vmstat(查看系统整体状态)、netstat(查看网络连接)等工具,实时监控服务器性能,定位瓶颈(如CPU过高可能是PHP脚本问题,内存不足可能是缓存过多)。access.log(查看热门页面、请求量)、error.log(查看错误信息),MySQL的slow_query.log(查看慢查询),使用AWK、SED等工具提取关键指标(如平均响应时间、错误率),针对性优化。Apache JMeter或LoadRunner模拟高并发场景(如1000并发用户),测试服务器在不同负载下的响应时间、吞吐量,评估优化效果(如优化后响应时间从2秒缩短至0.5秒),并根据测试结果调整配置(如增加MaxClients参数)。