무한 도커 컨테이너의 값을 인쇄하면 9223372036854771712 값을 얻습니다. 이는 0x7FFFFFFFFFFFF000입니다(이 값은 XUbuntu 호스트와 동일합니다). 무제한 메모리 리소스를 나타내는 Docker 또는 Linux의 기본값임을 나타내는 참조를 찾을 수 없습니다.
이 가치는 어디에서 오는가? 컨테이너 가상화와 Linux distro/bitness 사이에 차이가 있나요?
답변1
이 값은 기본적으로 메모리 관리 계층의 cgroup 설정에서 가져옵니다.설정PAGE_COUNTER_MAX
,지금 바로LONG_MAX / PAGE_SIZE
64비트 플랫폼에서PAGE_SIZE
읽을 때 다시 곱하기.
이는 확인합니다이르카초~의설명하다: 값은 최대 64비트 부호 있는 정수이며 가장 가까운 페이지로 반올림됩니다(마지막 비트 제거).
답변2
이는 가장 큰 양수 부호 64비트 정수(2 63 -1)이며 x86 시스템에서 가장 일반적인 페이지 크기인 4096(2 12 ) 의 배수로 내림됩니다 . 부호 있는 것과 부호 없는 것 사이에 발생할 수 있는 혼동을 피하면서 더 높은 값을 얻는 것은 어려운 것으로 보이므로 적어도 무한대에 대한 합리적인 근사처럼 보입니다.
즉, 잘 모르겠습니다. 단지 추측일 뿐입니다.