En 운영 관련: 부하 상황 대비

안녕하세요. 디앱을 운영하기 위해 EN을 구축중입니다.

클레이튼 네트워크의 부하 상황을 대비해서 EN을 많이 구축 해놓으면, 대수에 비례해서 트랜잭션을 거는데 유리해지나요? (서비스 품질 유지를 위해서)

EN에서 PN을 통해 트랜잭션을 전송하는 것으로 나와있는데, 부하 상황에서는 동작이 어떻게 되는지 궁금합니다.
(엄청나게 많은 EN들이 다량의 트랜잭션을 걸려고 할 경우)

안녕하세요,

말씀해주신 내용 중 클레이튼 네트워크에서 부하 상황은 가장 큰 요인으로 합의 과정 / PN의 Tx, 블록 전파 과정에서 발생합니다.

합의 과정은 CN의 수가 결정적으로 작용 합니다.(CNN의 노드 수가 많을 수록, 지리적 거리가 멀수록 TPS가 낮아집니다.)

'클레이튼 네트워크’의 부하가 발생한다면 CN, PN으로 구성된 Core cell에서 발생된 것이므로

운영하시는 EN(서비스의 데이터 처리, 트랜잭션 생성 역할 노드)의 수가 증가한다고 하여도 클레이튼 네트워크 부하(다수의 Tx 생성으로 인해 TPS가 저하된 상황)에서는 영향이 없을 것 같습니다.

EN 수에 따른 부하 처리

하지만 디앱 서비스를 운영하시는 입장에서 부하는 EN → PN으로 트랜잭션을 전송이 되는 과정에서 발생할 것 같습니다.

PN의 처리 과정은 엔드포인트 노드 네트워크의 EN 수에 따라 수평적으로 확장이 가능하며

다수의 EN을 두고 로드밸런싱 기법을 적용하신다면

운영중인 서비스에서 생성되는 트랜잭션 생성 요청 처리에 대한 부하를 분산하실 수 있을 것 같습니다.

따라서 EN 수가 증가할 경우 EN - PN 간의 성능 부하를 줄일 수 있습니다.

core-cell

EN에서 PN을 통해 트랜잭션 전송할 때 부하 상황일 경우 동작

  • PN에 부하가 많이 발생할 것을 고려
  • 연결한 node 수와 sync 속도가 항상 비례하지 않는다는 실험 결과가 있습니다.

말씀해주신 내용에서 다량의 EN이 PN으로 트랜잭션을 전송하는 것을 대비하여 위 2가지 내용(부하 상황)을 고려하여

모든 EN은 2개의 PN과 연결되어 있습니다.

EN 성능 상승 방안

서비스 품질 유지를 위해 EN 성능 향상 방안도 첨부해드립니다.

  • 노드의 스펙을 업그래이드(메모리 사이즈 증가)
  • KEN 실행 옵션 중 cache 설정값( --state.trie-cache-limit )을 수동으로 설정하여 늘리기(기본은 35%정도의 데이터를 사용중입니다.)
  • 더 높은 IOPS인 SSD로 변경
  • chaindata의 용량이 커진경우 최신 migration된 chaindata로 변경 [Klaytn cypress ChainData ](https://packages.klaytn.net/cypress/c

또한 EN을 운영하시는 방법 외 KAS를 사용하신다면 EN 운영에 대한 부담 없이 클레이튼을 활용하실 수 있습니다.

감사합니다.

3 Likes