가상메모리의 설정
아무래도 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의 수정을 고려해야 할 사항이라면..시스템을..업그레이드..하는..것이...-_-;
'Linux > 서버구축 1.2.3...' 카테고리의 다른 글
(6) 워드프레스를 위한 리눅스 서버 구축 - 웹서버1 (설치와 기본설정) (0) | 2021.04.18 |
---|---|
(5) 워드프레스를 위한 리눅스 서버 구축 - 네임서버1 (설치와 기본설정) (0) | 2021.04.18 |
(4) 워드프레스를 위한 리눅스 서버 구축 - ssh, [s]ftp[s]의 설정 (0) | 2021.04.18 |
(2) 워드프레스를 위한 리눅스 서버 구축 - 서버의 시간(타임존) (0) | 2021.04.18 |
(1) 워드프레스를 위한 리눅스 서버 구축 - 사용자 계정 추가와 SSH 설정 (0) | 2021.04.18 |
댓글