cgroup이있는 하나의 프로세스에 대해서만 스와핑을 해제 하시겠습니까?


15

하나의 프로세스에 대해서만 스와핑을 해제하고 싶습니다. 스왑은 다른 프로세스에서 정상적으로 작동합니다.

cgroup으로 어떻게 구현할 수 있습니까?

답변:


9

에서 커널 문서 memory.swappiness에 관하여 :

5.3 swappiness

/ proc / sys / vm / swappiness와 유사하지만 그룹 계층에만 영향을줍니다.

다음 cgroup의 swappiness는 변경할 수 없습니다.
-루트 cgroup (/ proc / sys / vm / swappiness 사용).
-계층을 사용하고 그 아래에 다른 cgroup이있는 cgroup.
-계층의 루트가 아닌 계층을 사용하는 cgroup.

Red Hat 고객 포털에서 :

memory.swappiness

커널이 페이지 캐시에서 페이지를 회수하는 대신이 cgroup의 작업에서 사용하는 프로세스 메모리를 스왑 아웃하는 경향을 설정합니다. 시스템 전체에 대해 / proc / sys / vm / swappiness에서 설정 한 것과 동일한 방식으로 계산됩니다. 기본값은 60입니다. 60보다 작은 값은 커널이 프로세스 메모리를 스왑 아웃하는 경향을 감소시키고, 60보다 큰 값은 프로세스 메모리를 스왑 아웃하는 경향을 증가 시키며 100보다 큰 값은 커널이 이 cgroup에있는 프로세스의 주소 공간

값이 0이면 프로세스 메모리가 스왑 아웃되는 것을 막지 않습니다. 글로벌 가상 메모리 관리 로직이 cgroup 값을 읽지 않기 때문에 시스템 메모리가 부족한 경우에도 여전히 스왑 아웃이 발생할 수 있습니다. 페이지를 완전히 잠 그려면 cgroup 대신 mlock ()을 사용하십시오.

:: 다음 그룹의 교환을 변경할 수 없습니다.
* 루트 cgroup. / proc / sys / vm / swappiness에 설정된 교환 을 사용합니다.
하위 그룹이 그 아래에있는 cgroup

편집 : 설정 방법을 정확히 알고 싶다면 다른 cgroup 속성과 동일하게 설정하십시오.

 # cd /mnt/cgroup/<cgroupName>
 # cat memory.swappiness
 60
 # echo "59 " > memory.swappiness
 # cat memory.swappiness
 59

내부에 /tmp마운트 된 파일의 경우 는 tmpfs어떻습니까? unix.stackexchange.com/q/146490/56970
CMCDragonkai

여기 커널 문서의 관련 부분을 인용 한 것이 좋습니다. 링크가 끊어졌습니다.
mgarey

리눅스 커널 문서에 대한 링크가 깨졌습니다. 대신 이것을 사용하십시오 kernel.org/doc/Documentation/cgroup-v1/memory.txt
Andrew Eisenberg

@AndrewEisenberg 원하는 답변을 자유롭게 편집하십시오
Bratchley

흠 ... 내버려 두지 않을 것입니다. 편집이 6 자보다 커야한다고 말합니다. 평판이 충분하지 않을 수 있습니다.
앤드류 아이젠 버그
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.