CentOS LAMP服务器性能调优指南
LAMP(Linux、Apache、MySQL、PHP)是经典的开源Web架构,针对CentOS系统的调优需从硬件基础、系统内核、服务配置、缓存策略、数据库优化、监控维护六大维度系统推进,以下是具体方案:
硬件是性能的底层支撑,需优先满足核心资源需求:
通过调整内核参数提升系统资源利用率:
/etc/sysctl.conf文件,添加/修改以下关键参数:
net.ipv4.tcp_tw_reuse = 1:复用TIME_WAIT状态的TCP连接,减少连接建立开销;net.ipv4.tcp_max_orphans = 32768:限制孤儿连接数量,避免内存耗尽;vm.swappiness = 10:降低系统使用交换分区(Swap)的倾向(值越小越优先用物理内存);vm.dirty_background_ratio = 5、vm.dirty_ratio = 10:控制脏页(未写入磁盘的缓存数据)的刷新阈值,平衡内存与磁盘I/O。sudo sysctl -p命令。sudo yum update -y,确保内核、Apache、MySQL、PHP等组件为最新稳定版(修复安全漏洞并提升性能)。systemctl stop firewalld && systemctl disable firewalld关闭默认防火墙(若用iptables或第三方防火墙),停止无用的服务(如Postfix、Avahi-daemon),减少系统资源占用。-T largefile选项优化大文件处理;定期用fsck检查并修复文件系统错误。Apache是LAMP的核心Web组件,需调整工作模式与参数:
/etc/httpd/conf/httpd.conf,修改ServerLimit(最大进程数,如200)、MaxRequestWorkers(并发处理数,如150)、KeepAliveTimeout(保持连接超时时间,如5秒)、MaxKeepAliveRequests(单连接最大请求数,如100)等参数,平衡并发性能与内存消耗。mod_cache缓存静态内容(如图片、CSS、JS),减少重复请求对后端的压力;配置mod_deflate压缩响应内容(如gzip),降低传输体积(建议压缩级别设为6,兼顾速度与压缩比)。数据库是性能瓶颈的常见来源,需从配置、索引、查询三方面优化:
/etc/my.cnf(或/etc/mysql/mysql.conf.d/mysqld.cnf),重点设置:
innodb_buffer_pool_size:InnoDB缓冲池大小(建议设为物理内存的50%-70%,如8GB内存设为4GB-6GB),用于缓存表数据和索引,减少磁盘I/O;query_cache_size:查询缓存大小(如64MB-128MB,适用于读多写少的场景,但高并发写场景建议关闭);max_connections:最大连接数(如100-200,避免过多连接导致内存耗尽),配合thread_cache_size(线程缓存数,如16)减少线程创建开销。WHERE、JOIN、ORDER BY字段创建索引(如ALTER TABLE users ADD INDEX idx_username (username));用EXPLAIN分析慢查询(如EXPLAIN SELECT * FROM orders WHERE user_id = 1),优化SQL语句(避免SELECT *、减少子查询、用JOIN代替子查询);定期执行OPTIMIZE TABLE(如OPTIMIZE TABLE orders)整理表碎片,提升查询速度。PHP是动态内容的处理核心,需通过缓存与模块优化提升执行效率:
OPcache(PHP内置扩展),编辑php.ini(如/etc/php.ini),添加opcache.enable=1、opcache.memory_consumption=128(缓存内存大小,如128MB)、opcache.max_accelerated_files=10000(缓存的脚本文件数)等参数,避免重复编译PHP脚本(可提升20%-30%的执行速度)。php.ini,注释掉未使用的模块(如extension=ldap.so、extension=imap.so),减少内存占用。str_replace代替preg_replace,除非需要正则表达式)。缓存是提升响应速度的关键手段,需结合应用层缓存与页面缓存:
Memcached(内存键值存储)或Redis(支持数据结构更丰富),配置PHP应用(如WordPress、Drupal)连接缓存服务器,缓存数据库查询结果(如商品分类、用户信息),减少数据库负载;例如,用memcached扩展连接Redis:$memcached = new Memcached(); $memcached->addServer('127.0.0.1', 11211);。Varnish(HTTP加速器)缓存动态页面(如首页、文章页),将动态内容转换为静态内容输出(缓存命中率可达90%以上);配置Varnish监听80端口,将请求转发给Apache(监听8080端口),提升页面加载速度。性能调优是持续过程,需通过监控工具及时发现问题:
top(查看CPU、内存使用率)、vmstat(查看系统整体性能,如进程、内存、I/O)、iostat(查看磁盘I/O情况,如读写速率、等待时间)、netstat(查看网络连接状态,如TCP连接数)定期检查系统状态。Zabbix(企业级监控平台)、Prometheus+Grafana(可视化监控),监控服务器的各项指标(如CPU利用率、内存使用率、MySQL查询响应时间、Apache并发数),设置告警阈值(如CPU利用率超过80%时发送邮件告警),及时处理性能瓶颈。mysqldump -u root -p dbname > backup.sql,配置文件备份用cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak);innodb_buffer_pool_size的值)。