# EN 빠른 동기화 데이터 다운 후 남은 block을 동기화 할때 속도가 느립니다

**URL:** <https://devforum.kaia.io/t/en-block/4104>\
**Category:** Kaia\
**Tags:** klaytn\
**Created:** [2월 27, 2022, 7:21오전 UTC](https://devforum.kaia.io/t/en-block/4104 "2022-02-27T07:21:40Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![poey](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/poey/32/1879_2.png) [@poey](https://devforum.kaia.io/u/poey)\
**Post date:** [2월 27, 2022, 7:21오전 UTC](https://devforum.kaia.io/t/en-block/4104/1 "2022-02-27T07:21:40Z")

</div>

안녕하세요.  
EN 설치 관련 문서를 익고 개인 서버에 EN을 설치하였습니다.  
kend start로 하는 동기화 속도가 느려 가장 최신 데이터를 받은 후 아래와 같이 kend start를 다시 실행하였습니다.  
-kend start로 동기화한 결과

 ![image](https://canada1.discourse-cdn.com/flex035/uploads/klaytn/original/2X/2/206aec0cd537180800452a5c6e9eda26afb46242.png)

- kend start-docker로 동기화한 결과  
 ![image](https://canada1.discourse-cdn.com/flex035/uploads/klaytn/original/2X/8/8513f6dc870a239cdf63e43451aca60f0b985520.png)

현재 블럭에 비하여 아직 받지 못한 block이 3일정도 데이터량이 남은 것으로 확인이 되는데요.  
문제는 동기화 속도가 너무 느립니다.  
kend start를 처음에 block이 0일때에는 속도가 elapsed time이 6~8ms 정도였는데 현재는 너무 변화량이 큽니다.  
혹시 제가 설정을 잘못 하거나 예상되는 문제점이 있는지 원래 이러한 현상이 나타나는지 알고 싶습니다.

아래는 제가 설정한 conf/kend\_conf파일입니다

```auto
# Configuration file for the kend

# cypress, baobab is only available if you don't specify NETWORK_ID.
NETWORK="cypress"
# if you specify NETWORK_ID, a private network is created.
NETWORK_ID=

PORT=32323

SERVER_TYPE="fasthttp"
SYNCMODE="full"
VERBOSITY=3
MAXCONNECTIONS=10

# txpool options setting
TXPOOL_EXEC_SLOTS_ALL=4096
TXPOOL_NONEXEC_SLOTS_ALL=4096
TXPOOL_EXEC_SLOTS_ACCOUNT=4096
TXPOOL_NONEXEC_SLOTS_ACCOUNT=4096
TXPOOL_LIFE_TIME="30m"

# rpc options setting
RPC_ENABLE=1 # if this is set, the following options will be used
RPC_API="klay" # available apis: admin,debug,klay,miner,net,personal,rpc,txpool,web3
RPC_PORT=8551
RPC_ADDR="0.0.0.0"
RPC_CORSDOMAIN="*"
RPC_VHOSTS="*"

# ws options setting
WS_ENABLE=1 # if this is set, the following options will be used
WS_API="klay" # available apis: admin,debug,klay,miner,net,personal,rpc,txpool,web3
WS_ADDR="0.0.0.0"
WS_PORT=8552
WS_ORIGINS="*"

# service chain options setting
SC_MAIN_BRIDGE=0 # if this is set, the following options will be used.
SC_MAIN_BRIDGE_PORT=50505
SC_MAIN_BRIDGE_INDEXING=0 # this option will be deprecated.

# Setting 1 is to enable options, otherwise disabled.
AUTO_RESTART=0
METRICS=1
PROMETHEUS=1
DB_NO_PARALLEL_WRITE=0
MULTICHANNEL=1
SUBPORT=$((PORT + 1)) # used for multi channel option

# discover options
NO_DISCOVER=0 # setting 1 to disable discovery
BOOTNODES=""

# Raw options e.g) "--txpool.nolocals"
ADDITIONAL=""

DATA_DIR="/data2/seongyeop/data"
LOG_DIR=$DATA_DIR/logs

```

DATA\_DIR만 tar unzip한 경로로 바꾸었습니다.

linux docker 위에서 실행 중 이며, 스펙은 아래와 같습니다.  
docker run할시 docker의 port는 특정 port(8900)만 열어둔 상황입니다.  
cpu : 32, ram : 256g, 네트워크와 디스크 대역폭은 정확히 모르겠습니다.  
저장 공간은 충분하며 wget,curl로 historical chain diata를 받을때 최대 30M/S 까지 확인이 되었습니다.

감사합니다.

---

<div class="post-metadata">

**Author:** ![poey](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/poey/32/1879_2.png) [@poey](https://devforum.kaia.io/u/poey)\
**Post date:** [2월 27, 2022, 7:51오전 UTC](https://devforum.kaia.io/t/en-block/4104/2 "2022-02-27T07:51:29Z")

</div>

docker 문제인가 싶어 docker 환경 밖에서 kend start를 해보았지만 여전히 속도가 너무 느립니다.

 ![image](https://canada1.discourse-cdn.com/flex035/uploads/klaytn/original/2X/1/169e742028136d3a05c14a0606bdc1ec4d4d1d22.png)  
새로운 블록부터 받으면 다음과 같이 합리적인 속도가 나옵니다.

net.peercount가 5로 나오는데 정상일까요?

> [@En을 ami를 통해 생성했을 때 싱크 속도 문제 발생](https://devforum.kaia.io/t/en-ami/1635/2):
>
> 안녕하세요. Klaytn 개발팀의 Aidan입니다. 공유주신 로그에서 processTxs가 유독 오래걸리는 것을 보아 데이터 읽기에 시간이 많이 소요되는 것으로 추정됩니다. Snapshot을 통해 새로운 Instance를 생성한 후, 처음 노드를 실행할 때 DB compaction 등이 일어난 것으로 보이는데 이 부분은 추가 확인하여 개선하도록 하겠습니다. @11156 님의 상황처럼 노드를 처음 실행하였을 때 블록처리 속도가 유난히 낮으면, 아래 API를 이용하여 문제를 해결 할 수 있습니다. 이 명령어를 사용하면 State Cache WarmUp이 실행하시면 수 분 ~ 수 시간 이내에 블록처리 속도가 많이 개선되는 것을 확인하실 수 있을것입니다. debug.startWarmUp() WarmUp에 소요되는 시간은 Disk IOPS나 Cache 사이즈에 따라 다르며 Cache가 충분히 WarmUp이 된 경우 자동으로 정지됩니다. 또한, debug.stopWarmUp() 명령어를…

```auto
debug.startWarmUp()

```

명령어는 호전되는 것 같지 않습니다.

> [@요 며칠 en이 한번 멎은 이후로 싱크가 굉장히 느려졌습니다](https://devforum.kaia.io/t/en/2481/6):
>
> 보통 CPU나 DISK IO에서 병목이 생겨야하는데, 말씀주신 내용만으로는 원인파악이 쉽지 않네요. 그래도 추측을 해보자면, 아래 부분을 더 확인해 볼 수 있을것 같습니다. 하드웨어 요구사항 문제인지 확인 필요할 것 같습니다. 먼저 EN의 하드웨어 요구사항을 만족하는지 확인해주시겠어요? 블록체인 노드는 데이터가 쌓일수록 싱크 속도도 느려지는 경향이 있으며, 아래 요구사항을 만족하지 못한 경우 그 경향성이 더 명확하게 나타날 것 같습니다. 참조: [System Requirements - Klaytn Docs](https://docs.klaytn.com/node/endpoint-node/system-requirements#h-w-specification) admin.peers API를 이용하여 연결된 노드들의 수와 blockNumber를 확인해주세요. 최신 블록까진 싱크된 노드와 다수 연결되어 안정적으로 블록을 전파받을 수 있는지 확인이 필요합니다.

```auto
admin.peers

```

로 확인시 최신 블록이 업데이트 되어있는 5개의 node가 검출됩니다.

> [@Klaytn 메인넷 노드 운영 및 API관련문의](https://devforum.kaia.io/t/klaytn-api/423/2):
>
> 안녕하세요, Klaytn 관련 문의를 주셔서 감사합니다. 혹시 genesis block부터 sync를 하고 계신것인지요 그렇다면 machine spec에 따라 몇주 소요 될 수 있습니다. 그래서 GX에서는 매일마다 Cypress의 chaindata를 제공해 드리고 있으니 아래 최신 chaindata를 이용하셔서 sync 시도를 해보시길 바랍니다. chain data 받는 page : [https://packages.klaytn.net/cypress/chaindata/](https://packages.klaytn.net/cypress/chaindata/) 관련 docs 문서 : [https://docs.klaytn.com/node/endpoint-node/installation-guide/configuration#fast-sync-optional](https://docs.klaytn.com/node/endpoint-node/installation-guide/configuration#fast-sync-optional) 그리고 저희가 권장하는 최소 machine 사양은 AWS EC2 m5.2xlarge 이상인점 참고 부탁드립니다. (특히, storage의 경우 SSD를 필수로 사용하셔야 합니다.) 감사합니다.

위에서 ssd 사용이 필수라고 언급되어있는데, 용량 문제로 인하여 7TB HDD를 사용하고 있습니다. 해당 문제일 수도 있을까요?

---

<div class="post-metadata">

**Author:** ![Denver](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/denver/32/557_2.png) [@Denver](https://devforum.kaia.io/u/Denver)\
**Post date:** [2월 27, 2022, 10:23오전 UTC](https://devforum.kaia.io/t/en-block/4104/3 "2022-02-27T10:23:36Z")

</div>

@poey

안녕하세요.  
HDD를 사용하시면 안됩니다. CPU와 Ram 이외에도 요구사항을 잘 살펴보시면 IOPS도 그중에 있습니다.

SSD를 사용하셔서 다시 시도해보시길 바랍니다.

감사합니다.

---

<div class="post-metadata">

**Author:** ![poey](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/poey/32/1879_2.png) [@poey](https://devforum.kaia.io/u/poey)\
**Post date:** [2월 27, 2022, 1:41오후 UTC](https://devforum.kaia.io/t/en-block/4104/4 "2022-02-27T13:41:52Z")

</div>

네 감사합니다.  
혹시 genesis block 에서는 높은 속도가 나오는데, 80,000,000블럭부터는 느린 이유가 있을까요? log 에서 processTxs가 유독 느리던데 … processTxs가 어떤 부분을 처리하는건지 궁금합니다. 단지 totalWrite는 속도가 괜찮게 나와서요.  
네트워크 대역폭이라던지, 이런 부분이 문제임을 확인할 수 있는 방법이 있을지요?

좀 돌리다 보니 아래와 같이 평균 1블럭당 1sec의 속도는 나오는 것 같습니다. 다만 동기화 하기에는 3일 정도 밀린 상태이고요.

 ![image](https://canada1.discourse-cdn.com/flex035/uploads/klaytn/original/2X/9/9d581aea8388fce524411292b857e19bca861cf1.png)

---

<div class="post-metadata">

**Author:** ![Denver](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/denver/32/557_2.png) [@Denver](https://devforum.kaia.io/u/Denver)\
**Post date:** [2월 28, 2022, 3:41오전 UTC](https://devforum.kaia.io/t/en-block/4104/5 "2022-02-28T03:41:22Z")

</div>

@poey  
우선 블록과 트랜잭션에 대해 학습해보시면 좋을 거 같습니다.  
Genesis Block 처리가 빨랐던 이유는 제네시스 블록에는 트랜잭션들이 담기지 않아서 입니다.  
processTxs는 트랜잭션들을 처리하는데 걸린 시간을 뜻합니다.

자세한 내용은 소스코드와 관련 문서들로 확인해보시면 좋을 거 같습니다.  
우선 디스크는 SSD로 변경해주시구요.

감사합니다.

---

<div class="post-metadata">

**Author:** ![poey](https://yyz1.discourse-cdn.com/flex035/user_avatar/devforum.kaia.io/poey/32/1879_2.png) [@poey](https://devforum.kaia.io/u/poey)\
**Post date:** [3월 7, 2022, 5:30오전 UTC](https://devforum.kaia.io/t/en-block/4104/6 "2022-03-07T05:30:59Z")

</div>

hdd에서 ssd로 변경 후 정상적으로(빠른 속도로) 동기화 되는 것을 확인하였습니다.  
감사합니다.
