다섯 살도 알 수 있게 · 네트워크

인터럽트(네트워크 I/O)가 뭐예요?

네트워크 카드의 인터럽트를, 소포가 도착할 때마다 울리는 벨소리 이야기로 풀어봤어요.

땡!소포가 도착할 때마다 벨이 울려 직원이 하던 일을 멈춰요벨이 소포마다 즉시 알려주니 직원이 계속 확인하러 다니지 않아도 돼요

소포가 도착할 때마다 벨이 울려요.벨이 소포마다 즉시 알려주니 직원이 계속 확인하러 다니지 않아도 돼요.

벨이 쉴 새 없이 울려 직원이 다른 일을 전혀 못 해요초고속 트럭이 소포를 쉴 새 없이 쏟아내면 벨이 폭주해요

트럭이 너무 빨라지면 벨이 쉴 새 없이 울려요.소포가 쉴 새 없이 쏟아지면 벨이 폭주해 직원이 다른 일을 못 해요.

땡!네트워크 인터럽트 = 소포 도착을 즉시 알리는 벨소리벨이 너무 자주 울리면 직원 일을 방해하니, 소포를 모아 한 번만 울리기도 해요(인터럽트 코얼레싱)

벨은 소포 도착을 즉시 알리고, 너무 잦으면 소포를 모아 한 번만 울려요.벨이 너무 자주 울리면 직원 일을 방해하니, 소포를 모아 한 번만 울리기도 해요.

즉시 알림도착 즉시 벨이 울려요
하던 일 중단직원이 하던 일을 멈추고 소포부터 받아요
인터럽트 폭주벨이 너무 잦으면 직원의 다른 일이 멈춰요
모아서 처리(코얼레싱)소포 여럿이 모이면 벨 한 번만 울려요
매번 벨(코얼레싱 없음)소포 1통마다 벨 1번소포별 도착을 즉시 앎트럭 빨라지면 벨 폭주직원이 다른 일 못 함모아서 벨(코얼레싱)소포 여러 통에 벨 1번전체 처리량은 늘어남소포별 도착은 살짝 늦게 앎직원이 다른 일도 할 수 있음

매번 울리면 직원이 바쁘고, 모아서 울리면 도착 소식이 조금 늦어요.모아서 울리면 매번 울릴 때보다 전체 처리량은 늘지만, 소포별 도착 소식은 조금 늦어요.

모아서 울리면 직원이 같은 시간에 더 많이 처리해요대신 소포 한 통 한 통은 조금 늦게 알려져요인터럽트 일반 원리는 시스템SW 분야에서 다루고, 여기서는 네트워크 카드의 벨만 봐요

소포 알림의 지연과 전체 처리량은 맞바꾸는 관계예요.인터럽트 일반 원리는 시스템SW 분야에서 다루고, 여기서는 네트워크 카드의 벨만 봐요.

한 줄로

네트워크 I/O의 인터럽트는 소포(패킷)가 도착했다고 즉시 알리는 벨소리이고, 너무 잦으면 모아서 한 번에 울리기(코얼레싱)도 해요.

네트워크 카드(NIC)는 패킷이 도착할 때마다 CPU에 인터럽트를 걸어 즉시 처리하게 해요. 트래픽이 아주 많아지면 인터럽트가 너무 잦아져 CPU가 다른 일을 못 하는 '인터럽트 폭풍'이 생기는데, 이를 막기 위해 패킷 여러 개를 모았다가 인터럽트를 한 번만 거는 '인터럽트 코얼레싱(interrupt coalescing)'을 써요. 지연은 조금 늘지만 전체 처리량(throughput)은 좋아져요. 리눅스 NAPI처럼 부하가 큰 동안 폴링으로 바꾸는 방식도 있어요. CPU가 실행 중인 프로그램을 멈추고 신호를 처리하는 인터럽트 일반 원리 위에서, 네트워크 I/O에 특화된 이야기예요.

어른들은 이렇게 불러요

네트워크 인터럽트
Network interrupt
소포 도착을 즉시 알리는 벨소리. NIC가 CPU에 거는 신호예요.
인터럽트 폭풍
Interrupt storm
벨이 쉴 새 없이 울려 업무가 마비되는 것. 트래픽이 아주 많을 때 생겨요.
인터럽트 코얼레싱
Interrupt coalescing
소포 여럿을 모아 벨 한 번만 울리는 것. 지연은 늘지만 처리량이 좋아져요.
NIC
Network Interface Card
벨을 울리는 소포 접수 창구. 패킷이 도착하는 실제 하드웨어예요.
폴링
Polling
벨 없이 직원이 수시로 직접 확인하러 가는 방식. 인터럽트와 반대되는 전략이에요.
처리량(throughput)
Throughput
전체적으로 얼마나 많이 처리했는지. 코얼레싱이 늘려주는 값이에요.
지연(latency)
Latency
소포 하나가 알려지기까지 걸리는 시간. 코얼레싱이 조금 늘리는 값이에요.
인터럽트(프로세스)
Interrupt (process)
CPU가 프로그램 실행 중 멈추는 일반적인 인터럽트. 시스템SW 분야에서 다른 각도로 다뤄요. → 하던 일을 멈추게 하는 벨소리
다음 이야기
대화의 한쪽 끝을 맡는 우편함 구멍 →
다른 용어도 그림책으로 보고 싶다면 요청하기 →