본문 바로가기
필기노트/IT 용어

C10K 문제

by 바른_자세 2021. 11. 4.

인터넷 보급과 함께 웹 서비스 접속자가 기하급수적으로 늘어나면서, 'C10K' 문제란 것이 발생하고 있습니다.

C10K 문제란 하드웨어 성능 상 문제가 없어도 클라이언트 수가 많아지면 서버가 고장나는 문제입니다.

여기서 "C"는 Client, 10K는 1만을 나타냅니다.

C10K 문제를 해결하는 방법은 하나의 프로세스로 복수의 접속을 처리하는 방법입니다.

이때 클라이언트 통신은 정말 필요한 경우에만 시스템 콜로 구현되어 처리합니다.

이를 '논블로킹(Non-blocking) I/O'라고 합니다.

'논블로킹 I/O'는 모든 접속을 완전히 동기로 처리할 수 없어 동기 처리 수를 고려해야 합니다.

또한 특정 처리가 장기화 되거나 지연 되면 다른 접속에 영향을 줄 수 있습니다.

반면 대량 접속이 발생함에도 동기 처리가 필요 없는 경우 유효한 방법입니다.

그러면 동기와 비동기는 무엇일까요?

동기란 쉽게 말하면 요청이 끝날 때까지 다른 것을 수행하지 않고 기다립니다.

반면 비동기는 병렬로 다른 일을 할 수 있고, 완료 여부는 별도의 방법을 이용해야 합니다.

 

구분 장점 단점
동기 - 의뢰한 처리가 긑났는지 여부 확인 용이
- 구조가 간단하고 구현 난이도 낮음
- 대기 시간 활용 불가
비동기 - 의뢰한 처리가 진행되는 동안 병렬처리 가능 - 불필요한 확인 처리 늘어남
- 구조가 복잡해서 구현 난이도 높음

우리는 현실적 요건과 동기/비동기의 장단점을 고려하여 선별적으로 사용해야 합니다.

 

'필기노트 > IT 용어' 카테고리의 다른 글

NAT(Network Address Translation)  (0) 2021.11.07
DDI(DNS, DHCP, IPAM)  (0) 2021.11.04
IPAM(IP Address Management)  (0) 2021.11.04
크리덴셜 스터핑(Cridential Stuffing)이란?  (0) 2021.11.04