만약 현재 운영 중이 서버 사양이 CPU 1 Core & 1G Memory Under 일 경우,

노드 스타트 직후 Block Sync 수치를 따라잡기 위해 서버의 자원을 최대한 사용할 때

메모리가 부족하여 시스템이 반응이 없거나(먹통) 멈춰버리게 된다. 시스템 다운은 CPU 사양보다

메모리 자원이 부족할 때 주로 발생한다 (CPU는 속도의 문제, 메모리는 동작 불능의 문제)

아래 설명은 물리적 메모리 자원의 한계를 하드디스크 스와핑 기능을 통해 극복하는 방법이다

  1. 현재 시스템 Swap 활성화 유무 확인

    현재 할당된 swap 파일 또는 swap 파티션의 swap 용량을 확인하기 위해서 아래 명령을 실행한다

    sudo su

    cd

    free

               total        used        free      shared  buff/cache   available
    

    Mem:           486M         45M        114M        1.7M        326M        410M

    Swap:          0B          0B        0B

    위의 여유 메모리 확인 명령으로 확인할 때 Swap되는 메모리는 없는 것으로 보인다

    참고: 클라우드 서버일 경우 인스턴스 생성 직후에는 OS 외에는 가장 기본적인 프로그램만 설치된 상태이므로 별도의

    메모리 스와핑 설정은 되어 있지 않기 때문에 이를 활용하지 않으면 부득이 고사양으로 업그레이드해야 하는 상황이 발생한다

    2G 수준의 메모리를 가지고 있다고 하더라도 싱크 캐치업 상황이나 원활한 운영을 위해 본 스왑 기능을 추가하는 것을 추천한다

    만약, 아래 명령의 결과 출력이 없다면 swap 파티션 또는 swap 파일이 없는 상태이므로 아래 설명에 따라 계속 진행한다

    swapon -s

  2. Swap 활성화 및 파일 생성

    아래 명령은 4G 크기의 Swap 파일을 생성하는 명령이며, 용량 또는 파일이름은 원하는대로 변경하여 입력해도 된다

    fallocate -l 4G /swapfile

    chmod 600 /swapfile

  3. Swap 파일 초기화 설정

    아래 명령을 실행하여 위에서 생성한 파일을 Swap 파일로 지정하고 초기화한다

    mkswap /swapfile

    Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)

    no label, UUID=4f511657-bfc2-420d-a798-fa9e9d5f1b0a

    swapon /swapfile

  4. Swap 기능 동작 확인

    swapon 명령을 이용하여 swap 장치를 확인하면 정상적으로 swap 파일이 동작하는 지 확인 할 수 있다

    swapon -s

    Filename Type Size Used Priority

    /swapfile                            file    4194300 0 -2

    아래의 여유 메모리 확인 명령으로 Swap 메모리가 추가되었는 지 확인한다

    free

    캡쳐화면은 8G로 스왑 설정한 상태

    캡쳐화면은 8G로 스왑 설정한 상태

  5. 부팅환경 설정

    nano /etc/fstab

    /etc/fstab 파일을 열고 아래 한 줄 설정을 복붙하고 저장하여 리부팅 후에도 자동으로 swap 파일이 사용되도록 설정한다

    /swapfile swap swap defaults 0 0

    Screen Shot 2022-06-12 at 2.25.57 AM.png

    리부팅 후 서버에 다시 로그인하여 swapon -sfree 명령으로 스왑 기능이 자동으로 활성화되는 지 확인한다

    참고로 테스트 목적으로 클라우드 서버를 저사양(1 CPU + 1G Mem)으로 평생 무료로 쓰고 싶다면 아래 링크를 참고하기 바란다

    오라클 클라우드 서버 가입부터 설정 그리고 트러블슈팅까지 망라되어 있고 총 7개의 포스팅이 모두 설명이 아주 친절하다 (오라클이 아니더라도 무료 계정이 가능한 클라우드 서버라면 스왑 기능은 필수다)

    고정 IP 설정과 최대용량 100G 인스턴스 생성이 가능하며 메모리 스왑 기능까지 설정한다면 테스트용으로 꽤 쓸만하다

    https://technfin.tistory.com/entry/오라클-클라우드-무료-가입-오류-및-주의사항?category=867921