컴퓨터가 냉각된 동안 프로그램 실행

컴퓨터가 냉각된 동안 프로그램 실행

냉각이 부족한 컴퓨터에서 프로그램을 컴파일 하려고 합니다.

특히 이 프로그램은 프로세서별 최적화 기능을 linux-ck갖춘 커널 이므로 단순히 다른 컴퓨터에서 실행하면 목적이 무용지물이 됩니다.-mtune=native march=native

현재 냉각 문제를 해결하기 위해 노력하고 있습니다.메모:컴퓨터에 물리적으로 접근할 수 없으므로 문제 해결을 도와주려고 하지 마십시오.

^Z대신 CPU가 로 측정된 특정 온도 이상으로 올라가면 프로그램을 일시 중지하고(셸 작업 제어 ' -스타일') sensors온도가 측정된 후 다시 시작하여 안전한 수준으로 돌아가는 방법이 필요합니다.

메모:이 컴퓨터는 이전에 91°C에 도달했습니다.

컴퓨터는 Arch Linux를 실행 중이며 완전히 업데이트되었습니다.

답변1

해결책은 주 작업의 PID를 변수에 할당하고 다음과 같은 스크립트를 작성하는 것입니다.

  • 10초마다 온도를 확인하세요. 다음과 같은 것

    temp=($(sensors | awk -F'[+.]' '{print $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))

하지만 다시 말하지만 필요에 맞게 조정해야 할 수도 있습니다.

관련 정보