• Linux swap 줄이기 필요없어서 삭제

    Linux swap 줄이기 필요없어서 삭제

    Linux swap 줄이기

    Linux swap 파일 필요 없어서 삭제하는 과정입니다.

    Linux swap 줄이기

    처음에는 스왑 파일이 충분하면 메모리가 부족하더라도 어느정도 감당을 해 줄것이라고 믿었습니다.

    하지만 AWS 몇개월 운영하면서 스왑 파일이 웹서버 운영에 있어서 전혀 필요없다는 것을 알게되었습니다.

    오히려 2기가, 10기가 설정해놓은 SSD 용량만 낭비하는것을 깨닫고 전혀 사용하지 않는 서버에 swap 파일은 삭제중입니다.

    [root]# /p.sh 
    MEMORY percent is 40%
    MEMORY limit is over 70%
    total used free shared buff/cache available
    Mem: 957 235 142 0 578 568
    Swap: 2047 26 2021
    Filesystem Size Used Avail Use% Mounted on
    devtmpfs 468M 0 468M 0% /dev
    tmpfs 479M 0 479M 0% /dev/shm
    tmpfs 479M 412K 479M 1% /run
    tmpfs 479M 0 479M 0% /sys/fs/cgroup
    /dev/nvme0n1p1 8.0G 7.0G 1.1G 88% /
    tmpfs 96M 0 96M 0% /run/user/0
    [root]# swapoff -v /_swapfile
    swapoff /_swapfile
    
    

    처음에 고민을 살짝 했습니다.

    서버 메모리가 1G짜리 2G짜리에서는 스왑메모리가 그래도 아주 조금이긴하지만 사용하겠지~ 라는 제 지극히 개인적인 생각떄문입니다.

    Linux swap 줄이기 메모리 사진

    하지만 SSD 용량 2GB가 그냥 놀고 있는듯 하여 이 또한 모두 일괄 삭제하는 중입니다.

    보고 계시는 글의 서버도 스왑파일을 삭제합니다.

    Linux swap 줄이기 삭제 방법

    1. 스왑 해제를 합니다.

    명령어는 간단합니다.

    swapoff 명령어를 이용하여 스왑파일을 -v 옵션 지정으로 실행만 하면됩니다.

    swapoff -v /_swapfile

    2. 부팅 시 자동 스왑 등록을 제거합니다.

    그 이후에 해야할 부분은 스왑 활성화 명령어가  crontab에 자동화되어져있다면 크론탭에서 제거를 해야하며

    vi /etc/fstab

    fstab 에 부팅때 자동 실행되도록 설정되어져있다면 swap 항목을 제거해야합니다.

    제거하고 에디터에서 ESC -> wq 치면 저장하고 나오게됩니다.

    이제 스왑 파일이 토탈 메모리 용량과 사용된 용량 남은 용량이 모두 0으로 나오면 해제 된 상태입니다.

    마지막으로 스왑 파일을 삭제하고 재부팅 하면 끝입니다.

    3. 스왑 파일을 삭제합니다.

    rm -rf /_swapfile
    Linux swap 줄이기

    SSD 용량 2기가 바이트가 늘어난것을 확인합니다.

    4. 재부팅 합니다.

    reboot

    재부팅을 해야지만 서버가 정상적으로 동작하는지 확인 할 수 있으니 꼭 재부팅을 해야합니다.

    이제 정상적으로 스왑 파일이 삭제되었으며 하드 용량도 제대로 돌아왔습니다.

    수고하셨습니다.

    스왑 파일 생성 방법은 아래 링크를 통해 따라해보시기 바랍니다.

  • 아마존 aws ec2 swap 파일 추가

    아마존 aws ec2 swap 파일 추가

    아마존 AWS EC2인스턴스 사용중 메모리 부족 현상이 생겨 SSD를 이용하여 스왑파일을 만들었습니다.

    아마존에서 만드는 방법까지 친절하게 소개하고 있어 이부분을 바탕으로 만들어서 사용중입니다.

    현재는 메모리 부족이 사라진 상태이며 블록은 128MB대신 1MB로 수정하였습니다.

    스왑파일은 파일과 헤깔리지 않기 위해서 언더바 _ 를 파일명 앞에 지정하였습니다.

    아래 fallocate 또는 dd 명령어로 스왑파일을 만들 수 있습니다.

    sudo fallocate -l 10GB /_swapfile
    sudo dd if=/dev/zero of=/_swapfile bs=1M count=2048
    #권한 설정
    sudo chown root:root /_swapfile
    sudo chmod 600 /_swapfile
    
    #스왑 포맷 설정
    sudo mkswap /_swapfile
    
    #스왑 파일 등록
    sudo swapon /_swapfile
    sudo swapon -a

    위의 내용까지는 그대로 복사해서 붙여넣기 하면 자동으로 만들어지고 권한까지 배정받습니다.

    아래 내용은 vi 명령어로 마지막 줄에 스왑파일을 넣어주어 재부팅마다 자동으로 실행할 수 있습니다.

    sudo vi /etc/fstab
    /_swapfile swap swap defaults 0 0
    #(마지막에 추가)
    #또는 아래처럼 추가
    /_swapfile none swap sw 0 0

    최종적으로 메모리 상태를 확인해보고 재부팅하면 스왑파일이 생긴 것을 확인 할 수 있습니다.

    자동실행 하기 위한 스왑파일 명령어 넣는방법

    #rc.local 등록하여 부팅때 자동실행
    vi /etc/rc.local 
    swapon /_swapfile
    
    #crontab -e 등록하여 부팅때 자동실행
    crontab -e
    @reboot /sbin/swapon /_swapfile
    
    #fstab 등록하여 자동실행
    vi /etc/fstab
    /_swapfile swap swap auto 0 0
    
    #재부팅해야지만 적용됩니다.
    reboot 
    sudo swapon -s
    free -m

    스왑을 만들었다면 이제 스왑파일에 더 집중할수 있도록 만들어주어야합니다.

    스왑 비중 늘리는 방법 바로가기 (재부팅 하면서 에러 안나도록 해야합니다)

    참조: 아마존 스왑파일 설명 바로가기