시스템 과열 및 재부팅을 방지하기 위해 ulimit를 사용할 수 있습니까?

시스템 과열 및 재부팅을 방지하기 위해 ulimit를 사용할 수 있습니까?

방금 배운 재미 ulimit.

예를 들어, 오래된 프로세서를 사용하는 시스템이 계속 과열된다면, 사용자가 사용할 수 있는 시스템 리소스의 양이 너무 오래되어 연결할 수 있는 다른 하드웨어가 없는 경우입니다. , CPU가 시원하게 유지되고 CPU에서 내 내용을 복사할 수 있도록 허용하는 것이 가능합니까?

내 말은, 의도한 목적은 아니고 해킹처럼 들리지만 ulimit이것이 작동하는지 알고 싶었습니다. 나 역시 그렇게 생각했는데, 시스템의 모든 사용자에게 적용해야 했지만 말이다. 나는 또한 런레벨 1이 비슷한 상황을 일으킬 것이라고 생각했습니다.

답변1

소용없어요. ulimit주로 프로세스가 사용할 수 있는 다양한 유형의 메모리(직접 사용되는 메모리 및 파일 설명자 및 프로세스 테이블과 같은 시스템 테이블의 항목)의 양을 제한합니다. ulimit총 CPU 시간을 일정량 이상 소비하는 프로세스를 종료하는 데 사용할 수 있지만 이는 CPU 온도와 관련이 없습니다. 몇 분 동안 CPU를 차지하는 프로세스는 시스템 과열을 일으킬 수 있지만, 하루에 몇 분씩 걸리는 프로세스는 문제를 일으키지 않을 수 있습니다.

ulimit프로세스의 스케줄링 우선순위에 제한을 설정할 수도 있지만 프로세스가 CPU 시간을 사용하는 것을 방지하는 유일한 방법은 다른 프로세스가 CPU를 사용하는 것이기 때문에 이 또한 쓸모가 없습니다. 같은 이유로 niceCPU를 시원하게 유지하지 않습니다 .

CPU의 최대 주파수를 제한하면 CPU의 온도가 낮아지게 됩니다. Linux에서는 다음과 같이 이를 수행할 수 있습니다.

echo 2097152 | tee /sys/devices/system/cpu/cpufreq/policy*/scaling_max_freq

이렇게 하면 CPU 주파수가 2GHz로 제한됩니다(scaling_max_freq단위는 kHz)입니다. 각 policy*디렉터리는 코어에 해당합니다.

프로세서~해야 한다충돌하는 대신 과열을 방지하고 작업 속도를 늦추지만(화재는 고사하고 CPU는 실제로 꽤 잘 보호됩니다) 실제로는 때때로 충돌이 발생합니다.

관련 정보