pile·
네트워크·oliveyoung올리브영 테크블로그·

고전 돌아보기, C10K 문제 (C10K Problem)

문제1999년 Dan Kegel이 제기한 C10K, 즉 동시 1만 명 접속을 받아 내는 서버를 어떻게 구현하느냐는 과제였고, 프로세스·스레드를 그만큼 띄우는 전통 방식은 메모리 낭비와 컨텍스트 스위칭 비용 때문에 50만 명대 규모로 가면서 한계가 분명해졌다.
접근Linux의 epoll(), BSD의 kqueue(), Windows의 IOCP 같은 비블로킹 I/O로 한 스레드가 다수 소켓을 다루도록 바꾸고, 이 위에 Node.js 이벤트 루프, nginx, Java NIO가 구현돼 같은 원리를 응용했다.
결과비블로킹 I/O 기반의 nginx는 동시 접속자가 늘어도 RPS가 안정적으로 유지된 반면 전통적 Apache httpd는 급격히 떨어졌고, 이 기술 흐름 위에서 대규모 인터넷 서비스가 가능해졌다.
oliveyoung
올리브영 테크블로그 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한