[증인노드] 메모리 사용량을 낮춰서 노드 돌리기m2

Words
242
Reading
2 min
Listen
Play
6y

ROCKS DB

https://rocksdb.org/

램 사용량 낮추는 방법

(config.ini) ROCKS DB 파일을 공유메모리 영역 => 일반 디스크 영역으로 이동, shared-file-dir 정보를 주석 처리함으로써 기존 임시 공유메모리 영역(/dev/shm/) 에 저장되는 ROCKS DB 파일이 BLOCKCHAIN 폴더(.../steem-docker/data/witness_node_data_dir/blockchain/) 아래쪽에 존재하게 된다.

# 변경 전
# Shared file size
shared-file-size = 64G
shared-file-dir = /shm/

# 변경 후
# Shared file size
shared-file-size = 28G
#shared-file-dir = /shm/

관련 파일 목록 및 경로

블록체인 파일

ROCKSDB 파일

shared-file-dir 주석 시 blockchain 폴더에 아래 파일들이 기록됨

메모리 vs 파일 장단점

장점(props)

  1. 파일 유지 - 기존에는 해당 파일을 이동후 재기동을 했는데, 재기동을 하더라도 파일이 존재함. /dev/shm 은 tmpfs (임시 파일시스템) 영역이므로 재기동을 하면 파일이 삭제된다.

  2. 메모리 사용량이 줄어듬 - /dev/shm 에 존재하는 정보를 메모리에 상주시켜 동작시켰는데 그렇지 아니하기 때문에 메모리를 사용량을 극적으로 낮춰준다. (witness node 의 경우 35G => 3G / 빌드만 배제한다면 약 4G 시스템으로 구동 가능)

  3. 비용 절감 - 일단 램이 줄어들면 CPU 또한 줄일 수 있기때문에 비용또한 많이 절감이 가능. (witness node 의 경우 v4 + 4GB RAM 시스템으로 구동이 가능해짐 )

단점(cons)

  1. API 응답 속도가 느려짐 - 증인노드(witness) / 시드노드(p2p)를 구축하는데 있어서는 문제가 안됨. 하지만 full node 구축 시(rpc_api) 다양한 api 호출에 대한 처리후 해당 요청에 대한 응답을 해야 되는데, 메모리에 존재하는 것과 파일에 존재하는 것은 탐색시간(seek time) 에 있서 차이가 난다. 물론 탐색 범위가 작은 경우에는 그 차이가 미미하지만, 요청이 많거나 탐색범위가 큰 경우에는 문제가 발생할 수 있다. (응답지연 등)

맺음말

  • 현재 시간 관계상 증인 백업노드 구축은 하지 않은 상태인데 주말에 시간이 된다면 백업 증인노드를 구축 해볼 예정이네요 :)

아직도 배울 것들이 너무 많이 있는 것 같습니다. 하지만 틈틈이 하나씩 해보면서 퍼즐조각을 맞춰가며 기록해 보겠습니다. 행복한 하루 되세요 ~

[증인노드] 메모리 사용량을 낮춰서 노드 돌리기m2 | Ecency