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

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

과냉각된 컴퓨터에서 프로그램을 컴파일하려고 합니다.

특히 이 프로그램은 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))

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

관련 정보