티스토리 뷰

tumblr 의 Web Framework Colossus 를 이용해 봤다 라는 이전 포스트의 연결판이다. 솔직히 별것도 아니었지만, 하는동안 꽤 힘들었다. 인터넷에 문서가 너무 적은 것이 메인 이유라고 말할 수 있겠다. 일본 인터넷에 문서가 많은 finch 도 써볼까 했었다. finch 는 JSON parse 에 빠른 circe 라는 것을 써서 빠르다고 하는데.. 내가 이번에 해야 할 일은 JSON parse 도 아닌, URL를 받아서 header 의 parameter를 parse 해서 logging 하는 것이었다. 일단 무작정 데이터 쌓기. 데이터를 BigQuery 로 보내거나, GCS 로 압축해서 보내거나 하는 것은 fluentd 를 쓰던지 어쩌던지는 자유..


finch 를 사용하지 않은 이유는.. 내가 하는 일이 JSON parse 를 하지 않아도 되는 것도 있지만.. 더 큰 이유가 있다.

finch 는 버전이 바뀔 때마다 세계관이 너무 휙휙 바뀌는 듯한 느낌이다. 0.11 버전을 사용하던 애가 쓴 블로그를 보고 따라해도 0.13 에서는 지원이 되지 않거나 해서 인터넷에 돌아다니는 문서들이 거의 쓸모가 없었다. 지금 최신 버전인 0.13을 공부/연구해서 한다고 하더라도, 버전이 올라가면 아무 쓸모가 없어지는 것이다. 그래서 Colossus 를 선택해서 밀고 싶었다.


tumblr 의 Colossus로 작성해 본 소스코드는 아래와 같다.


이전에 Gatling으로 테스트를 해봤는데, 성능이 잘 안나오는 거 같아서, 소스 코드를 이것저것 수정을 해보았다. 

Scala의 Future 라는 것도 써보고.. Colossus 는 Akka 베이스라고 해서, Actor 와 비슷한 Task 라는 거를 써보았다.

내가 웹 프로그래밍을 거의 안해봐서 하나도 모른다. 사실 Akka 라는 이름만 알뿐..


JMeter 설정은 아래와 같이 했다.

2000 requests/sec 정도는 처리해 주는 게 좋다고 해서 Number of Threads (users) 를 그동안 2000 정도로 했었다. 내가 잘 못 생각하고 있었던 것 같다. Number of Threads 숫자를 좀 낮추니 JMeter 에서의 테스트 결과가 좋게 나오기 시작했다.


로컬테스트(JMeter 에서 127.0.0.1 로 보내기) 결과

throughput 가 전체적으로 4000을 넘고 있다. 


테스트에 사용한 로컬머신

댓글
댓글쓰기 폼