Ubuntu Apache怎样进行性能调优
导读:Ubuntu 上 Apache 性能调优实操指南 一 基线检查与模块准备 更新系统与软件包,确保获得最新的性能修复与安全补丁:sudo apt update && sudo apt full-upgrade。 了解配置结构...
Ubuntu 上 Apache 性能调优实操指南
一 基线检查与模块准备
- 更新系统与软件包,确保获得最新的性能修复与安全补丁:sudo apt update & & sudo apt full-upgrade。
- 了解配置结构:全局配置在 /etc/apache2/apache2.conf,模块通过 /etc/apache2/mods-enabled/ 管理,站点在 /etc/apache2/sites-available/ 与 sites-enabled/。
- 启用必要模块:sudo a2enmod deflate expires cache cache_disk;如需状态页 sudo a2enmod status;如需反向代理/负载均衡 sudo a2enmod proxy proxy_balancer。
- 禁用不需要的模块:sudo a2dismod module_name,减少攻击面与资源占用。
- 备份当前配置:sudo cp -a /etc/apache2 /etc/apache2.bak-$(date +%F)。
二 选择并配置合适的 MPM
- 选择建议:
- prefork:兼容性好,适合非线程安全环境(如部分 PHP 模块),但内存占用较高。
- worker/event:更高并发,资源利用更优;event 基于事件驱动,适合高并发短连接/长空闲连接场景。
- 切换 MPM(以 event 为例):sudo a2dismod mpm_prefork & & sudo a2enmod mpm_event & & sudo systemctl restart apache2。
- 关键并发参数估算与示例(示例值需结合实际压测微调):
- 估算公式:MaxRequestWorkers ≈ 可用内存 / 单进程/线程平均内存占用。
- prefork 示例(保守起步,适合低内存或传统 PHP):
StartServers 5
MinSpareServers 5
MaxSpareServers 10
ServerLimit 128
MaxRequestWorkers 128
MaxConnectionsPerChild 4000
- worker/event 示例(并发更高,注意线程安全与后端支持):
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxRequestWorkers 150
MaxConnectionsPerChild 0
注:worker 与 event 的字段名基本一致,event 在连接管理上更高效。
三 网络与内容交付优化
- 启用持久连接,减少 TCP 握手与慢启动:
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5 - 启用压缩,降低传输体积:
sudo a2enmod deflate
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript - 设置浏览器缓存,减少重复请求:
sudo a2enmod expires
ExpiresActive On
ExpiresByType text/css “access plus 1 month”
ExpiresByType application/javascript “access plus 1 month”
ExpiresByType image/png “access plus 1 year”
- 启用页面缓存(磁盘缓存示例):
sudo a2enmod cache cache_disk
CacheEnable disk /
CacheRoot “/var/cache/apache2”
CacheDirLevels 2
CacheDirLength 1 - 启用 HTTP/2(需启用 SSL):在 /etc/apache2/ports.conf 中:Listen 443 ssl http2;并在虚拟主机中配置 SSLEngine on 与证书路径。
四 连接、超时与日志策略
- 关闭 DNS 反向解析,降低请求延迟:HostnameLookups Off。
- 合理超时设置:Timeout 5–15(静态资源可更低,动态接口适当放宽)。
- 限制并发与保护后端:
- 若使用反向代理,设置 ProxyTimeout、合理连接池与超时;
- 启用 mod_status 的 ExtendedStatus On 并结合防火墙仅内网访问 /server-status,用于观察 BusyWorkers/IdleWorkers。
- 日志与轮转:
- 生产环境避免使用过高的日志级别,减少 I/O;
- 使用 logrotate 管理日志文件,防止磁盘被撑满。
五 监控验证与持续迭代
- 系统监控:使用 top/htop/dstat/sar 观察 CPU、内存、I/O、网络 与负载变化。
- 应用观测:启用 mod_status 查看当前连接与工作进程状态,配合压测工具(如 ab、wrk、JMeter)验证调优效果。
- 变更流程:每次只调整少量参数 → 重启或热重载 → 压测与监控 → 记录基线 → 继续迭代。
- 架构级优化:当单机并发与延迟到达瓶颈时,考虑 反向代理/负载均衡(mod_proxy_balancer) 或引入 CDN 分担静态资源与边缘计算。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Apache怎样进行性能调优
本文地址: https://pptw.com/jishu/755244.html
