태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.


현재 아마존 라이트세일의 가장 작은 모델에서 워드프레스를 사용하고 있습니다. (현재는 2개)


메모리가 작다보니 (512MB) mysql이 자꾸 죽는 현상이 발생하고 있습니다. (mysql 로그 파일을 보면 innodb에서 메모리 부족 에러가...)


물리 메모리를 늘리기 위해서는 플랜을 상향해야 하지만, 그만큼 비용이 증가하겠죠.


가벼운 서비스를 하는데 플랜을 상향하고 싶지는 않아, 스왑 메모리를 사용하도록 설정해 보겠습니다.

(당연히 스왑 메모리는 (가상)디스크를 메모리로 사용하기 때문에 물리 메모리보다 느리지만, 그래도 SSD이니 예전 HDD에 비해서는 빠르지 않을까 싶습니다. 그리고 운영체제에서도 무작정 스왑 메모리를 RAM처럼 사용하는게 아니고 사용 빈도에 따라 영역 배치에 대한 최적화 조절을 할테니..)


이와 깉이 메모리가 부족한 상황을  피할 수 있는 방법 중에 하드 디스크의(요즘은 대부분이 SSD를 쓰지만...) 일부를 스왑 메모리로 사용 하는 경우가 많습니다. 스왑 메모리를 사용하기 위해 리눅스에서는 스왑 파티션을 만들어 사용하기도 하고 스왑 파일을 만들어 사용 할 수도 있습니다.


그러나, 라이트세일 인스턴스는 (AWS EC2 t2.micro 인스턴스도 마찬가지) 파티션을 따로 만들 수 없습니다. 따라서 이 글에서는 스왑 파티션이 아니라 스왑 파일을 만들어 스왑 메모리로 사용하도록 합니다.



먼저 스왑 메모리가 잡혀 있는지 확인합니다. (스왑 메모리가 이미 있고 충분하지 않다면, 새 스왑 파일을 추가 하든지, 삭제후 충분한 크기로 다시 잡습니다. 참고로 스왑 파일을 삭제하는 방법은 'swapoff 스왑파일명' 으로 스왑을 정지시키고 해당 파일을 삭제 하면 됩니다.)


$ free -m


스왑 메모리가 잡혀 있으면, 얼마나 잡혀 있는지 크기가 나옵니다. 스왑이 없으면 크기가 0으로 나옵니다. (-m 옵션은 MB단위)


또는...


$ swapon -s


스왑이 잡혀 있지 않으면 아무것도 나오지 않고, 스왑이 잡혀 있으면 상태가 나옵니다.





스왑 메모리 잡힌것이 없다면, 아래와 같은 순서로 스왑 메모리를 만듭니다.



먼저 스왑메모리로 사용할 파일을 만든다. 기본 플랜의 램이 512M이므로 너무 작아, 아래에서는 1GB를 잡았다. (블럭사이즈 1M x 1024개 = 1GB)


$ sudo dd if=/dev/zero of=/swapfile bs=1M count=1024


정상적으로 만들어 졌는지 확인한다.


$ cd /

$ ls -l




만약, 파일 크기가 만들때 설정한 파일의 크기와 다르다면, dd 명령어를 무엇인가 잘못 사용한 것입니다. rm 명령어로 삭제하고 다시 확인하여 정확히 생성합니다.



이제 만든 파일을 스왑파일로 포맷 합니다.


$ sudo mkswap /swapfile



스왑 메모리를 활성화 합니다.


$ sudo swapon /swapfile




위 화면과 같이 퍼미션은 0600 으로 바꿔줄 것을 권고하고 있습니다. 바꿔줍니다.


$ sudo chmod 600 swapfile



'swapon -s' 또는 'free -m' 으로 스왑이 잡혔는지 확인합니다.




제대로 잡혔으면, 부팅할때마다 자동으로 스왑파일을 활성화 하도록 하기 위해, /etc/fstab 파일을 수정하여 아래의 내용을 추가합니다.


/swapfile swap swap defaults 0 0



예) 



이제 서버가 재부팅 되어도 자동으로 스왑 메모리를 사용합니다.


실제로 안정적이 되었는지는 문제가 되는 서비스를 몇일 정도 두고 봐야 합니다.


하지만 로그상으로 메모리 부족 현상때문에 문제가 발생한 것이라면, 도움이 될 것으로 생각됩니다.


.

.

.


PS. 위의 설정을 해 놓고 서버를 돌린지 약 이틀 정도가 되었습니다. 메모리 사용 상황을 한번 보죠.



물리 메모리(RAM)는 거의 다 사용되었고 (Mem이 25MB정도 남았네요.) 스왑 메모리는 약 149MB정도 사용하고 있습니다.


아직까지는 하루가 멀다하고 죽어대던 DB가 한번도 죽지 않고 정상 동작을 하고 있습니다. 다만 스왑 메모리 사용량이 조금씩 계속 높아지고 있는데, 좀더 추세를 모니터링 해 봐야 할 것 같습니다.






(C) 2017 WingsNote.com (무단 복제 및 게시 금지, 링크 허용)



Posted by 날개

댓글을 달아 주세요

  1. 소액결제현금 2017.12.14 16:49 신고 Address Modify/Delete Reply

    잘보고 가요 ^^

  2. astheboy 2017.12.27 14:18 신고 Address Modify/Delete Reply

    저도 라이트세일에 워드프레스를 올렸었는데 계속 서버가 죽는 경우가 발생해서 문제점을 찾고 있었는데 여기 블로그를 통해 해답을 얻어갑니다. 그런데 정상적으로 1gb의 스왑파일을 활성화까지 했는데
    /etc/fstab 에 해당 파일 내용을 어떻게 수정하는지 자세히 좀 알려주실 수 있을까요?

    • 날개 2017.12.27 15:10 신고 Address Modify/Delete

      해당 파일 수정은 다양한 방법으로 할 수 있기 때문에 (사실상 텍스트 파일입니다) 사용하시는 텍스트 에디터를 통해 수정하셔야 합니다.
      제일 간단한 방법은 vi를 사용하는 것이고요, vi 를 사용하실 수 있으면,
      sudo vi /etc/fstab
      으로 파일을 열고, 윗 글에 적어놓은 한 줄을 추가하거나 (이미 있으면) 수정하신후 저장하면 됩니다.

티스토리 툴바