1. 调整MPM(多处理模块)设置
MPM是Apache处理并发请求的核心模块,CentOS默认使用prefork(多进程模型,适合兼容性场景但内存占用高),高并发环境下推荐切换至event或worker(多线程/混合模型,更节省内存)。需修改/etc/httpd/conf.modules.d/00-mpm.conf(或对应模块文件),例如event MPM的典型配置:
StartServers 2 # 启动时的进程数
MinSpareThreads 25 # 最小空闲线程数
MaxSpareThreads 75 # 最大空闲线程数
ThreadLimit 64 # 单个进程的最大线程数
ThreadsPerChild 25 # 每个子进程创建的线程数
MaxRequestWorkers 256 # 最大并发请求数(根据内存调整)
MaxConnectionsPerChild 1000 # 每个子进程处理的最大请求数(防内存泄漏)
修改后需重启Apache生效。
2. 优化KeepAlive设置
KeepAlive通过复用TCP连接减少建立/关闭的开销,但设置不当会增加内存占用。在httpd.conf中调整:
KeepAlive On # 启用KeepAlive
MaxKeepAliveRequests 100 # 单个连接最大请求数(避免单个连接占用过久)
KeepAliveTimeout 5 # 连接保持时间(秒,建议5-10秒)
过高的MaxKeepAliveRequests或KeepAliveTimeout会导致连接堆积,需根据并发量平衡。
3. 启用静态文件缓存
通过mod_expires模块为静态资源(CSS、JS、图片)设置缓存时间,减少重复请求。在配置文件中添加:
ExpiresActive On
ExpiresByType text/css "access plus 30 days"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType application/javascript "access plus 30 days"
这会告知浏览器缓存静态资源,降低服务器负载。
4. 使用压缩技术减小传输量
通过mod_deflate模块压缩文本类内容(HTML、CSS、JS),减少网络传输时间。在配置文件中添加:
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript application/json
注意:避免压缩图片(如JPEG、PNG),因其本身已压缩,压缩反而会增加CPU开销。
5. 调整系统内核参数
修改/etc/sysctl.conf优化TCP连接和内存管理,提升并发处理能力:
# 增加TCP连接队列长度
net.core.somaxconn = 65535
# 允许重用TIME_WAIT状态的连接
net.ipv4.tcp_tw_reuse = 1
# 减少TIME_WAIT状态的超时时间(秒)
net.ipv4.tcp_fin_timeout = 30
# 增加本地端口范围
net.ipv4.ip_local_port_range = 1024 65535
# 增加SYN队列长度
net.ipv4.tcp_max_syn_backlog = 65535
修改后执行sysctl -p使配置生效。
6. 限制模块加载
禁用不必要的模块(如mod_status、mod_info),减少内存占用。通过httpd -M命令查看已加载模块,编辑/etc/httpd/conf.modules.d/*.conf禁用不需要的模块(注释对应LoadModule行),例如:
# LoadModule status_module modules/mod_status.so
# LoadModule info_module modules/mod_info.so
仅保留必需模块(如mod_rewrite、mod_ssl)。
7. 优化日志记录
降低日志详细程度,减少磁盘I/O。修改httpd.conf中的LogLevel和CustomLog:
LogLevel warn # 设置日志级别为warn(仅记录警告和错误)
CustomLog logs/access_log combined env=!dontlog # 可选:排除特定请求(如静态资源)
对于高流量站点,可将日志写入单独的磁盘分区,避免影响主存储性能。
8. 使用缓存代理
通过mod_cache和mod_disk_cache模块缓存动态内容(如PHP页面),减少后端处理次数。在配置文件中添加:
LoadModule cache_module modules/mod_cache.so
LoadModule cache_disk_module modules/mod_cache_disk.so
CacheQuickHandler off
CacheLock on
CacheLockPath /tmp/mod_cache-lock
CacheLockMaxAge 5
CacheIgnoreHeaders Set-Cookie
CacheRoot /var/cache/apache2/mod_cache_disk
CacheEnable disk /
CacheDirLevels 2
CacheDirLength 1
需创建缓存目录并设置权限:mkdir -p /var/cache/apache2/mod_cache_disk && chown apache:apache /var/cache/apache2/mod_cache_disk。
9. 监控与持续调优
使用工具(如top、htop、vmstat、ab)监控Apache性能:
top:查看CPU、内存占用;ab(Apache Bench):测试并发性能(示例:ab -n 1000 -c 100 http://example.com/);vmstat 1:监控系统级资源使用(如上下文切换、内存交换)。
根据监控结果调整MPM参数、缓存策略等。
以上就是关于“CentOS上Apache性能调优有哪些技巧”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm