コンピュータが冷却中にプログラムを実行する

コンピュータが冷却中にプログラムを実行する

過冷却されたコンピュータでプログラムをコンパイルしようとしています。

特に、このプログラムは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))

しかし、繰り返しますが、必要に応じて調整する必要があるかもしれません。

おすすめ記事