안녕하세요
클레이튼으로 공부하고 있는 학생입니다
이번에 클레이튼을 활용해 scn을 구성했는데
그 안에서의 tps를 측정하고 싶습니다.
tps측정을 어떻게 진행하는 것이 좋을까요?
tps를 측정하는 코드가 있으나요?
도움을 주시면 감사하겠습니다
안녕하세요
클레이튼으로 공부하고 있는 학생입니다
이번에 클레이튼을 활용해 scn을 구성했는데
그 안에서의 tps를 측정하고 싶습니다.
tps측정을 어떻게 진행하는 것이 좋을까요?
tps를 측정하는 코드가 있으나요?
도움을 주시면 감사하겠습니다
안녕하세요.
내부적으로 성능 테스트시 자체 제작한 툴이 있으나 외부에 공개를 하고 있지는 않습니다.
다만 동작하는 형태는 아래와 같으니 참고 부탁드립니다.
여러개의 account를 생성하고 transaction 발생에 필요한 KLAY(Gas 비용이나 또는 GasPrice가 0 이더라도 KLAY 전송을 위한 TX를 위해)를 충전한뒤에 다양한 형태의 transaction을 각 account의 nonce에 맞춰서 Transaction을 생성하고 네트워크에 전송하는 방식으로 동작되고 있습니다.
TPS 측정이 목적인 경우 실패하지 않을 transaction을 생성하고 nonce는 transaction을 발생시키는 툴에서 직접 관리하도록하여 대량의 transaction을 전송할수 있도록 하였습니다.
도움이 되셨으면 좋겠습니다.
감사합니다.
안녕하세요
저도 동일한 관점에서 성능 테스트를 진행하려고 합니다.
각 계정의 nonce는 tx생성하는 앱에서 각자 관리하는건 알겠습니다.
혹시 nonce자동생성하며 테스트를 하는데 10번 nonce가 처리하다 에러가 생기면 바로 뒤에 11번~ 호출이 앞의 에러와 상관없이 계속 생성될거같은데 중간에 에러등으로 nonce를 건너뛰거나 네트워크 속도나 이슈로 인해 건너뛴 nonce를 다시 호출 가능한지도 궁금합니다!
안녕하세요, 말씀하신 것처럼 10번 nonce가 빠지고 11번, 12번이 들어온다면, 뒤쪽 트랜잭션들은 실행되지 않고 트랜잭션 풀에서 대기하게 됩니다.
이후에 10번 nonce를 가진 트랜잭션을 클레이튼 네트워크에 전송하시면 10번, 11번, 12번 트랜잭션이 순차적으로 처리됩니다.
다만, 트랜잭션 풀에 저장되어 유지되는 시간이 한정적이기 때문에 10번 트랜잭션이 너무 늦게 들어온다면 11번 12번 트랜잭션이 트랜잭션 풀에서 먼저 제거될 수 있다는 점 유의 부탁드립니다.
트랜잭션 풀에 저장되어 유지되는 시간은 각 노드마다 설정값으로 조절할 수 있으며, EN의 기본값은 30분입니다.
추가적으로, 만약 처음에 만든 10번 nonce 트랜잭션과 새로 만든 10번 nonce 트랜잭션이 서로 다른 트랜잭션이라면, 먼저 전달된 트랜잭션이 우선순위를 가집니다.
감사합니다.