swappiness는 어떻게 구성합니까?


345

스왑 피스를 구성하는 단계별 간단하고 쉬운 방법이 필요합니다.


17
하나의 라이너sudo bash -c "echo 'vm.swappiness = 15' >> /etc/sysctl.conf"
redanimalwar

8
@redanimalwar 또한 sudo sysctl -psysctl.conf 파일에서 새 swappiness 값을로드 하기 위해 실행해야 합니다. 그렇지 않으면 다음에 다시 부팅 할 때 변경 사항이 적용됩니다.
waldyrious

답변:


509

Linux 커널은 스왑 파일이라고하는 스왑 파일 사용 빈도를 제어하는 ​​조정 가능한 설정을 제공합니다.

swappiness 설정이 0 이면 메모리가 부족한 경우를 제외하고 디스크를 피할 수 있으며, swappiness 설정이 100 이면 프로그램이 디스크에 거의 즉시 스왑됩니다.

Ubuntu 시스템의 기본값은 60입니다. 즉, 메모리 사용량이 RAM의 절반 정도 인 경우 스왑 파일이 상당히 자주 사용됩니다. 다음을 실행하여 자신의 시스템 스왑 성 값을 확인할 수 있습니다.

one@onezero:~$ cat /proc/sys/vm/swappiness
60

4GB의 RAM이 있으므로이를 10 또는 15로 낮추고 싶습니다. 그러면 스왑 파일은 RAM 사용량이 약 80 또는 90 % 인 경우에만 사용됩니다 . 개방 시스템 swappiness 값을 변경하려면 /etc/sysctl.conf같은 루트를 . 그런 다음이 줄을 파일에 변경하거나 추가하십시오.

vm.swappiness = 10

변경 사항을 적용하려면 재부팅하십시오.

시스템이 계속 실행되는 동안 값을 변경할 수도 있습니다.

sysctl vm.swappiness=10

동일한 효과를 얻기 위해 재부팅 swapoff -a한 후 swapon -a다시 실행하는 대신 루트로 실행하여 스왑을 지울 수도 있습니다 .

스왑 공식을 계산하려면

free -m (total) / 100 = A

A * 10

root@onezero:/home/one# free -m
             total       used       free     shared    buffers     cached
Mem:          3950       2262       1687          0        407        952
-/+ buffers/cache:        903       3047
Swap:         1953          0       1953

따라서 총계는 3950/100 = 39.5 * 10 = 395입니다

따라서 10 % (395MB)의 램이 남아 있으면 스왑을 사용하기 시작합니다.


                                          도움말 우분투 교환

                                           교환이란 무엇입니까

swappiness 매개 변수는 커널이 프로세스를 실제 메모리에서 스왑 디스크로 옮기는 경향을 제어합니다. 디스크는 RAM보다 속도가 느리기 때문에 프로세스가 메모리에서 너무 적극적으로 이동하면 시스템 및 응용 프로그램의 응답 시간이 느려질 수 있습니다.

  • swappiness 0에서 100 사이의 값을 가질 수 있습니다.
  • swappiness=0:
    • 커널 버전 3.5 이상 : 스왑 성을 비활성화합니다.
    • 3.5 이전의 커널 버전 : 가능한 한 오랫동안 실제 메모리에서 프로세스를 교환하지 않습니다.
  • swappiness=1:
    • 커널 버전 3.5 이상 : 완전히 비활성화하지 않고 최소 스왑 피스.
  • swappiness=100:
    • 커널에게 물리적 메모리에서 프로세스를 적극적으로 교환하고이를 캐시로 이동하도록 지시합니다.

http://en.wikipedia.org/wiki/Swappiness를 참조하십시오 .

우분투의 기본 설정은 swappiness=60입니다. swappiness의 기본값을 줄이면 일반적인 Ubuntu 데스크탑 설치의 전반적인 성능이 향상 될 것입니다. 값 swappiness=10이 권장되지만 자유롭게 실험 해보십시오.


91 % 에서 스왑을 사용하기 시작했습니다 :

여기에 이미지 설명을 입력하십시오 나는에서 RAM을 사용하도록 내 시스템 및 VM을 구성함에 따라 90 % 에서 90 % 스와핑 없었다.

그 후 Firefox & Shutter와 같은 일부 응용 프로그램을 열었고 RAM 사용량이 90 % 이상이므로 스와핑을 시작했습니다 .


118
스왑 률이 100으로 설정 되어도 프로그램이 즉시 스왑되지 않으며, 60 또는 90 값이 램이 60 또는 90 % 찼을 때 스왑이 사용되는 것을 의미하지도 않습니다. 캐시가 부족한 페이지를 훔치거나 메모리가 부족할 때 일부 메모리를 확보하기 위해 페이지를 스와핑하는 것이 선호의 비율입니다. 값이 낮 으면 캐시에서 페이지를 훔치는 것이 좋으며 값이 높으면 페이지를 바꾸고 시도하는 것이 좋습니다. 이 설정은 메모리가 거의 (거의) 모두 사용되면 영향을 미치며 커널은 일부를 해제하는 방법을 선택해야합니다.
psusi

67
프로그램을 실행하여 사용하지 않는 RAM이 디스크 캐시로 사용된다는 점을 지적해야합니다. 따라서 스왑 피스를 줄이면 프로그램이 스왑되지 않을 가능성이 높아지지만 동시에 크기가 줄어 듭니다. 디스크 액세스 속도가 느려질 수 있습니다. 따라서 실제 성능에 미치는이 설정의 효과는 간단하지 않습니다. 물론 실험 해 볼 수는 있지만 주제를 충분히 이해하는 사람들이 기본값을 설정 한 것 같습니다.)
Sergey

14
@Sergey와 그것의 아이러니는 작은 RAM을 가진 사람들은 성능을 높이기 위해 모든 트릭을 시도 할 가능성이 가장 높으며 60 명 이상이 최고의 인물이 될 사람들이 될 가능성이 높습니다. 우리는 10 톤으로 설정합니다. 왜냐하면 우리는 많은 양의 RAM을 잃어 버릴 것입니다.
존 한나

6
@Freedom_Ben : 참조 linuxatemyram.com을 :)
세르게이

5
여기에 비슷한 토론을 남겨주세요 – unix.stackexchange.com/questions/88693/…
Elijah Lynn
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.