블로그 이미지
평범하게 살고 싶은 월급쟁이 기술적인 토론 환영합니다.같이 이야기 하고 싶으시면 부담 말고 연락주세요:이메일-bwcho75골뱅이지메일 닷컴. 조대협


Archive»


Single Threaded Model이라서 더 빠르다? No.!!


Vert.x나 Node.JS와 같은 Single Threaded 모델의 서버들이 내세우는 장점이, Single Thread Model이기 때문에, Context Switching이 없고, 이로 인해서 성능이 더 빠르다. 라는 논리인데, 사실 DB나 File IO가 있을 경우, 뒷단의 Thread Pool에 request & call back 형식으로 처리를 하고 있기 때문에, 이 경우에는 Single Thread Model이 아니라 Multi Thread Model이 되고, 이 Thread Pool들의 Thread로 인한 Context Switching이 발생하게 된다.


이런 IO Call이 없는 경우 (Thread Pool로 작업을 보내지 않는 경우), 당연히 Context Switching 부하가 없기 때문에 빠르겠지만, DB 작업이 들어 갈경우,  http://www.techempower.com/benchmarks/#section=data-r8&hw=i7&test=query

의 자료를 보면, 오히려 Servlet이 더 빠른걸 볼 수 있다.


servlet-raw : resin + mysql

nodejs-mysql : nodejs + mysql



출처 : http://www.techempower.com/benchmarks/#section=data-r8&hw=i7&test=query

Disk나 DB 작업이 비교적 적은 메세징 등에서는 node나 vert.x가 메리트가 있겠지만, 일반적인 DB,FILE TX에서는 역시 WAS가 더 효율성이 높다.


본인은 구글 클라우드의 직원이며, 이 블로그에 있는 모든 글은 회사와 관계 없는 개인의 의견임을 알립니다.

댓글을 달아 주세요

  1. mooni 2014.02.16 23:01  댓글주소  수정/삭제  댓글쓰기

    어설픈 기술은 안 쓰니만 못하죠 ㅋㅋ