목록 보기
고전 돌아보기, C10K 문제 (C10K Problem)
백엔드

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

올리브영
올리브영
2023년 11월 30일

두줄요약

1만 명 동시 접속을 처리하는 C10K 문제의 배경과 병목 원인을 설명했습니다. non-blocking I/O와 이벤트 기반 기술이 어떻게 해결책이 되었는지 정리했습니다.

핵심 내용

  • C10K 문제는 1만 명 동시 접속을 처리하는 서버 구현 과제
  • 단순한 프로세스 fork나 1만 개 스레드 방식의 한계로 메모리, 컨텍스트 스위칭, 폴링 경합 발생
  • 해결의 핵심은 non-blocking I/O와 asynchronous I/O, 그리고 epoll, kqueue, select, IOCP 같은 이벤트 기반 기술
  • nginx, Node.js, Java NIO, Netty 같은 기술이 이 흐름 위에서 동작하며 대규모 동시 처리의 기반 형성

적용해볼 점

  • 동시 접속 증가 시 스레드 수만 늘리는 방식의 한계 점검
  • 이벤트 루프와 비동기 I/O 기반 구조 검토
  • 언어와 프레임워크가 내부적으로 어떤 I/O 모델을 쓰는지 확인

다음 읽기

비슷한 주제의 백엔드 글

Node.js가 싱글스레드 서버라는 미신(feat. Node.js의 대용량 데이터 처리)

Node.js는 싱글스레드처럼 보이지만 내부적으로는 멀티스레드 요소를 활용하는 구조를 설명했습니다. 대용량 데이터 처리에서는 CPU 병목을 스케일아웃과 운영 설계로 풀어낸 사례를 다뤘습니다.

네이버 페이
네이버 페이
백엔드

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...