최근에 2개의 코어(예: 2개의 논리 CPU)가 있는 Dell 컴퓨터에 Scientific Linux 7(64비트)을 설치했습니다. 팬, 쿨러 등을 청소하기 위해 한동안 컴퓨터를 켜지 않았고, 코어 중 하나(또는 둘 다)에서 높은 CPU(예: 100%)를 몇 분 동안 사용하면 컴퓨터가 종료됩니다(보통 다음과 같은 경우).새로 온 사람디스플레이 그래픽 손상 또는 PDF 문서 로드파이어폭스 브라우저또는 다음과 같이 터미널에서 장기 실행 명령을 실행합니다.만들다).
시스템을 정리하기 전에 CPU 사용량을 코어당 약 75~80%로 제한하고 싶습니다(아니요모든 과정! ) 따라서 예기치 않은 종료가 발생하지 않습니다. 이렇게 하면 프로세스는 CPU 사용률 제한을 초과하지 않고도 여러 CPU를 계속 활용할 수 있습니다. 이를 수행할 수 있는 방법이 있습니까?
답변1
며칠간의 심층 조사 끝에 CPU 사용량을 줄이는 두 가지 방법을 찾았습니다.공정을 위해. 일반적으로 전체 시스템의 CPU 사용량을 줄이려면 가장 지속적인 CPU를 사용하는 일부 프로그램이 있을 수 있으므로 제한해야 합니다.그것들기계 전체에 부담을 주기보다는. 배터리 수명을 절약하기 위해 이 작업을 수행하는 경우 하드웨어의 전력 사용량을 제어할 수도 있습니다.동조또는파워 탑, 대부분의 배포판에는 이를 수행하는 데 도움이 되는 도구가 있습니다.
- 정지/계속 신호
신호는 UNIX부터 존재해 왔습니다. SIGSTOP 또는 SIGTSTP를 프로세스에 보냅니다. (차이점은 전자가 다음과 같은 경우 프로세스 충돌을 일으킬 수 있다는 것입니다.~ 해야 하다정리를 수행하려면 프로세스가 후자에서 강제로 중지되지 않고 프로세스에 적합한 프로세스를 사용하여 일시 중지합니다(CPU를 확보하고 온도를 낮출 수도 있음). 그런 다음 프로세스를 재개하기 위해 SIGCONT를 프로세스에 보내 CPU를 점유합니다. 이 방법은 CPU 그래프에 일련의 "스파이크"를 생성하고 프로세스를 일시 중지하여 충분한 시간을 제공하지 않기 때문에 프로세서가 과열되는 것을 방지합니다.
이 접근 방식의 결과는 이러한 일시 중지가 발생하지 않는다는 것입니다.매끄러운, 이는 비디오 재생이나 웹 검색조차 원활하지 않음을 의미하므로 쉘 명령(다중 프로세스 프로그램이나 Google Chrome과 같은 명령 또는 make 이 방법으로는 잘 작동하지 않음)과 함께 이 방법을 사용해야 할 수도 있습니다. 분명히 이것은아니요systemd와 같은 시스템 프로세스를 일시 중지/재개하는 것이 좋습니다.
수동으로 할 수도 있지만,CPU 한도이 방법을 사용하는 멋진 작은 프로그램입니다(SIGSTOP/SIGCONT를 사용함). 설명과 달리 코어가 여러 개인 경우에도 지정하는 CPU %는 0에서 100 사이입니다. 언제든지 Ctrl-Z를 사용하여 터미널에서 작업을 일시 중지할 수 있습니다.
- CPU 성능(추천)
이것은 Linux 커널에 내장되어 있으므로 대부분의 배포판에서 이를 제공해야 합니다.여기없는 경우). 이 명령줄 유틸리티는 CPU 주파수를 관리하므로 다음 명령을 사용하여 거의 전체 CPU를 제어할 수 있습니다.주지사 주(예: 성능, 절전 등) 다른 작업도 수행할 수 있습니다. 일시 중지/재개 방법과 달리 프로세스는 다음과 같습니다.많은이것으로 더 부드러워 질 것입니다. 프로세서의 최대 주파수를 설정해야 합니다.
cpupower frequency-info
사용 가능한 프로세서 상태를 보려면 실행하세요 .- root 로
cpupower frequency-set -u <frequency>
가지고 있는 가장 낮은 주파수부터 시작하여 과열되지 않는 가장 높은 주파수를 찾으십시오. - (선택 사항) 원하는 경우 시스템 온도를 볼 수 있는 lm_sensors 패키지를 설치할 수 있습니다. 그런 다음 실행
sensors-detect
하고 모든 질문에 "예"라고 대답하세요. 마지막으로sensors
현재 온도와 시스템이 과열되는 임계 온도를 확인하기 위해 실행합니다.
이때 현재 온도는 훨씬 낮아야 합니다. 일부 성능 집약적인 프로그램(예: 게임)은 위 명령을 입력한 후 중단될 수 있지만, 이 메시지가 포함된 팝업이 표시되면 강제 종료보다는 프로그램을 기다려야 합니다. 시스템을 다시 시작할 때마다 이 명령을 입력해야 합니다(자동으로 실행되도록 할 수 없는 경우). 바라보다이것그리고이것CPUPower에 대한 추가 정보.