ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • swap 설정 하기!
    카테고리 없음 2019. 7. 5. 00:21
    728x90

    swap 설정하기

    2G 메모리를 가진 MongoDB 인스턴스에서 메모리가 부족하다는 메시지를 계속 받았다.

    메모리를 제외하고는 큰 문제가 없어서 확인을 해보니 swap 영역의 크기가 0 이었다. swap은 디스크를 메모리처럼 사용하는 거라, 성능에 좋지 않아서 기본설정이 사용하지 않도록 되어있다.

    MongoDB의 메모리 문제를 해결하기 위해 swap을 이용하기로 내부 결정을 하였다.

    설정은 다음과 같다.

    # swap 확인
    $> sudo swapon -s
    
    $> sudo  free -m
                  total        used        free      shared  buff/cache   available
    Mem:           1955         271        1169           0         515        1537
    Swap:             0           0           0
    
    #swap 만들기
    $> sudo fallocate -l 4G /swapfile
    $> sudo chmod 600 /swapfile
    $> sudo mkswap /swapfile
    Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
    no label, UUID=67f5331d-d17a-4c67-9d77-b819114a9aab
    
    $> sudo swapon /swapfile
    sudo swapon -s
    Filename                Type        Size    Used    Priority
    /swapfile                                  file        4194300    0    -2
    
    $> free -m
                  total        used        free      shared  buff/cache   available
    Mem:           1955         271        1169           0         515        1537
    Swap:          4095           0        4095

    마지막으로 서버가 재부팅 되었을때, swap파일이 적용되도록 수정을 해야 한다.

    $> sudo vi /etc/fstab
    
    # 가장 아래 부분에 추가 
    /swapfile   none    swap    sw    0   0

    추가 swap 삭제 하기

    # swap 메모리 제거
    $> sudo swapoff -v /swapfile
    swapoff /swapfile
    
    # 물리 파일 제거
    $> sudo rm -f /swapfile

    swap 메모리를 제거할때 여유 공간이 없을 경우 다음과 같은 오류가 발생 할수 있다.

    $> sudo swapoff -a
    swapoff: /swapfile: swapoff failed: Cannot allocate memory

    이럴때는 서비스를 종료 해서 메모리를 충분히 확보후 실행하면 된다.

    참조 링크

    728x90
Designed by Tistory.