优化 Apache2 内存使用的实用方案
一 基线评估与容量规划
二 MPM 选择与核心参数
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 150 # 依据“可用内存 / 单进程M”计算后再下调20%-30%
MaxConnectionsPerChild 10000 # 非零可周期性回收,缓解内存碎片/泄漏
</IfModule>
<IfModule mpm_event_module>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxRequestWorkers 150 # 约等于 (可用内存 / 单线程M) * 线程/进程
MaxConnectionsPerChild 10000
</IfModule>
三 模块与内容交付优化
sync && echo 3 > /proc/sys/vm/drop_caches 释放 PageCache/dentry/inode,避免 IO 抖动。四 系统与内核参数调优
systemctl restart apache2(或 httpd)重启服务,并在低峰期进行。五 上线验证与维护