yut*_*mmo 4 ubuntu vps memory apache-2.2
我的 VPS ubuntu 服务器上的内存经常不足。我希望有一种方法可以在 apache2 开始耗尽内存时简单地重新启动它,因为这似乎可以解决问题。还是我懒得解决问题?我的服务器内存有限...
好的,更多信息:
我正在运行 apache2 prefork,这是我的内存设置(我一直在调整它们......):
StartServers 3
MinSpareServers 1
MaxSpareServers 5
MaxClients 150
MaxRequestsPerChild 1000
Run Code Online (Sandbox Code Playgroud)
VPS 有 1 GB 内存,运行 ubuntu 11.04 32 位。
至于脚本,我有一个包含 5 个博客的 wordpress 网络、一个 AskBot(一个 python/django stackexchange 克隆)的安装,以及一个没有真正使用过的 MediaWiki 的安装。还有一个自制的 mp3 脚本,它访问 getid3 库以显示有关播客列表的信息,它似乎抛出了一些 php 错误,不确定这是否是罪魁祸首......
Apache 不应耗尽内存,除非您在 apache 下运行的应用程序中存在内存泄漏,或者某个请求对内存产生了巨大的需求。我会首先调查为什么我的内存不足,而不是像您要求的那样实施蛮力解决方案。
如上所述,实现一个基本的 cron 作业脚本应该非常简单,它只是在 apache 进程上调用“ps”,找出它们消耗了多少内存,并在需要时重新启动。每分钟运行一次就足够了。
但同样 - 这不是一个好方法。
莫尼特可以做到这一点。
您可以使用配置行,例如:
check process apache
with pidfile "/var/lock/apache/httpd.pid"
start program = "/etc/init.d/httpd start" with timeout 60 seconds
stop program = "/etc/init.d/httpd stop"
if 2 restarts within 3 cycles then timeout
if totalmem > 100 Mb for 5 cycles then restart
if children > 255 for 5 cycles then stop
if cpu usage > 95% for 3 cycles then restart
if failed port 80 protocol http then restart
group server
depends on httpd.conf, httpd.bin
Run Code Online (Sandbox Code Playgroud)
这也可以发挥前面提到的 ulimit 选项的作用。
重新启动服务是一个创可贴。相反,您应该尝试找出它泄漏内存的原因。
| 归档时间: |
|
| 查看次数: |
2934 次 |
| 最近记录: |