交换空间已满时 CPU 过热且 PC 关闭

交换空间已满时 CPU 过热且 PC 关闭

这不一定是 Linux 问题,但无论如何我都会在这里问它。我使用的工作站主要用于训练深度学习和机器学习模型。我在 CPU 和 GPU 上运行训练代码。

CPU:AMD Ryzen 9 5950X 16 核处理器

显卡:NVIDIA GeForce RTX 3090

操作系统:Ubuntu 22.04 LTS

我使用的库(PyTorch、XGBoost、LightGBM 等)大量利用交换内存来加载数据。在处理大型数据集时,交换内存会缓慢积累并超过限制 (2GB)。当这种情况发生时,所有核心都会变得疯狂,CPU 会过热。几秒钟后工作站自行关闭。

我是一名数据科学家,但我不擅长硬件。我花了几周时间才弄清楚为什么我的工作站总是自动关闭。我必须找到一种方法来防止这种情况发生,因为我无法再完成自己的任务了。您有什么建议?

向您提供更多详细信息,这在 3-4 个月前还没有发生。最近才开始。

编辑:添加了 nvidia-smi 和传感器输出,同时训练两个模型(UNet 和 YOLOv6)。

英伟达-SMI

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.73.05    Driver Version: 510.73.05    CUDA Version: 11.6     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:0A:00.0 Off |                  N/A |
|100%   79C    P2   338W / 350W |  14171MiB / 24576MiB |    100%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1361      G   /usr/lib/xorg/Xorg                 56MiB |
|    0   N/A  N/A      1568      G   /usr/bin/gnome-shell               10MiB |
|    0   N/A  N/A     27955      C   python                           2743MiB |
|    0   N/A  N/A     31692      C   python                          11355MiB |
+-----------------------------------------------------------------------------+

传感器

nvme-pci-0300
Adapter: PCI adapter
Composite:    +74.8°C  (low  = -273.1°C, high = +84.8°C)
                       (crit = +84.8°C)
Sensor 1:     +74.8°C  (low  = -273.1°C, high = +65261.8°C)
Sensor 2:     +74.8°C  (low  = -273.1°C, high = +65261.8°C)

iwlwifi_1-virtual-0
Adapter: Virtual device
temp1:        +57.0°C  

k10temp-pci-00c3
Adapter: PCI adapter
Tctl:         +87.8°C  
Tccd1:        +89.2°C  
Tccd2:        +79.5°C

答案1

首先,绝对确保您的 PSU 足够强大 - 像您这样的即时关闭可能表明它存在问题。也许更换它。 RTX 3090 的峰值功率可达 500W,这意味着您的 PSU 和 CPU 的额定功率必须至少为 850W。


说到你的临时工。

您的 CPU 正在接近其额定运行最大限度,即 90C,这意味着您最好通过安装机箱风扇来改善机箱冷却,例如 120mm(140mm 更好 - 更安静且更强大),并且可能在 CPU 上安装更好的冷却器以及更换导热膏 - 我的首选是Arctic MX-4(MX-5理论上可以提供更好的性能,但应用起来麻烦很多)。

安装适当的机箱冷却可能就足够了,因为您的 GPU 肯定会增加 CPU 温度。

不要忘记更新您的 EFI BIOS。

您还可以使用纯软件解决方案:输入 BIOS 并

  • 要么降低你的CPU PPT(最大瓦数)
  • 或为其设置最高温度,例如85C

两者都会导致多线程性能下降,但影响不大。您可以在这里获得更多帮助:https://www.reddit.com/r/Amd/

答案2

为了讨论的方便,假设 CPU过热,即冷却问题,不是一个内存管理问题。假设当交换区已满并且系统必须在交换区和 RAM 之间移动更多数据时,系统存储必须执行额外的 I/O,这使得存储硬件足以压倒热管理硬件。监控您的系统温度而不是系统负载在这种计算负载下,将关闭与温度峰值而不是计算峰值相关联。确保系统风扇协同工作以保持空气流通,而不是全部将空气吸入机箱或从机箱中排出空气。确保散热器安装正确。

答案3

我将回答我自己的问题,告诉你我是如何解决这个问题的。在得出结论之前,这可能会帮助其他人检查类似的内容。

是的,这是一个冷却问题。我发现主板风扇连接器松动。风扇正在工作,但当 CPU 过热时,该信息不会传递给风扇。当我重新插上连接器时,温度恢复正常。

相关内容