自过去 24 小时以来,我们的 CPU 使用率显示为 99%,由于这种使用率,我们无法通过 SSH 连接服务器。我们正在将此服务器用于我们的 Magento 2.0 网上商店。
我们已经多次重启服务器,但重启服务器后几秒钟内 CPU 使用率仍然相同。因此,我们无法跟踪服务器错误或服务器错误日志。
有人能建议我们如何解决这个问题吗?
服务器信息:
操作系统:Ubuntu
Web 服务器:Apache
区域: europe-west1-c
机器类型:1 vCPU,3.75 GB
谢谢,
林贾尔·帕特尔
答案1
尝试通过托管服务提供商提供的 VPS 控制面板登录您的服务器,并通过控制台登录 SSH。您将能够登录并可以跟踪日志以找出问题所在。
答案2
在如此高的 CPU 负载下,我猜问题在于甚至在 bash 中以交互方式工作。但您可以通过 ssh 发送单个命令,如下所示:
ssh user@host command
这种方法可以帮助您开始调查。获取最耗 CPU 的进程:
ssh user@host ps aux --sort=-pcpu
您将获得按 CPU 消耗排序的所有进程列表。如果可以接受一些停机时间并且您有 root 登录名,那么您可以尝试终止所有进程。如果是 apache,例如:
ssh root@host killall -9 apache
请注意,apache
这里显示的是进程的名称ps
。您可以使用类似apache2
或类似的名称。
然后,当进程被终止并且您能够登录服务器时,您可以尝试调查日志问题,重新配置 apache 以处理更少的客户端等。
答案3
如果您有控制台访问权限
将其视为普通服务器并使用 grub 启动到单用户模式来解决问题。
如果你没有控制台访问权限,这可能会有用
我不知道你使用的是什么提供商或技术,但亚马逊描述了一种针对 AWS EC2 无响应服务器的技术
https://aws.amazon.com/articles/5213606968661598
我浏览后的理解是
- 创建新的临时虚拟机
- 关闭无响应的虚拟机
- 将无响应的虚拟机驱动器附加到新机器
- 修复问题并关闭
- 卸下驱动器并重新连接到原始机器,然后启动它