방금 nice(및 ionice)의 존재에 대해 배웠는데 매우 흥미로운 것 같습니다.
평소 "p_normal"보다 낮은 우선순위로 "p_low" 프로세스를 시작하고 싶습니다.
내가 그것에서 무엇을 얻을 수 있나요?위키 페이지(리소스 할당 방법을 보여주는 유일한 소스)는 다음과 같습니다.
nice +15로 실행되는 프로세스는 일반 우선순위 프로세스에 할당된 CPU 시간의 25%를 얻습니다: (20 − 15)/(20 − 0) = 0.25
따라서 이를 기반으로 "nice -18 p_low"이면 p_low 프로세스에 10% CPU 시간을 제공할 수 있습니다.
기이내 "p_normal"이 실행 중이라면.
그래서 질문은: 스케줄러에게 기본 niceness 값을 사용하고 다른 것이 실행될 때 -18만 갖도록 지시하는 방법이 있습니까?
최악의 시나리오에서는 다른 것이 실행 중인지 확인하고 내 프로세스를 "조정"하는 스크립트를 만들 수 있지만 이는 나에게 최선의 선택이 아닌 것 같습니다...
편집하다:
답변: @jilliagre가 그의 답변 아래 댓글에서 지적했듯이:
실행 중인 다른 항목이 없으면 명령은 지정된 양호 여부(-18, 0, +18, ...)에 관계없이 CPU의 100%를 가져옵니다.
답변1
아름다운 작품을 놓쳤습니다. CPU 병목 현상이 발생할 때 일부 프로세스의 우선 순위를 다른 프로세스보다 우선시하도록 스케줄러에 힌트를 보냅니다.
실행 중인 다른 항목이 없으면 성능에 관계없이 프로세스에 모든 CPU 성능이 부여되므로 특정 상황에서 성능을 변경할 필요가 없습니다.