로그 정보에 찍히는걸 보면
Inserted a new block
시에 processTxs
가 시간의 대부분을 차지하는데, 이 processTxs
가 의미하는게 무엇인가요? processTxs
가 대부분의 cpu 쓰는 비율을 잡아먹는지도 궁금합니다
로그 정보에 찍히는걸 보면
Inserted a new block
시에 processTxs
가 시간의 대부분을 차지하는데, 이 processTxs
가 의미하는게 무엇인가요? processTxs
가 대부분의 cpu 쓰는 비율을 잡아먹는지도 궁금합니다
안녕하세요.
processTxs time은 각각의 블록에 담긴 트랜잭션들을 evm을 통해 실행하고, 이를 stateDB에 반영하는 시간을 의미합니다.
현재 로그에 찍힌 시간이 과하게 높은 것으로 보이는데요, 어떤 스펙에서 EN을 돌리고 계신가요?
processTxs
가 저희 EN cpu에 영향은 끼치나요??우선, System Requirements - Klaytn Docs 에 비추어 보았을때 권장사양에 비하여 메모리가 다소 부족한 것으로 보입니다.
일반적인 경우,
--state.trie-cache-limit
)을 수동으로 설정하여 늘리기(기본은 35%정도의 데이터를 사용중입니다.)등의 방법으로 EN의 성능을 향상시킬 수 있습니다.
추가적으로 processTxs time이 과도하게 높으며, 노드를 처음 실행하였을 때 블록처리 속도가 유난히 낮다고 여겨지시면 debug.startWarmup api를 통해 문제를 해결 할 수 있습니다. 이 명령어를 사용하면 State Cache WarmUp이 실행하시면 수 분 ~ 수 시간 이내에 블록처리 속도가 많이 개선되는 것을 확인하실 수 있으실 것입니다. WarmUp에 소요되는 시간은 Disk IOPS나 Cache 사이즈에 따라 다르며 Cache가 충분히 WarmUp이 된 경우 자동으로 정지됩니다.
또한 processTxs가 cpu에 영향을 미치는 영향은 debug.cpuProfile 등을 통해서 확인이 가능하며, tx의 종류에 따라 크게 달라질 수 있습니다.
마이그레이션 데이터를 다시 다운 받을경우 data dir에 있는 기존의 폴더로 다운받을 경우 마이 그레이션 이전의 블록은 삭제되나요???