解决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]