프로세스가 컴퓨터를 멈추는 것을 방지하는 방법은 무엇입니까?

프로세스가 컴퓨터를 멈추는 것을 방지하는 방법은 무엇입니까?

프로세스로 인해 컴퓨터가 "정지"될 수 있습니다(예: CPU 또는 스왑 공간 부족). 이런 일이 발생하지 않도록 하는 방법이 있나요? 예를 들어 프로세스에 부여할 수 있는 최대 %CPU 또는 IO MB/s를 설정하면 될까요?

답변1

셸에서 실행되는 명령에 대해서는 의 셸 설명서를 읽어보세요 ulimit.

ulimit()C에도 같은 일을 하는 함수가 있습니다 .

구현별 메서드를 통해 다양한 제한 사항을 적용할 수도 있습니다. FreeBSD에서는 에서 login.conf또는 라는 명령을 사용하여 사용자별 제한을 설정할 수 있습니다 rctl. 일부 Linux 배포판에서 사용됩니다 limits.conf.

cpulimit시간이 지남에 따라 특정 양의 CPU를 사용하지 않도록 프로세스를 일시 중지할 수 있는 프로그램이 있습니다 .

물론 우선순위를 조정하려는 경우에는 항상 nice합계가 있습니다.renice

답변2

부분적으로. ulimit일반적으로 쉘 도우미 명령이 무엇인지 확인하십시오 . (배쉬에서는 help ulimit). 메모리, 총 CPU 주기 및 시간(%는 아님), 작성하는 파일 크기를 제한할 수 있습니다.

이 명령을 사용할 수도 있습니다 nice. 하지만 실제로 자원이 필요한 다른 일이 없다면 nice는 효과적이지 않습니다. 여러 프로세스가 CPU 리소스를 놓고 경쟁하는 경우에만 적용됩니다.

Linux에서 할 수 있는 한 가지는 메모리가 부족할 때 프로세스를 먼저 종료해야 한다고 OOM Killer에 지시하는 것입니다.

관련 정보