ubuntu

ubuntu apache如何提高并发量

小樊
37
2025-08-24 06:52:48
栏目: 智能运维

在Ubuntu上提高Apache并发量可从配置优化、模块选择、系统调优等方面入手,具体如下:

  1. 选择高效MPM模块
    • 动态内容优先使用mpm_workermpm_event模块(线程模型,资源占用更少),需禁用mpm_prefork
      sudo a2dismod mpm_prefork && sudo a2enmod mpm_worker/event && sudo systemctl restart apache2  
      
  2. 调整核心并发参数
    • MaxRequestWorkers(或MaxClients):控制最大并发请求数,需根据服务器内存调整(建议每进程/线程约占用20-30MB内存)。
    • StartServers/Min/MaxSpareServers:设置进程池的空闲进程数,避免频繁创建/销毁进程。
    • KeepAlive:启用长连接减少TCP握手开销,设置KeepAliveTimeout 5(秒)避免连接占用过久。
  3. 启用缓存与压缩
    • 缓存静态内容:使用mod_cachemod_expires模块,减少后端请求压力。
    • 启用Gzip压缩:通过mod_deflate压缩响应数据,降低传输时间。
  4. 优化系统参数
    • 调整文件描述符限制:编辑/etc/security/limits.conf,设置nofile为65535或更高。
    • 优化TCP参数:修改/etc/sysctl.conf,增加net.core.somaxconnnet.ipv4.tcp_max_syn_backlog以提升连接队列长度。
  5. 负载均衡与反向代理
    • 单机性能不足时,使用Nginx作为反向代理或负载均衡器,分发请求到多台Apache服务器。
  6. 监控与调优
    • 使用htopapachetop等工具监控服务器负载,分析日志定位瓶颈。

示例配置(event MPM)

<IfModule mpm_event_module>  
    StartServers 2  
    MinSpareThreads 25  
    MaxSpareThreads 75  
    ThreadLimit 64  
    ThreadsPerChild 25  
    MaxRequestWorkers 200  
    MaxConnectionsPerChild 0  
</IfModule>  

修改后需重启Apache生效:sudo systemctl restart apache2

0
看了该问题的人还看了