EN Node의 txPending이 계속 쌓입니다

안녕하세요. 현재 cypress EN Node를 운영하고 있습니다.

EN Node 운영 중 가끔 txPending pool이 쌓이면서 block rate까지 떨어지는 현상이 일어나고 있습니다.

아무리 TPS가 증가한다해도 특정시점에서 pool에 쌓인 tx가 처리되지 못하고 머물러 있는 느낌입니다.

혹시 관련해서 알아볼수 있는 방법이 있을까요?

pending이 심했을때 로그를 첨부해드립니다.

INFO[04/28,16:20:30 +09] [5] Imported new chain segment                number=57887913 hash=83035d…cae47d blocks=3  txs=22  elapsed=15.094s   trieDBSize=22.48mB  mgas=38.160 mgasps=2.528
INFO[04/28,16:20:40 +09] [5] Imported new chain segment                number=57887915 hash=f49db6…aa4b30 blocks=2  txs=90  elapsed=10.114s   trieDBSize=24.86mB  mgas=33.217 mgasps=3.284
INFO[04/28,16:20:40 +09] [5] Imported new chain segment                number=57887920 hash=6e2cd6…b74d6d blocks=5  txs=78  elapsed=300.653ms trieDBSize=21.77mB  mgas=8.167  mgasps=27.163
WARN[04/28,16:20:40 +09] [28] Synchronisation failed, retrying          err="spawn time out"
INFO[04/28,16:20:41 +09] [5] Imported new chain segment                number=57887921 hash=f12683…829d45 blocks=1  txs=38  elapsed=470.074ms trieDBSize=22.05mB  mgas=6.864  mgasps=14.603
INFO[04/28,16:20:41 +09] [5] Imported new chain segment                number=57887922 hash=727043…d44a0b blocks=1  txs=0   elapsed=4.119ms   trieDBSize=22.06mB  mgas=0.000  mgasps=0.000
ERROR[04/28,16:20:47 +09] [39] FastWebsocketHandler fail to upgrade message  err="websocket: version != 13"
ERROR[04/28,16:20:48 +09] [39] FastWebsocketHandler fail to upgrade message  err="websocket: version != 13"
INFO[04/28,16:20:51 +09] [5] Imported new chain segment                number=57887956 hash=be4af7…09edbe blocks=34 txs=329 elapsed=10.300s   trieDBSize=24.34mB  mgas=40.202 mgasps=3.903
INFO[04/28,16:21:03 +09] [5] Imported new chain segment                number=57887961 hash=de8232…f7c03e blocks=5  txs=106 elapsed=11.139s   trieDBSize=25.61mB  mgas=15.569 mgasps=1.398
INFO[04/28,16:21:15 +09] [5] Imported new chain segment                number=57887967 hash=24f245…9339c5 blocks=6  txs=122 elapsed=12.715s   trieDBSize=27.46mB  mgas=18.889 mgasps=1.485
ERROR[04/28,16:21:17 +09] [39] FastWebsocketHandler fail to upgrade message  err="websocket: version != 13"
ERROR[04/28,16:21:18 +09] [39] FastWebsocketHandler fail to upgrade message  err="websocket: version != 13"
INFO[04/28,16:21:26 +09] [5] Imported new chain segment                number=57887973 hash=e9ff27…921c3e blocks=6  txs=117 elapsed=10.590s   trieDBSize=28.76mB  mgas=16.479 mgasps=1.556
INFO[04/28,16:21:38 +09] [5] Imported new chain segment                number=57887980 hash=289a1b…09551b blocks=7  txs=108 elapsed=11.667s   trieDBSize=30.73mB  mgas=15.061 mgasps=1.291
WARN[04/28,16:21:41 +09] [28] spawnSync timeout                         peerID=7eb241bedd1e2f2c

image

안녕하세요.

자세한 로그까지 공유해주셔서 감사합니다.
해당 시점에 Cypress 상에 데이터의 추가 삭제가 많은 무거운 Tx들이 많이 발생되어 storage사용량이 높은 상태였습니다.

그래서 블록이 생성이 지연되거나 생성되었더라고 PN에서 처리하고 전파를 통해 EN에서 처리를 하고 receipt을 확인하기 까지 시간이 다소 지연되는 현상이 발생되며 이를 완화하기 위해 기술적으로 개선을 계속 진행하고 있습니다.

현재로써는 아래와 같은 방안을 적용해보시길 권장드립니다.

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

지속적인 기술 성능개선을 통해 좀더 나은 환경을 제공하도록 노력하겠습니다.

감사합니다.