[리눅스] 스왚 메모리를 쓰는 정도를 조절하기

  스왚 메모리(디스크에 할당하는 가상 메모리)를 쓰는 정도는 vm.swappiness로 조절할 수 있다. vm.swappiness 값은 다음 두 가지 방법으로 확인할 수 있다.

$ cat /proc/sys/vm/swappiness
30
$ sysctl vm.swappiness
vm.swappiness = 30

  vm.swappiness의 기본값은 60으로 많이 알려져 있는데, Centos 7에서의 기본값은 30이다. 이 값이 100에 가까울수록 실제 메모리가 넉넉하더라도 스왚 메모리를 많이 쓰고, 0에 가까우면 실제 메모리가 넉넉할 때에 스왚 메모리를 거의 쓰지 않는다.주1

  스왚 메모리를 되도록 쓰지 않게 하고 싶다면, 다음 두 가지 방법으로 vm.swappiness를 곧바로 바꿀 수 있다.

$ echo 0 > /proc/sys/vm/swappiness
$ sysctl vm.swappiness=0
vm.swappiness = 0

  sysctl로 넣은 값은 운영체제를 다시 띄우면 기본값으로 돌아간다. 리눅스를 다시 띄운 뒤에도 vm.swappiness 값이 쭉 이어지게 하려면, /etc/sysctl.conf에 'vm.swappiness = 0' 꼴로 끼워 넣는다.

# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).

vm.swappiness = 0;

/etc/sysctl.conf에 넣은 설정값은 운영체제를 시작할 때에 적용된다.

〈주석〉
  1. vm.swappiness가 0이더라도 스왚 메모리를 전혀 안 쓰는 것은 아니고, 0으로 두면 페이지 캐시를 너무 탈탈 정리해서 입출력이 많아지므로 1로 두는 것이 더 나을 수 있다고 한다. (참고 : 메모리 재할당과 커널 파라미터) back
글 걸기 주소 : 이 글에는 글을 걸 수 없습니다.

덧글을 달아 주세요