만약 현재 운영 중이 서버 사양이 CPU 1 Core & 1G Memory Under 일 경우,
노드 스타트 직후 Block Sync 수치를 따라잡기 위해 서버의 자원을 최대한 사용할 때
메모리가 부족하여 시스템이 반응이 없거나(먹통) 멈춰버리게 된다. 시스템 다운은 CPU 사양보다
메모리 자원이 부족할 때 주로 발생한다 (CPU는 속도의 문제, 메모리는 동작 불능의 문제)
아래 설명은 물리적 메모리 자원의 한계를 하드디스크 스와핑 기능을 통해 극복하는 방법이다
현재 시스템 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
Swap 활성화 및 파일 생성
아래 명령은 4G 크기의 Swap 파일을 생성하는 명령이며, 용량 또는 파일이름은 원하는대로 변경하여 입력해도 된다
fallocate -l 4G /swapfile
chmod 600 /swapfile
Swap 파일 초기화 설정
아래 명령을 실행하여 위에서 생성한 파일을 Swap 파일로 지정하고 초기화한다
mkswap /swapfile
Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
no label, UUID=4f511657-bfc2-420d-a798-fa9e9d5f1b0a
swapon /swapfile
Swap 기능 동작 확인
swapon 명령을 이용하여 swap 장치를 확인하면 정상적으로 swap 파일이 동작하는 지 확인 할 수 있다
swapon -s
Filename Type Size Used Priority
/swapfile file 4194300 0 -2
아래의 여유 메모리 확인 명령으로 Swap 메모리가 추가되었는 지 확인한다
free
캡쳐화면은 8G로 스왑 설정한 상태
부팅환경 설정
nano /etc/fstab
/etc/fstab 파일을 열고 아래 한 줄 설정을 복붙하고 저장하여 리부팅 후에도 자동으로 swap 파일이 사용되도록 설정한다
/swapfile swap swap defaults 0 0
리부팅 후 서버에 다시 로그인하여 swapon -s
와 free
명령으로 스왑 기능이 자동으로 활성화되는 지 확인한다
참고로 테스트 목적으로 클라우드 서버를 저사양(1 CPU + 1G Mem)으로 평생 무료로 쓰고 싶다면 아래 링크를 참고하기 바란다
오라클 클라우드 서버 가입부터 설정 그리고 트러블슈팅까지 망라되어 있고 총 7개의 포스팅이 모두 설명이 아주 친절하다 (오라클이 아니더라도 무료 계정이 가능한 클라우드 서버라면 스왑 기능은 필수다)
고정 IP 설정과 최대용량 100G 인스턴스 생성이 가능하며 메모리 스왑 기능까지 설정한다면 테스트용으로 꽤 쓸만하다
https://technfin.tistory.com/entry/오라클-클라우드-무료-가입-오류-및-주의사항?category=867921