首页主机资讯CentOS Apache性能调优技巧

CentOS Apache性能调优技巧

时间2025-12-12 00:50:04发布访客分类主机资讯浏览853
导读:CentOS 上 Apache 的性能调优可按模块与系统两层进行,以下给出可直接落地的要点与示例配置 一 核心模块与关键参数 启用持久连接 KeepAlive 减少 TCP 建连/拆连开销,适合包含大量小资源的页面。示例: KeepA...

CentOS 上 Apache 的性能调优可按模块与系统两层进行,以下给出可直接落地的要点与示例配置


一 核心模块与关键参数

  • 启用持久连接 KeepAlive
    减少 TCP 建连/拆连开销,适合包含大量小资源的页面。示例:
    KeepAlive On
    MaxKeepAliveRequests 100
    KeepAliveTimeout 5
    说明:高并发短连接场景可适当降低 Timeout;长连接资源紧张时可降低 MaxKeepAliveRequests。

  • 选择并调优 MPM(多处理模块)
    prefork(多进程、无线程,兼容性好,适合使用 mod_php 的场景)
    worker/event(多线程,高并发、低开销,适合反向代理/静态资源为主)
    示例(prefork,需结合内存与并发目标调整):
    StartServers 5
    MinSpareServers 5
    MaxSpareServers 10
    MaxRequestWorkers 150(关键:确保 MaxRequestWorkers × 单进程内存 ≤ 可用内存)
    MaxConnectionsPerChild 0(按需改为非零以回收泄漏内存)
    提示:event 在高并发短连接下通常更省资源,但需确认模块已启用且应用兼容。

  • 静态资源缓存与压缩
    • 缓存:启用 mod_expires 设置长期 Cache-Control
    • 压缩:启用 mod_deflate 减少传输体积
    示例:

    ExpiresActive On
    ExpiresByType text/css “access plus 30 days
    ExpiresByType image/jpeg “access plus 1 year
    ExpiresByType image/png “access plus 1 year
    ExpiresByType image/gif “access plus 1 year
    ExpiresByType application/javascript “access plus 30 days


    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript

    说明:对带强缓存策略的资源可配合 mod_cache/mod_disk_cache 做反向代理/本地磁盘缓存。

  • 启用 HTTP/2
    在支持 TLS 的前提下启用 mod_http2 提升多路复用与首包体验:
    LoadModule http2_module modules/mod_http2.so
    在对应 VirtualHost 的 SSLEngine on 后添加:Protocols h2 http/1.1
    注意:需确保 MPM 与 OpenSSL 版本兼容。


二 系统与内核参数

  • 文件描述符限制
    提升进程可打开文件数,避免 “Too many open files”:
    /etc/security/limits.conf

    • soft nofile 65535
    • hard nofile 65535
    • soft nproc 65535
    • hard nproc 65535
      说明:重启会话后生效;必要时在 systemd 服务单元中设置 LimitNOFILE。
  • TCP/IP 栈与内核网络参数
    缓解连接耗尽与半开连接问题(示例值,需结合业务与压测微调):
    net.ipv4.tcp_syncookies = 1
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_fin_timeout = 30
    net.ipv4.tcp_keepalive_time = 1200
    net.ipv4.ip_local_port_range = 10000 65000
    net.ipv4.tcp_max_syn_backlog = 8192
    net.core.somaxconn = 65535
    net.core.netdev_max_backlog = 30000
    fs.file-max = 6815744
    应用:sysctl -p 使配置生效。

  • 虚拟内存与 I/O 调度
    适度降低换页倾向、优化脏页刷写:
    vm.swappiness = 10
    vm.overcommit_memory = 1
    vm.dirty_ratio = 40
    vm.dirty_background_ratio = 10


三 监控与验证

  • 运行时状态与连接
    • 进程与连接:ps aux | grep httpd;ss -s 或 netstat -anp | grep :80
    • 启用 mod_status 的 ExtendedStatus On,访问 /server-status 观察 Busy/Idle workers、请求速率等。

  • 日志与压测
    • 日志级别:生产环境建议 LogLevel warn,减少 I/O 压力
    • 日志轮转:使用 logrotate/cronolog 控制日志体积与滚动
    • 压测与回归:ab、wrk、jmeter 验证并发、延迟与错误率,逐步调大 MPM 与 KeepAlive 参数。


四 安全与常见误区

  • 安全加固(不影响性能的必做项)
    • 隐藏版本信息:ServerTokens Prod;ServerSignature Off
    • 仅启用必要模块,禁用不需要的模块(减少攻击面与内存占用)
    • 防火墙仅开放 80/443,证书与协议按最佳实践配置。

  • 常见误区
    • 盲目增大 MaxRequestWorkers 导致内存耗尽;应以“单进程内存 × 并发数 ≤ 可用内存”为硬约束
    • 开启 KeepAlive 但 Timeout 过长,占用连接槽位;过短则失去复用收益
    • 生产环境关闭或减少访问日志细粒度记录,避免磁盘 I/O 成为瓶颈
    • 在 NAT/负载均衡 场景误用或依赖 tcp_tw_recycle,可能引发连接异常;优先使用 tcp_tw_reuse 并配合合理的超时设置。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: CentOS Apache性能调优技巧
本文地址: https://pptw.com/jishu/770007.html
如何在CentOS上启用SSL CentOS中Filebeat如何实现日志过滤

游客 回复需填写必要信息