-
스왑메모리 사용 관련 설정(vm.swappiness)Dev/Linux 2020. 2. 1. 10:44반응형
커널 문서를 보면 아래와 같이 정의하고 있다.
---
swappiness
This control is used to define how aggressive the kernel will swap memory pages. Higher values will increase aggressiveness, lower values decrease the amount of swap. A value of 0 instructs the kernel not to initiate swap until the amount of free and file-backed pages is less than the high water mark in a zone.
The default value is 60.
---
먼저 스왑메모리는 시스템의 메인메모리(RAM) 와는 별도로 디스크의 공간을 일부 스왑공간으로 설정해 놓고 메인메모리의 보조적인 역할을 담당하는데 메인메모리가 부족할 경우 이 스왑공간으로 옮겨 놓고 메인메모리의 사용가능한 공간을 확보하며 이를 스와핑이라한다.이때 얼마나 적극적으로 스와핑할지를 결정하는 파라메터가 vm.swappiness 이다.
swap_tendency = mapped_ratio/2 + distress + vm_swappiness;
위 공식에서
mapped_ratio : 주어진 메모리 존내부에서 전체 메인 메모리중 사용중인(mapped) 공간의 비율
distress : 0-100, 메모리 공간 확보를 요구 정도, 공간확보 요구가 많아질 수록 높아진다.
swap_tendency: 100 에 도달할 경우 스와핑이 시작된다.
vm_swappiness: 스와핑 조절을 위한 설정 파라메터
따라서 최종적으로 swap_tendency 는 메모리 사용정도가 높고 공간확보 요구가 많을 수록 좀더 적극적으로 메인 메모리 공간을 확보하며 이때 vm_swappiness 값을 통해 가중치를 적용할 수 있다.
리눅스에서 swappiness 의 기본값은 60 이며 따라서 distress 가 최초 0이라고 가정했을 때 메인 메모리의 사용율이 %80 일때 부터 swap_tendency 가 100 이 되어 스와핑을 진행한다.
만약, 상대적으로 swappiness 를 10 이하로 설정할 경우 메인 메모리 사용율이 위와 같이 %80 이라고 했을 때 distress 값이 50 이상 오르지 전까지는 스와핑이 시작되지 않는다.
반응형'Dev > Linux' 카테고리의 다른 글
/dev/random 과 /dev/urandom 의 차이 (1) 2024.02.05 유저 프로세스 개수 제한 - ulimit -u <최대값> (0) 2024.02.03 Fedora 27 에서 28 로 업그레이드 (0) 2020.01.21 Vi(Vim) 유용한 키사용 (계속 추가중) (0) 2019.11.22 파일내 특정 키워드를 포함하는 모든 라인 삭제 (0) 2019.11.13