在Ubuntu上优化Apache并发处理可从以下方面入手:
选择高效MPM模块
mpm_event或mpm_worker(线程/事件驱动,适合高并发),禁用mpm_prefork(进程驱动,资源消耗大)。sudo a2dismod mpm_prefork # 禁用prefork
sudo a2enmod mpm_event # 启用event
sudo systemctl restart apache2
调整MPM参数
MaxRequestWorkers(或MaxClients):设置为服务器内存可承受的最大并发数(如MaxRequestWorkers 150)。ThreadsPerChild(worker/event):单进程线程数,建议25-64。StartServers/Min/MaxSpareThreads:控制空闲线程/进程数,避免频繁创建销毁。<IfModule mpm_event_module>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestWorkers 150
</IfModule>
优化系统资源限制
sudo sysctl -w fs.file-max=100000
echo "fs.file-max = 100000" >> /etc/sysctl.conf
/etc/sysctl.conf):net.ipv4.tcp_tw_reuse = 1 # 复用TIME_WAIT连接
net.core.somaxconn = 4096 # 监听队列长度
sudo sysctl -p
启用缓存与压缩
mod_cache和mod_expires,缓存静态内容(如CSS/JS)。sudo a2enmod cache mod_expires
mod_deflate,压缩响应数据。调整KeepAlive设置
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
监控与调优
htop、netstat或apachetop监控服务器负载,根据流量调整参数。ab(ApacheBench)模拟并发请求,验证优化效果。注意:修改配置后需重启Apache服务,且需根据服务器硬件(内存、CPU)和应用场景调整参数,避免过度配置导致资源浪费或服务不稳定。