我们有一台配备 i9 13900k 且安装了 ubuntu 22.10 的工作站电脑。
当所有核心都达到最大负荷时,系统将失去响应。拒绝所有 ssh 连接,键盘和鼠标将无法使用。
尝试排除故障但未能成功,因为系统满负荷时我们无法获取任何信息。
原因何在?我们该如何解决这个问题?
手头上的流程:31 个 pybullet 模拟。
答案1
我倾向于在增加工作负载的同时监控系统。因此,与其进行 31 次 pybullet 模拟,不如尝试逐步增加。在开始之前,我会安装它dstat
并在终端中运行。启动工作负载并观察 的输出dstat
。
sudo apt install dstat
在终端中运行:
dstat --time --load -cdngy --top-cpu --top-mem --top-io
它看起来有点像这样:
----system---- ---load-avg--- --total-cpu-usage-- -dsk/total- -net/total- ---paging-- ---system-- -most-expensive- --most-expensive- ----most-expensive----
time | 1m 5m 15m |usr sys idl wai stl| read writ| recv send| in out | int csw | cpu process | memory process | i/o process
05-05 11:43:10|1.99 2.02 2.17| 10 2 87 1 0|2106k 2208k| 0 0 |7742B 24k|8606 13k|msedge 2.8|msedge 920M|msedge 11M 170k
05-05 11:43:11|1.99 2.02 2.17| 11 2 87 0 0| 0 896k|1174B 1117B| 0 0 |8305 10k|msedge 6.3|msedge 918M|msedge 29M 63B
05-05 11:43:12|1.83 1.99 2.16| 6 2 91 1 0| 0 1168k|2098B 2197B| 0 0 |6219 8362 |msedge 4.4|msedge 918M|msedge 20M 54B
05-05 11:43:13|1.83 1.99 2.16| 7 3 90 0 0| 0 0 |1524B 2136B| 0 0 |8403 12k|msedge 2.1|msedge 917M|msedge 3874k 5092B
05-05 11:43:14|1.83 1.99 2.16| 5 2 92 1 0| 0 0 |2200B 554B| 0 0 |6227 8621 |msedge 2.2|msedge 918M|btm 189k 6355B
05-05 11:43:15|1.83 1.99 2.16| 9 2 89 0 0| 0 8192B| 248k 5862B| 0 0 |7933 11k|msedge 4.8|msedge 919M|msedge 19M 260k
05-05 11:43:16|1.83 1.99 2.16| 9 2 88 1 0| 0 1488k|1194B 997B| 0 0 |6372 8858 |msedge 6.3|msedge 918M|msedge 28M 204B
05-05 11:43:17|2.00 2.02 2.17| 9 2 89 0 0| 0 3368k|2385B 447B| 0 0 |5557 7323 |msedge 6.2|msedge 918M|msedge 29M 49B
05-05 11:43:18|2.00 2.02 2.17| 9 2 88 1 0| 0 80k| 999B 351B| 0 0 |8337 12k|msedge 6.2|msedge 918M|msedge 27M 7521
您可以选择在后台将其写入文件,以防 GUI 锁定:
dstat --time --load -cdngy --top-cpu --top-mem --top-io --output report.csv 1 5 &
开始建立工作负载,并记下执行的时间。您将看到 dstat 输出带有时间戳,因此您可以关联正在发生的事情。您可能会看到 CPU 使用率上升,并且平均负载增加。