ubuntu

如何在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
看了该问题的人还看了