解决Ubuntu Apache内存占用过高可从以下方面入手:
排查内存占用情况
top
/htop
命令查看占用内存高的进程,确认是否为Apache相关进程。Valgrind
等工具检测代码或模块中的内存释放问题。优化Apache配置
MaxRequestWorkers
(控制并发进程数)和MaxConnectionsPerChild
(限制单个进程处理请求数,避免内存泄漏)。KeepAlive
并合理设置KeepAliveTimeout
(减少连接开销,建议5-10秒)。a2dismod
命令移除不用的模块(如mod_ssl
若无需HTTPS)。mod_cache
/mod_disk_cache
缓存静态内容,mod_deflate
压缩传输数据。系统级优化
vm.swappiness
值(减少交换空间使用倾向,建议10-30)。fs.file-max
等参数提升文件句柄利用率。sudo sync && echo 3 > /proc/sys/vm/drop_caches
释放内存缓存。硬件与监控
apachetop
、netdata
或Prometheus
实时监控内存使用,及时发现异常。操作前建议:先在测试环境验证配置修改,避免影响生产环境稳定性。
参考来源:[1,2,3,4,5,6,7,9,10,11]