過冷却されたコンピュータでプログラムをコンパイルしようとしています。
特に、このプログラムはlinux-ck
プロセッサ固有の最適化機能を備えたカーネルなので、-mtune=native march=native
単に他のシステムで実行すると目的が無用物となります。
現在、冷却問題の解決に努めています。メモ:コンピュータに物理的にアクセスできないため、トラブルシューティングを支援しないでください。
^Z
代わりに、CPUが特定の温度(測定温度)を超えると、プログラム(シェルジョブ制御「スタイル」)を一時停止し、sensors
測定された温度が安全なレベルに戻った後にプログラムを再起動する方法が必要です。
メモ:このコンピュータは以前は91℃に達しました。
コンピュータはArch Linuxを実行し、完全に更新されました。
答え1
解決策は、基本タスクのPIDを変数に割り当て、次のスクリプトを作成することです。
約10秒ごとに温度を確認してください。それはまるで
temp=($(sensors | awk -F'[+.]' '{print $2}'))
私のボックスに2つの温度(acpitzとcoretemp)を持つテーブルを作成します。
temp
の出力に基づいて調整する必要があるかもしれませんsensors
。temp > $TEMPMAXの場合、
kill -TSTP PID
ジョブとして転送(CTRL-Z、別名一時停止)(( $temp[1] > 80 || $temp[2] > 80 )) && kill -TSTP $JOBPID
temp < $TEMPRUNが
kill -CONT PID
ジョブとして送信された場合(bgコマンドと同じ)(( $temp[1] < 40 && $temp[2] < 40 )) && kill -CONT $JOBPID
スクリプトが頻繁に実行されるため、コマンドの代わりにソースから一時値を取得してsensors
速度をわずかに向上させることをお勧めします。可能なコンピュータでは、次のように動作します。
temp=($(cut -c 1-2 /sys/class/hwmon/hwmon0/temp1_input) $(cut -c 1-2 /sys/class/hwmon/hwmon1/device/temp2_input))
しかし、繰り返しますが、必要に応じて調整する必要があるかもしれません。