6 minute read

mysqld.sock 에 연결이 안되는 문제 에서 이어집니다.

SWAP ?

swap 은 쉽게 말해서 윈도우의 가상 메모리랑 똑같습니다. 그걸 리눅스에서는 swap 이라고 부릅니다.

메모리 용량이 항상 쪼들리는 micro 인스턴스를 쓰고 있노라면 가끔씩 mysql 이 어디론가 사라져 버리곤 합니다. 운영체제가 메모리를 확보하기 위해 백그라운드 프로세스를 임의로 꺼버리는데 운 나쁘게 mysql 이 당첨된 경우입니다.

서버는 살아 있는데 db는 꺼져 버렸으니 500 에러가 터지게 됩니다. 당장 메모리를 늘리는 방법이 있지만 (그리고 메모리를 늘리는 것을 권장합니다만) 당장 비용이 부담스럽다면 swap 을 사용하는 방법이 있습니다.

단순한 웹 서버라면 속도 차이도 별로 체감이 안됩니다.

SWAP 만들기

ubuntu 18을 기준으로 하겠습니다. 본인의 우분투 서버에 SSH로 접속합니다.

free -h 명령어를 사용해 현재 swap 이 사용중인지 검사합니다.

$ free -h
              total        used        free      shared  buff/cache   available
Mem:           3.6G        2.2G        483M         18M        984M        1.2G
Swap:            0B          0B          0B

현재는 swap 을 안 쓰고 있으니 total 0 입니다!

다음은 df -h 명령어를 사용해 디스크에 공간이 충분한지 볼까요?

# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            1.8G     0  1.8G   0% /dev
tmpfs           369M   19M  351M   5% /run
/dev/sda1        97G   14G   83G  15% /
tmpfs           1.9G     0  1.9G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/sda15      105M  3.6M  101M   4% /boot/efi
tmpfs           369M     0  369M   0% /run/user/1002
tmpfs           369M     0  369M   0% /run/user/1001

/dev/sda1 에 공간이 충분하다는 것을 확인했습니다~

그럼 다음 명령어로 swap 을 만듭니다.

$ sudo fallocate -l 1G /swapfile 

다음 명령어로 정상적으로 만들어졌는지 확인합니다.

$ ls -lh /swapfile
-rw-r--r-- 1 root root 1.0G Oct 24 03:18 /swapfile

위처럼 나왔다면 성공!

그럼 만든 swap 파일을 사용해 보겠습니다. 먼저 루트가 사용하도록 swap 파일의 권한을 바꿀게요.

$ sudo chmod 600 /swapfile
$ ls -lh /swapfile
-rw------- 1 root root 1.0G Oct 24 03:18 /swapfile

그 다음에, marking 과정을 거칩니다. swap 을 사용할 수 있도록 준비한다고 생각하시면 되요.

$ sudo mkswap /swapfile
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=702b83a7-d6f8-48ca-9e0f-30e6086dea0b

실제로 swap 을 사용설정 합니다.

$ sudo swapon /swapfile
$ sudo swapon --show
NAME      TYPE  SIZE USED PRIO
/swapfile file 1024M   0B   -2

마지막으로 free -h 로 확인해 볼게요~

$ free -h
              total        used        free      shared  buff/cache   available
Mem:           3.6G        2.2G        137M         18M        1.3G        1.2G
Swap:          1.0G          0B        1.0G

여기까지 따라했다면 완료! 참 쉽죠!

Comments