교환성
이 컨트롤은 커널이 메모리 페이지를 얼마나 적극적으로 교환하는지 정의합니다. 값이 높을수록 공격성이 증가하고, 값이 낮을수록 교환량이 감소합니다. 값이 0이면 사용 가능한 페이지 및 파일 지원 페이지 수가 다음 값보다 작아질 때까지 커널이 스와핑을 시작하지 않도록 지시합니다.최고 워터마크지역에서.
--linux-5.0/documentation/sysctl/vm.txt
사용 가능한 메모리
스왑 없이 새 응용 프로그램을 시작하는 데 사용할 수 있는 메모리 양을 추정합니다. MemFree, SReclaimable, 파일 LRU 목록 크기 및낮은 워터마크모든 분야에서. 이 추정치는 시스템이 제대로 작동하려면 일부 페이지 캐싱이 필요하다는 점과 프로젝트가 사용 중일 때 모든 회수 가능 슬래브가 회수 가능하지는 않다는 점을 고려합니다. 이러한 요소의 영향은 시스템마다 다릅니다.
--linux-5.0/documentation/filesystem/proc.txt(문서
/proc/meminfo
).
내 시스템의 현재 로우 워터마크와 하이 워터마크 값은 무엇입니까? 예를 들어 백분율로 표현하려면 어떤 값을 기준으로 합니까?
답변1
워터마크는 low
페이지(x86 기준 4096바이트)에 표시되는 값의 합입니다.high
/proc/zoneinfo
내 8GB 시스템에서는 대부분의 페이지가 DMA32 영역과 일반 영역으로 나누어져 있습니다. (모든 것이 노드 0에 속합니다.누마체계).
# cat /proc/zoneinfo
Node 0, zone DMA
...
pages free 3961
min 33
low 41
high 49
spanned 4095
present 3996
managed 3961
...
Node 0, zone DMA32
pages free 139960
min 7184
low 8980
high 10776
spanned 1044480
present 888973
managed 866327
...
Node 0, zone Normal
pages free 33907
min 31449
low 33868
high 36287
spanned 1173504
present 1173504
managed 1140349
...
워터마크는 비례합니다 managed
.
일반적으로 내 시스템의 워터마크는 1%에서 3% 사이입니다.
바라보다__setup_per_zone_wmarks(). (반품free_area_init_core(),set_dma_reserve(), 그리고 제출mm: 구조 영역에 새 필드 "management_pages"를 도입합니다..)
커널은 동적으로 워터마크를 추가할 수 있습니다(부스트_워터마크()) 필요하다면.
동작은 다음을 통해 조정될 수 watermark_boost_factor
있습니다 watermark_scale_factor
.문서/sysctl/vm.txt. 배율 계수의 기본값은 0.1%이고 향상 계수의 기본값은 배율 계수의 150%입니다.
min
내 시스템에서는 대부분 지역별 min
워터마크에 비례하여 워터마크가 설정됩니다 min_free_kbytes
. 커널은 기본값 min_free_kbytes
67584를 계산합니다. 관련된:min_free_kbytes
이 값을 계산하는 방법을 설명하세요..
"일반" 영역의 최소 워터마크가 왜 31449페이지 = 125796KiB로 표시되는지 모르겠습니다. 이는 소스 코드와 모순되는 것 같습니다. 지금까지는 이것이 버그나 하드웨어 오류라고밖에 생각할 수 없습니다. 이 질문을 보세요:내 최저 및 최고 워터마크가 Documentation/sysctl/vm.txt의 예측보다 높은 것 같습니다.