본문 바로가기
Linux/서버구축 1.2.3...

(3) 워드프레스를 위한 리눅스 서버 구축 - 가상메모리(swap)설정

by aegypius 2021. 4. 18.
728x90
반응형

가상메모리의 설정


  아무래도 CentOS 7을 기준으로 작성하는 것이지만 다른 배포판을 사용한다 하더라도 큰 무리는 없을 것이다. 권장 메모리의 크기라는 것이 존재는 하지만 이는 어디까지나 권장 사항일 뿐이라는 것을 참고하자.

설치된 RAM 용량 권장 SWAP 용량 (최대절전 허용) 권장 SWAP용량
 2GB or less  RAM 용량의 2배  RAM 용량의 3배
 2GB - 8GB  RAM 용량  RAM 용량의 2배
 8GB - 64GB  최소 4GB ~ RAM 용량의 0.5 배  RAM 용량의 1.5배
 64GB or more  최소 4GB  최대절전이 권장되지 않음

 

  free 명령어로 현재 서버의 메모리(RAM) 상태와 가상메모리(swap)의 설정내용의 확인이 가능하다.

[root@webpress /]# free -h
              total        used        free      shared  buff/cache   available
Mem:           3.7G        205M        3.2G         16M        328M        3.3G
Swap:            0B          0B          0B
[root@webpress /]#

  RAM의 용량이 3.7GB(4G) 이며, 가상메모리는 설정되어 있지 않다. 4GB의 가상메모리(swap)를 만들어보자.

  swap파일의 이름은 swapfile로 설정할 것이며, 최상위 디렉토리(/)에 둘 것이다. 아래와 같이 fallocate를 이용해서 스왑파일을 생성하자.

[root@webpress /]# fallocate -l 4G /swapfile
[root@webpress /]# ll
total 4194368
lrwxrwxrwx.  1 root root          7 Mar 17 03:16 bin -> usr/bin
dr-xr-xr-x.  5 root root       4096 Mar 17 03:29 boot
drwxr-xr-x  19 root root       3000 Apr 14 12:49 dev
drwxr-xr-x. 76 root root       4096 Apr 14 21:39 etc
drwxr-xr-x.  3 root root       4096 Apr 14 15:18 home
lrwxrwxrwx.  1 root root          7 Mar 17 03:16 lib -> usr/lib
lrwxrwxrwx.  1 root root          9 Mar 17 03:16 lib64 -> usr/lib64
drwx------.  2 root root      16384 Mar 17 03:16 lost+found
drwxr-xr-x.  2 root root       4096 Apr 11  2018 media
drwxr-xr-x.  2 root root       4096 Apr 11  2018 mnt
drwxr-xr-x.  3 root root       4096 Apr 14 12:38 opt
dr-xr-xr-x  87 root root          0 Apr 14 12:49 proc
dr-xr-x---.  3 root root       4096 Apr 14 12:48 root
drwxr-xr-x  23 root root        640 Apr 14 17:30 run
lrwxrwxrwx.  1 root root          8 Mar 17 03:16 sbin -> usr/sbin
drwxr-xr-x.  2 root root       4096 Apr 11  2018 srv
-rw-r--r--   1 root root 4294967296 Apr 14 22:22 swapfile
dr-xr-xr-x  13 root root          0 Apr 14 18:26 sys
drwxrwxrwt.  8 root root       4096 Apr 14 13:55 tmp
drwxr-xr-x. 13 root root       4096 Mar 17 03:16 usr
drwxr-xr-x. 19 root root       4096 Mar 17 03:26 var
[root@webpress /]#

 

  스왑파일은 root 계정만이 읽거나 쓸 수 있어야 하므로 600의 퍼미션으로 설정해야 한다.

[root@webpress /]# chmod 600 swapfile

 

  그리고 mkswap를 이용해서 파일이나 파티션을 스왑영역으로 설정해야 한다. 스왑파일로 사용하기 위해서 지금 만들어둔 swapfile을 스왑영역으로 설정하자. 아래와 같다.

[root@webpress /]# mkswap /swapfile
Setting up swapspace version 1, size = 4194300 KiB
no label, UUID=7f58120e-6837-46a2-9b3e-b0614364fae8
[root@webpress /]#

 

  이제 swapon 명령을 사용하여 스왑파일을 활성화 하면된다.

[root@webpress /]# swapon /swapfile
[root@webpress /]# free -h
              total        used        free      shared  buff/cache   available
Mem:           3.7G        208M        3.2G         16M        330M        3.3G
Swap:          4.0G          0B        4.0G
[root@webpress /]#

 

  시스템을 리부팅 했을 때에도 스왑파일의 활성화를 유지하려면 /etc/fstab 마지막 줄에 다음 내용을 추가하자.

/swapfile swap swap defaults 0 0

 

  이제 시스템을 리부팅하여도 스왑파일은 활성화된다.  *스왑파일을 삭제하기 위해서는 swapoff명령으로 스왑파일을 비활성화 한 후에 삭제할 수 있다.


아래의 내용은 참고만 하자.

swappiness

  swappiness는 시스템이 스왑공간을 사용하는 빈도를 설정한다.  이 값의 범위는 0 ~ 100 이며,  값이 높을수록 스왑공간을 적극적으로 활용하게 되며, 반대로 값이 낮을수록 스왑공간의 활용도가 떨어진다.

  스와핑은 램의 데이터를 시스템의 저장장치(하드디스크, SSD 등)의 특정위치(스왑파일 혹은 스왑파티션)에 저장하여 RAM의 가용메모리를 확보하는 것이기에...스와핑이 너무 자주 일어나면 시스템의 성능이 저하될 수 있으며, 필요할 때에 제대로 작동하지 않아도 문제일 것이다. 시스템의 swappniss값은 /proc/sys/vm/swappiness 에 저장되어 있다.

  아래와 같이 sysctl 명령을 이용해서 swappiness의 값을 변경할 수 있으며 시스템을 리부팅하게되면 기본값으로 돌아온다. 

[root@webpress /]# cat /proc/sys/vm/swappiness
30
[root@webpress /]# sysctl vm.swappiness=45
vm.swappiness = 45
[root@webpress /]# cat /proc/sys/vm/swappiness
45

  물론 /proc/sys/vm/swappiness를 직접 편집하여 값을 수정하면 영구적으로 값이 변경되기는 하지만 가급적이면 기본값을 사용하자. swappiness의 수정을 고려해야 할 사항이라면..시스템을..업그레이드..하는..것이...-_-;

728x90
반응형

댓글