温馨提示×

如何在Ubuntu上优化Apache并发处理

小樊
42
2025-09-01 06:18:34
栏目: 智能运维

在Ubuntu上优化Apache并发处理可从以下方面入手:

  1. 选择高效MPM模块

    • 推荐使用mpm_eventmpm_worker(线程/事件驱动,适合高并发),禁用mpm_prefork(进程驱动,资源消耗大)。
    • 通过命令启用模块:
      sudo a2dismod mpm_prefork # 禁用prefork  sudo a2enmod mpm_event # 启用event  sudo systemctl restart apache2 
  2. 调整MPM参数

    • 核心参数
      • MaxRequestWorkers(或MaxClients):设置为服务器内存可承受的最大并发数(如MaxRequestWorkers 150)。
      • ThreadsPerChild(worker/event):单进程线程数,建议25-64。
      • StartServers/Min/MaxSpareThreads:控制空闲线程/进程数,避免频繁创建销毁。
    • 示例(event模块配置):
      <IfModule mpm_event_module> StartServers 2 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestWorkers 150 </IfModule> 
  3. 优化系统资源限制

    • 增加文件描述符限制:
      sudo sysctl -w fs.file-max=100000 echo "fs.file-max = 100000" >> /etc/sysctl.conf 
    • 调整内核TCP参数(/etc/sysctl.conf):
      net.ipv4.tcp_tw_reuse = 1 # 复用TIME_WAIT连接  net.core.somaxconn = 4096 # 监听队列长度  sudo sysctl -p 
  4. 启用缓存与压缩

    • 缓存模块:启用mod_cachemod_expires,缓存静态内容(如CSS/JS)。
      sudo a2enmod cache mod_expires 
    • 压缩模块:启用mod_deflate,压缩响应数据。
  5. 调整KeepAlive设置

    • 启用长连接减少握手开销:
      KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 5 
  6. 监控与调优

    • 使用htopnetstatapachetop监控服务器负载,根据流量调整参数。
    • 压力测试:用ab(ApacheBench)模拟并发请求,验证优化效果。

注意:修改配置后需重启Apache服务,且需根据服务器硬件(内存、CPU)和应用场景调整参数,避免过度配置导致资源浪费或服务不稳定。

0