Linux,Unix,BSD

[Linux] 메모리 스왑(SWAP) 추가하기

채윤아빠 2020. 4. 24. 14:26
728x90
반응형

메모리 스왑이란?

리눅스를 설치할 때 기본적으로 메모리에 대한 스왑 파티션을 설정하여 생성된 스왑을 이용하게 됩니다.

메모리 스왑에는 가상 메모리 공간으로 실제 물리적인 메모리에 사용할 공간이 부족한 경우, 메모리 스왑으로 예전 데이터를 옮겨 물리적 메모리의 공간을 확보하여 여러 애플리케이션을 동시에 실행할 수 있도록 해줍니다.

시스템을 운영하다보면, 메모리 스왑도 부족하여 시스템이 불안정해질 수 있는데, 이를 방지하기 위해서는 메모리 스왑을 동적으로 늘려주어야 하는데, 본 문서에서 스왑을 늘리는 방법에 대하여 정리합니다.

 

메모리 스왑 용량 확인하기

메모리 스왑의 용량 확인은 swapon, free, top 등 여러 가지 명령을 이용하여 확인할 수 있습니다.

 

swapon


swapon -s

Filename                               Type             Size    Used    Priority
/dev/dm-1                              partition    2097148    2029188    -2
/home/swapfile                         file            1999996    1542252    -3

free


free -h
              total        used        free      shared  buff/cache   available
Mem:            15G        9.7G        173M        126M        5.6G        4.1G
Swap:          3.9G        3.9G          0B

top


top - 13:38:28 up 263 days, 21:09,  3 users,  load average: 1.09, 0.76, 0.61
Tasks: 2285 total,   1 running, 2284 sleeping,   0 stopped,   0 zombie
%Cpu(s):  5.5 us,  9.2 sy,  0.0 ni, 85.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 16230504 total,   217784 free, 11227200 used,  4785520 buff/cache
KiB Swap: 34097144 total, 31999476 free,  2097668 used.  3152500 avail Mem

 

메모리 스왑 동적 추가하기

메모리 스왑을 파티션이 아닌 파일로 늘려주는 방법은 다음과 같습니다.

먼저, 메몰 스왑을 사용할 파일을 생성하여 주고, 접근 권한을 "600"으로 설정합니다.


dd if=/dev/zero of=/home/swapfile bs=1024 count=32000000
32000000+0 records in
32000000+0 records out
32768000000 bytes (33 GB) copied, 120.656 s, 272 MB/s

chmod 0600 /home/swapfile

메모리 스왑으로 사용할 파일을 스왑에서 이용할 수 있도록 초기화를 수행합니다.


mkswap /home/swapfile
Setting up swapspace version 1, size = 31999996 KiB
no label, UUID=acb3927e-9363-430c-9994-9831ef661f96

스왑으로 이용할 파일을 메모리 스왑에 추가합니다.


swapon /home/swapfile

위와 같이 동적으로 메모리 스왑을 추가한 이후 스왑의 상태는 다음과 같습니다.


swapon -s
Filename                                Type            Size    Used    Priority
/dev/dm-1                               partition       2097148 2097148 -2
/home/swapfile                          file    1999996  7168   -3
/home/swapfile2                         file    31999996    0    -4

 

메모리 스왑 파일 설정 변경

"/etc/fstab" 파일에 메모리 스왑 파일 설정을 다음과 같이 추가합니다. 그러면 재부팅 이후에도 동적으로 추가한 메모리 스왑 파일을 그대로 사용합니다.


/swapfile swap swap defaults 0 0

Ubuntu-16.04 이전 버전에서는 "fstab"을 수정하지 않고, "/etc/rc.d/rc.local" 파일에 다음과 같은 내용을 추가하여, 서버를 재시작하여도 메모리 스왑 파일에 대한 설정이 그대로 적용되도록 할 수도 있습니다.


swapon /home/swapfile

 

참고자료