You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »


2009년 로드 테스트기

활용된 기술과 변경된 컨셉

  • TCP-IOCP SOCK(C++) : 과거에는 대용량 처리를 위해 TCP모델을 이해하고 저수준통신모듈을 구현하고 서버개발팀이 라이브러리를 유지해야하는것이 첫번째였다. 이제는 플랫폼별로 네티/시그널R/Boost ASIO등 추상화된 통신모듈 선택 가능하며 아직도 여전히 윈도우 IOCP 비동기 TCP모델이 단일기기 대량 접속효율을 가지는지는 알수없으나, 분산처리가 중요해지는 시점 단일기기로 최대를 처리하는것보다 분산처리가 될때 복잡도를 줄이는 형태로 나아가고 있습니다.
  • Bot Agent : 현재는 로드러너와 같이 클라우드기반에 분산하여 트래픽을 발생할수 있는 장치를 이용할수 있으나, 이때는 10만 사용자테스트를 위해 Agent(CS방식)를 만들어 PC방에 분산실행한뒤 중앙에서 제어하여 트래픽을 발생하였습니다.
  • 램프업 : 사용자 트래픽 1만,5만,10만 올려감에따라, 테스트 인프라도 확장하였는데 램프업이란 단어를 사용했던것같다. 제조확장공정에서 사용된 단어로 보이며 현재는 스케일 아웃 또는 탄력적으로 확장할수있는 엘라스틱이라는 용어가 쓰이고 있다.
  • 세션서버 : 요즘은 L7스위칭을 활용하는 로드밸런스(Haproxy및 기타등등)가 잘되있어서, TCP 커넥션 컨트롤이 룰설정으로 가능하지만 과거에는 커넥션 컨트롤을 직접 프로그래밍화하고 관리하였습니다.
  • Manager : Agent의 커넥션이 발생하면 이 커넥션자체를 관리하고, 분산처리될수 있게 직접 분산코드를 작성하였으나 클러스터/라우터활용으로 이것에대해 구현할 필요가 없어졌습니다.


AKKA를 선택하게된 이유

  • 현재 C++도 Managed형태및 좋은라이브러리가 있지만 기본으로 메모리/스레드풀 관리를 직접 해야하는 C++에서 분산처리 어플리케이션을 구축하는것은 난이도가 있었습니다.
  • 원격메시지 처리를위해서, TCP모듈에 큐시스템을 직접구현하고 이미 이용한 상태였으며, 이것은 Actor의 메시지처리와 닮아있습니다.
  • TCP 통신모듈개발 / 스레드프로그래밍등을 할필요가 없어졌습니다. 결정적으로 개발팀이 이 두개를 안정적으로 유지하는데 비용(수준)이 많이 들게 됩니다.





  • No labels