优化Apache连接数需从配置文件、系统参数及监控三方面入手,具体如下:
- 调整核心配置参数
- MaxClients/MaxRequestWorkers:设置为服务器内存可支持的并发连接数(公式:
(总内存-系统开销)/单个进程内存占用),避免资源耗尽。 - StartServers/MinSpareServers/MaxSpareServers:控制子进程的启动数量和空闲进程范围,例如StartServers设为MaxClients的1/4。
- MaxConnectionsPerChild:限制单个子进程处理的请求数(如1000),防止内存泄漏。
- MaxClients/MaxRequestWorkers:设置为服务器内存可支持的并发连接数(公式:
- 启用并优化KeepAlive
- 开启KeepAlive:减少TCP连接重复建立的开销,设置
MaxKeepAliveRequests(如100)和KeepAliveTimeout(如5秒)。
- 开启KeepAlive:减少TCP连接重复建立的开销,设置
- 调整系统级限制
- 文件描述符限制:在
/etc/security/limits.conf中增加nofile值(如65536),确保Apache可打开足够连接。 - 内核参数优化:修改
/etc/sysctl.conf,设置net.core.somaxconn=65535、tcp_tw_reuse=1等参数,提升网络性能。
- 文件描述符限制:在
- 选择高效MPM模块
- 根据服务器类型选择:
prefork(适合低并发)、worker/event(适合高并发,基于线程)。
- 根据服务器类型选择:
- 启用缓存与监控
- 使用
mod_cache和mod_expires缓存静态内容,减少后端请求。 - 通过
top、htop、netstat等工具监控服务器负载,动态调整参数。
- 使用
修改后需重启Apache服务生效:sudo systemctl restart apache2(Ubuntu/Debian)或sudo systemctl restart httpd(CentOS)。