Apache和monit继续崩溃

我在Ubuntu 10.10上使用VPS来为我的私人网站提供服务,Apache 2.2.16一直在崩溃。 服务器负载很轻,每天约有300次访问。

为了解决这个问题,我设置了monit来定期检查apache,但是这个问题一直在崩溃。

我检查了我的资源消耗,我远低于临界水平:

控制面板视图的资源

我检查了/etc/apache2/errors.log和/ var / log / syslog,但找不到错误的踪迹。 我几乎在我的智慧结束。

我怎样才能debugging这个问题? 我正在使用一个相当便宜的VPS。 他们能成为片状的原因吗?

你正在使用一个Virtuozzo实例,它不是一个真正的VPS,而是一个容器,基本上是一个内核强制的chroot。 从我处理它的事情看,它的OOM经理非常狡猾。 由于其工作方式,同一个硬件节点上的另一个容器可能会占用内存,但是由于在导致问题的进程之后启动了进程,因此您的进程将被终止。

不幸的是,你只能看到主机服务器上的OOM是什么,所以你必须检查你的提供商。 他们很可能超出了服务器上的内存,而不是他们应该做的。

引用Linux内存pipe理器页面:

因此,理想的清算人选是一个最近开始的非特权过程,与子女一起使用大量的记忆,已经很好,并没有原始的I / O。 像nohup'd并行内核构build(这不是一个不错的select,因为所有的结果都保存到磁盘和一个'make'终止时丢失很less的工作)。

我的理论是,Virtuozzo没有触及主机内核中的OOMpipe理器,使其意识到有虚拟化的进程在运行,所以它没有意识到它正在“VPS”中杀死特权进程。 但是,这只是猜测,因为我没有能够与Parallels(这是负责Virtuozzo的人员)进行检查。