안녕하세요.
일전에 공유 드렸던 이슈인 Klaytn Endpoint Node Dead - hwlee님의 글 #7 와 연관되는 이슈입니다.
저희 측에서 다음과 같이 저희측 EN, 그리고 오늘 아침에는 Baobab측 EN에 대해 각각 성능 테스트를 진행했는데 이 과정에서 저희측 아이피가 Malicious하다고 판단하셔서 아마 차단하셨을 거라 생각합니다.
괜찮으시다면 차단 해제 부탁드려도 될까요 ㅠ_ㅠ
테스트 한 방법과 결과는 아래 공유드립니다.
$ loadtest -c 10 --rps 10 <특정 계정의 토큰 입출금 히스토리를 웹소켓을 사용하여 조회하는 액션을 트리거하는 URL>
즉 초당 10개의 리퀘스트를 보낸 것이고 그 경과 아래와 같이 공유드립니다.
[Tue Jul 28 2020 08:57:42 GMT+0900 (Korean Standard Time)] INFO Requests: 0, requests per second: 0, mean latency: 0 ms
[Tue Jul 28 2020 08:57:47 GMT+0900 (Korean Standard Time)] INFO Requests: 0, requests per second: 0, mean latency: 0 ms
[Tue Jul 28 2020 08:57:52 GMT+0900 (Korean Standard Time)] INFO Requests: 7, requests per second: 1, mean latency: 6733 ms
[Tue Jul 28 2020 08:57:57 GMT+0900 (Korean Standard Time)] INFO Requests: 7, requests per second: 0, mean latency: 0 ms
[Tue Jul 28 2020 08:58:02 GMT+0900 (Korean Standard Time)] INFO Requests: 7, requests per second: 0, mean latency: 0 ms
[Tue Jul 28 2020 08:58:07 GMT+0900 (Korean Standard Time)] INFO Requests: 15, requests per second: 2, mean latency: 21726.4 ms
[Tue Jul 28 2020 08:58:12 GMT+0900 (Korean Standard Time)] INFO Requests: 15, requests per second: 0, mean latency: 0 ms
[Tue Jul 28 2020 08:58:17 GMT+0900 (Korean Standard Time)] INFO Requests: 18, requests per second: 1, mean latency: 30219.1 ms
[Tue Jul 28 2020 08:58:22 GMT+0900 (Korean Standard Time)] INFO Requests: 19, requests per second: 0, mean latency: 35590.3 ms
[Tue Jul 28 2020 08:58:27 GMT+0900 (Korean Standard Time)] INFO Requests: 19, requests per second: 0, mean latency: 0 ms
[Tue Jul 28 2020 08:58:32 GMT+0900 (Korean Standard Time)] INFO Requests: 19, requests per second: 0, mean latency: 0 ms
[Tue Jul 28 2020 08:58:37 GMT+0900 (Korean Standard Time)] INFO Requests: 19, requests per second: 0, mean latency: 0 ms
[Tue Jul 28 2020 08:58:42 GMT+0900 (Korean Standard Time)] INFO Requests: 23, requests per second: 1, mean latency: 56955.1 ms
[Tue Jul 28 2020 08:58:47 GMT+0900 (Korean Standard Time)] INFO Requests: 25, requests per second: 0, mean latency: 58123.3 ms
[Tue Jul 28 2020 08:58:52 GMT+0900 (Korean Standard Time)] INFO Requests: 25, requests per second: 0, mean latency: 0 ms
[Tue Jul 28 2020 08:58:57 GMT+0900 (Korean Standard Time)] INFO Requests: 28, requests per second: 1, mean latency: 70287.9 ms
[Tue Jul 28 2020 08:59:02 GMT+0900 (Korean Standard Time)] INFO Requests: 28, requests per second: 0, mean latency: 0 ms
[Tue Jul 28 2020 08:59:07 GMT+0900 (Korean Standard Time)] INFO Requests: 28, requests per second: 0, mean latency: 0 ms
[Tue Jul 28 2020 08:59:12 GMT+0900 (Korean Standard Time)] INFO Requests: 28, requests per second: 0, mean latency: 0 ms
[Tue Jul 28 2020 08:59:17 GMT+0900 (Korean Standard Time)] INFO Requests: 28, requests per second: 0, mean latency: 0 ms
[Tue Jul 28 2020 08:59:22 GMT+0900 (Korean Standard Time)] INFO Requests: 33, requests per second: 1, mean latency: 93387.7 ms
[Tue Jul 28 2020 08:59:27 GMT+0900 (Korean Standard Time)] INFO Requests: 34, requests per second: 0, mean latency: 99719.4 ms
[Tue Jul 28 2020 08:59:32 GMT+0900 (Korean Standard Time)] INFO Requests: 35, requests per second: 0, mean latency: 105958.8 ms
[Tue Jul 28 2020 08:59:37 GMT+0900 (Korean Standard Time)] INFO Requests: 38, requests per second: 1, mean latency: 110077.2 ms
[Tue Jul 28 2020 08:59:42 GMT+0900 (Korean Standard Time)] INFO Requests: 38, requests per second: 0, mean latency: 0 ms
[Tue Jul 28 2020 08:59:47 GMT+0900 (Korean Standard Time)] INFO Requests: 38, requests per second: 0, mean latency: 0 ms
[Tue Jul 28 2020 08:59:52 GMT+0900 (Korean Standard Time)] INFO Requests: 38, requests per second: 0, mean latency: 0 ms
위 테스트 결과가 시사하는 바로는
- Websocket을 사용해서 이벤트 히스토리를 가져오는 연산은 상당히 비싸고 또 느리다. 느리다의 기준은 특정 계정의 토큰 잔액을 단순 Http로 확인하는 액션은 평균 조회시간이 80ms 미만이었기 때문입니다 (테스트 방법은 동일).
- 저희측 EN은 처리속도가 느렸고 심지어 죽기까지하여… 혹시 우리 EN이 이상한 건 아닐까 Baobab은 어떨까 하고 테스트를 해보았던 겁니다.
- 그렇다면… 토큰 입출금 내역 히스토리 조회 액션이 초당 10 이상은 발생할 것으로 예상되는 서비스를 개발한다면… 어떻게 하면 좋을까요? 혹시 괜찮은 아이디어 있으신지요 ;ㅂ; EN에서 가져오기엔… 부하가 심하고 속도도 안나오는 것 같습니다 ㅜ 저의 아이디어는 아래 추가 댓글로 남겨보겠습니다.
혹시 위 내용 중 엄한 내용이 있거나 잘못된 내용이 있으면 언제든 피드백 부탁드립니다. 도와주십쇼 클레이튼 형님들 ㅠ
사용한 툴에 대한 상세한 정보는 아래에서 확인해보실 수 있습니다.