当前负载是警告 – 为什么?

在一个具有1个CPU核心和2GB RAM的VPS上,我为一个低stream量网站运行一个mysql + apache2。 有时候机器变慢或停止通过apache或mysql传递。

这就是为什么我build立了nagios运行5-10天后发送警报,如“服务警报:本地主机/当前负载是警告”。 然后我可以通过SSHlogin,并检查RAM是否足够,500MB +可用,只有60MB交换使用。

由于系统再次减速,我检查了系统日志,发现了很多这样的条目:

Jun 30 23:46:31 cl22 postfix / error [2190]:46D8974323:to =,relay = none,delay = 294806,delays = 294803/3/0/0,dsn = 4.4.3,status = deferred暂停:主机或域名未find名称服务错误为name = zombine.com type = MX:主机未find,请重试)Jun 30 23:46:31 cl22 postfix / error [2193]:49CB374123:to =,relay = none,delay = 154189,delay = 154185 / 3.1 / 0/0,dsn = 4.4.3,status = deferred(临时传递暂停:未find主机名或域名,name = zombine.com的名称服务错误type = MX :Host not found,try again)Jun 30 23:46:31 cl22 postfix / error [2153]:4E2C874250:to =,relay = none,delay = 433708,delay = 433704 / 3.1 / 0/0,dsn = 4.4。 3,status = deferred(交付暂时中止:未find主机或域名。name = zombine.com的名称服务错误type = MX:Host not found,再试一次)Jun 30 23:46:31 cl22 postfix / error [2176 ]:480D874180:to =,relay = none,delay = 174308,delay = 174304 / 3.1 / 0/0,dsn = 4.4.3,status = deferred(暂时暂停发送:主机或d 未find域名。 Name = zombine.com的名称服务错误type = MX:找不到主机,请重试)

我怎样才能找出哪个进程正在消耗所有的负载? 对于1核VPS来说真的有很多过载:警告 – 平均负载:3.06,5.79,3.42

mysql是好的,apache2似乎没问题。 后缀可能不是? 还有什么我没有确定呢?

请让我知道如何找出不好的过程,暂时renice或un-priorize后缀等,以确保apache2和mysql保持健康。 这两个过程对我来说很重要。 传出的电子邮件也是,因为它正在向客户端发送消息。

您看到的错误不是与电子邮件地址相关的错误; 这是一个DNS问题。 如果发送电子邮件,请确保您可以从该服务器上看到您的域zombine.com的MXlogging:

dig in mx zombine.com 

Postfix将继续试图发送这些电子邮件反复数天,以防像这样的“可恢复”失败。

还有一件事是检查你是否有磁盘加载问题(检查硬件中断CPU使用率,“嗨”,在top )。 如果是这个问题,你可以安装并运行iotop来查看所有的负载。

您可以configuration这些参数(以天为单位)来调整postfix尝试传递无法投递的邮件的时间:

 maximal_queue_lifetime (normal messages) bounce_queue_lifetime (bounce messages) 

此外,请确保以下设置是正确的,以确保您没有运行开放中继(这可能是人们使用您的服务器发送垃圾邮件时不需要的SMTPstream量的来源):

 mynetworks (in this case probably 127.0.0.1/32) smtpd_client_restrictions (probably permit_mynetworks, reject_unauth_destination) 

然后,清空您的邮件队列:

 postsuper -d ALL 

由于安全原因,这是区分大小写的。 你应该发现postqueue -p显示一个空的队列。

根据你所显示的日志,域名后缀正在使用 – zombine.com – 不存在于你的DNS或它没有MXlogging,这就是为什么后缀错误。 也许你应该尝试的是每5分钟运行一次cronjob,检查是否有新的错误已经添加到系统日志,然后运行顶部并将结果通过电子邮件发回给您。 从那里你可以找出哪个进程消耗的内存最多。