我的网络主机仅提供 64 位操作系统,但是 64 位 Apache 网络服务器在外部负载不太大的情况下占用太多内存,偶尔会导致崩溃。
有没有什么方法可以配置 Apache 以使用更少的内存,或者您建议任何其他配置?
我的服务器有 256MB RAM,运行一个 wordpress 和另外两个带有静态页面的子域。
Webmin 显示的当前 Apache 进程配置为:-
最小进程数:10
最大进程数:15
初始启动进程数:8
每个进程的最大同时连接数:4000
更新:- 现在我看到 11 个 Apache 进程正在运行,每个进程在我的 256MB 系统上占用大约 360MB 的 RAM!
答案1
如果您真的认为这会产生影响,只需安装 32 位 Apache 二进制文件和模块并运行它即可。这是“让 64 位 Apache 表现得像 32 位”的唯一方法。不过这并不简单,而且维护起来很麻烦 —— 我不推荐这样做。
有很多方法可以让 Apache 使用更少的内存,但您在这方面正在取得渐进式的进步,如果您只有 256MB 的 RAM 可供使用,那么您将需要进行重大更改——我推荐使用 nginx。它不会生成数十个工作程序,并且它使用的 2-4 个工作程序每个只占用几 MB(目前在我面前的那个运行着大约十几个虚拟主机,占用了 2448kB 常驻内存)。
答案2
这与 32 位和 64 位无关。
为什么您认为在 32 位架构上运行时,15 个进程(每个 60MB)会使用少于 900MB 的内存?
我宁愿计算一些数字。
- 每个进程占用多少内存
- 您想要/需要运行多少个进程
- 使用 nginx 运行 fcgi 是一个选项吗(并不是说 apache 不好,只是更容易计算)?