突然 CPU 在 ec2 中使用率达到 99%

Abrruptly CPU usage goes to 99% in ec2

我在 aws 中有一个 EC2。每隔几个小时,我就会看到 CPU 使用率达到 99%。我无法找到导致此问题的进程。

在我重新启动 ec2 实例时,是否可以设置任何标志来查看罪魁祸首进程? 我在EC2中是运行 ubuntu 20,实例类型是t2 micro。 以下是我运行

的过程
  1. Mysql
  2. Mongo
  3. 一个spring引导服务

我认为如果是这些进程导致了问题,那么它应该会在我启动这些服务几分钟后发生,但它会在几个小时后以荒谬的方式发生

您可以使用 top 程序查看消耗最多的内容 CPU。

此程序通常在终端 window 中使用,因为它每隔几秒刷新一次显示(默认为 10,但您可以更改)。如果您一直看到此性能问题,那么只需登录 运行 top,然后查看上面显示的 CPU 消费者。

您也可以在 CPU 消耗量激增然后减少的情况下使用它:如果一个程序持续发生这种情况,那么它的 总数 CPU 将反映这一事实。将排序顺序更改为 select TIME+ 字段。

最后,如果您不想让终端 window 打开,您可以 运行 top 在“批处理”模式下将输出写入文件。以下是如何每秒调用它,并且只捕获前 10 个 CPU 消费者:

while true ; do top -b -n 1 | head -17 >> /tmp/top.log ; sleep 1 ; done