如何诊断过程在100%的CPU不能壳?

假设一个stream行的VPS提供商托pipe一个单独的网站与Nginx,Apache和WordPress / PHP的Ubuntu 14.04服务器设置,启动服务器后,它工作很好一段时间。 几天之后,VPS提供商将服务器显示为100%的CPU利用率,SSH访问不再可以连接(超时),网站变得无法访问。 在服务器达到100%的CPU利用率之前,可以通过SSH访问服务器而不会出现问题。 服务器上几乎没有任何负载会导致CPU使用 – 通常CPU使用的范围小于3%。

我怎样才能诊断哪个进程导致CPU使用突然飙升而不能进入shell? 目前,当发生这种情况时,服务器重新启动,然后再运行几天。 当然,虽然ClamAV没有发现任何潜在的病毒,但怀疑有病毒或其他恶意软件

更大的问题在于设置一种方法来首先找出机器发生了什么事情。 在这些locking期间,内存/networking是否出现高峰? 你可以问你的VPS服务提供商在你的节点上是否有一个嘈杂的邻居? 您在访问日志中看到了什么?Google是否在扫描您并导致大量stream量? 如果你在一个盒子上运行所有的东西,诊断可能会比较困难,但答案应该在那里。

当你被locking时,你有几个通用选项:

  1. IPMI接口由VPS提供商提供。 这通常由大多数小规模提供商(又名Google / AWS)提供。 它通常取决于底层的基础架构,但它通常是对机器shell的OOB SSH访问,或者由Java Applet提供的真正的iKVM显示器。 查看提供商仪表板中的机器详情。

  2. 你有没有在机器上的NewRelic或FileBeat – > ELK等工具? 即使在被locking的情况下,他们也经常会打电话回家。