본문 바로가기
개념

C10K 문제(C10K problem)

by hs_seo 2016. 1. 22.

C10K는 다수의 클라이언트를 동시에 처리할 수 있는가에 대한 의문이다.

(1만개의 소켓을 열게 된다면 하드웨어가 충분한데도 불구하고 I/O 처리방식의 문제때문에 프로세스가 제대로 처리하지 못한다는 것)


소켓을 처음 설계할 당시에는 10K의 클라이언트를 처리할 하드웨어 여력이 되지 않았기 때문에 생기는 의문이었다.


현재는 이를 해결하는 방법으로 Unix 계열에서는 select(), opll(), kqueue(), 윈도우 계열에서는 ICP 등을 이용하여 처리한다.


이를 해결하기 위해, NGINX, node.js 에서는 이벤트 드리븐방식의 비동기 처리를 통해 해결한다.


 


참고

http://openwiki.kr/tech/c10k_problem

https://en.wikipedia.org/wiki/C10k_problem

http://egloos.zum.com/D00D00/v/94967

반응형