我有一台服务器在 64m 初始和最大堆上运行 3 个 WordPress 实例、MySql、Apache 和 play framework 2.0。如果我将运行 play 的 JVM 的最大堆增加 16m,我会看到 128m 的交换空间稳步填满,直到 JVM 死掉。
我注意到只有当我在 wordpress 网站上工作时,JVM 才会死掉。我假设这是因为 JVM 当时没有请求内存,所以被收集了。
我注意到,当我重新启动 Apache 时,我回收了大约一半的交换空间和 RAM。那么有什么方法可以配置 apache 以消耗更少的内存吗?还有什么可能导致交换空间在 JVM 的最大堆大小中仅增加 16m 就变得如此严重?
服务器运行: Ubuntu 12.04
内存: 408m
交换: 128m
阿帕奇模组:
- 别名.conf
- 别名.load
- auth_basic.load
- authn_file.load
- authz_default.load
- authz_groupfile.load
- authz_host.load
- authz_user.load
- 自动索引配置文件
- 自动索引.load
- cgi.load
- deflate.conf文件
- 放气.load
- 目录配置文件
- 目录加载
- 环境负载
- mime配置文件
- mime.load
- 协商文件
- 协商.load
- php5.conf
- php5.load
- proxy_ajp.load
- proxy_balancer.conf
- proxy_balancer.load
- 代理配置文件
- proxy_connect.load
- proxy_ftp 配置文件
- proxy_ftp.load
- proxy_http.load
- 代理.load
- 请求超时配置文件
- 请求超时.load
- 重写.load
- setenvif 配置文件
- setenvif.load
- 状态文件
- 状态.load
128m 绝对是运行 3 个 WordPress 站点、MySQL 和 java 应用程序所需的绝对最低范围。
为了降低您的网络服务器内存占用,我建议您从 Apache 切换到nginx + php5-fpm。两者都可以通过 Ubuntu 存储库获得。