현재 cgroups v1에서 cgroups v2로 마이그레이션 중입니다. cgroups v1에서 사용하는 memory.swappiness 파일을 찾을 수 없습니다. swap 관련 파일은 다음과 같습니다.
memory.swap.current
memory.swap.events
memory.swap.high
memory.swap.max
그러나 그들 각각은 swappiness 매개변수와 아무 관련이 없습니다.문서. cgroups v2의 memory.swappiness 파일에 대한 정보는 찾을 수 없으며 /proc/sys/vm/swappiness
파일과 /etc/sysctl.conf
파일의 vm.swappiness 매개 변수에 대한 정보만 찾을 수 있습니다. 이는 cgroups v2를 사용하여 교환성을 설정할 수 없다는 의미입니까?
운영 체제: 데비안 11
답변1
그렇습니다. cgroups v2에서는 스와핑을 전역적으로만 제어할 수 있습니다. 허태준 (cgroups v2 설계 및 구현)다음과 같은 이유가 제시되었습니다:
swappiness가 무엇을 인코딩하는지 명확하지 않습니다. 이 중 많은 부분은 익명 메모리 IO가 파일 지원 IO보다 본질적으로 더 높은 무작위성을 고려하는 방법입니다. 따라서 워크로드보다는 기본 하드웨어의 기능에 더 가깝습니다. 또한 구현이 올바르지 않습니다. iirc, 동작은 재활용 프로그램에 따라 다릅니다.
실제로 교환성은 개별 워크로드 동작보다는 일반적으로 시스템 스토리지의 속성인 시스템의 I/O 균형에 더 가깝습니다.
cgroups v2는 사용할 수 있는 추가 설정을 제공합니다.메모리 사용량 제어, 종종 교환성보다 더 적절한 방식으로 사용됩니다. 임계값은 수집을 완전히 방지하고( memory.min
), 수집을 최소화하고( memory.low
), 스왑 사용을 제한하도록( memory.swap.max
극단적인 경우 memory.swap.high
) 설정할 수 있습니다.