答案1
我不确定发生了什么,但我的猜测是,单个进程的 %CPU 列并没有告诉您您认为它告诉您的内容。从顶部的联机帮助页:
k: %CPU -- CPU usage
The task’s share of the elapsed CPU time since the last screen update,
expressed as a percentage of total CPU time.
假设您每 4 秒刷新一次。这 2 秒内消耗的总 CPU 时间为 6%在这4秒内。但假设其中某一秒,它突然使用了 24% 的 CPU 时间。我并不是说这种情况正在发生,但它可能会发生。
我对top
这里很满意。我可以看到 CPU 使用率按 CPU 细分,并进一步按user
, sys
, nice
, idle
, wait
(在 I/O 上)细分,为硬件和软件中断提供服务(嗨,si)。你也许htop
也可以把这个放进去。只要您有 1 个 CPU 至少有 20% 空闲,就没有什么可真正担心的,除非您的风扇困扰您。但如果您担心,可能发生的情况是 %wait 和 %hi/%si 非常高,在这种情况下,没有单个进程的 CPU 使用率很高,而是内核由于某种原因非常繁忙。
答案2
我遇到了类似的问题,我确实在后台运行了 TOP 命令并将其重定向到 txt 文件
顶部 > 顶部.txt &
谢谢 可以看看哪个进程浪费了你的CPU
答案3
有几种选择。我的偏好是该程序htop
通常不会默认安装,但几乎可用于所有发行版。它为您提供相同的信息,top
但具有更丰富的功能集。它非常适合以交互方式查找问题流程,但不适合编写脚本。如果您想将某些内容合并到监控脚本中,那么该命令ps -eo pid,pcpu,comm
将是您的朋友。它以相当容易解析的格式打印所有当前进程及其 PID 和 CPU 使用情况。
答案4
可能出什么问题了?
首先,你使用的是 Laravel,它需要大量内存,而你只有不到一半的内存。您在不受支持的操作系统上运行它 - 这很糟糕。您还没有告诉我们该堆栈的其余部分(Web 服务器、PHP SAPI、PHP 版本)。