Linux

交換已滿時 CPU 過熱和 PC 關閉

  • June 30, 2022

這不一定是Linux問題,但無論如何我都會在這裡問。我使用的工作站主要用於訓練深度學習和機器學習模型。我在 CPU 和 GPU 上執行訓練程式碼。

CPU:AMD 銳龍 9 5950X 16 核處理器

顯卡:NVIDIA GeForce RTX 3090

作業系統:Ubuntu 22.04 LTS

我使用的庫(PyTorch、XGBoost、LightGBM 等)大量使用交換記憶體來載入數據。在處理大型數據集時,交換記憶體會緩慢累積並超過限制 (2GB)。發生這種情況時,所有核心都會發瘋,CPU 會過熱。工作站幾秒鐘後自行關閉。

我是一名數據科學家,我不擅長硬體。我花了幾個星期才弄清楚為什麼我的工作站一直在自行關閉。我必須找到一種方法來防止這種情況發生,因為我無法再完成自己的任務了。你有什麼建議?

為了給你更多細節,這不是在 3-4 個月前發生的。它是最近才開始的。

編輯:在同時訓練兩個模型(UNet 和 YOLOv6)時添加了 nvidia-smi 和感測器輸出。

英偉達-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

首先,絕對確保您的 PSU 足夠強大 - 像您這樣的即時關機可能表明它存在問題。也許更換它。RTX 3090 的峰值功率最高可達 500W,這意味著與您的 CPU 一起,您的 PSU 的額定功率必須至少為 850W。


說到你的時間。

您的 CPU 執行接近其額定最大值,即 90C,這意味著您最好通過安裝機箱風扇來改善機箱散熱,例如 120 毫米(140 毫米更好 - 更安靜、更強大),並可能在您的 CPU 上安裝更好的冷卻器更換導熱膏 - 我最喜歡的是北極 MX-4(MX-5 理論上提供更好的性能,但應用起來要麻煩得多)。

安裝適當的機箱冷卻可能就足夠了,因為您的 GPU 肯定會增加您的 CPU 溫度。

不要忘記更新您的 EFI BIOS。

您也可以使用純軟體解決方案:輸入您的 BIOS 並

  • 要麼降低你的 CPU PPT(最大功率)
  • 或為其設置最高溫度,例如 85C

兩者都會導致多執行緒性能下降,但不會那麼多。您可能會在這裡獲得更多幫助:https ://www.reddit.com/r/Amd/

為了便於討論,假設 CPU過熱,這是冷卻**問題,而不是記憶體管理問題。假設當交換空間已滿並且系統必須在交換空間和 RAM 之間進行更多的數據移動​​時,您的系統儲存必須執行的額外 I/O 可能會使儲存硬體變得足夠好,足以壓倒熱管理硬體。監控系統溫度而不是系統負載當在這種計算負載下將關機與溫度峰值相關聯,而不是計算峰值。確保您的系統風扇協同工作以保持空氣流通,而不是全部將空氣吸入機箱或從機箱中排出空氣。確保正確安裝散熱器。

引用自:https://unix.stackexchange.com/questions/708001