본문 바로가기

개인공부/네트워크

epoll 의 Edge-Triggered 방식

1.1 EPOLLIN

  • EPOLLIN은 읽기 가능(데이터를 읽을 준비가 됨)을 나타냅니다.
  • 즉, 클라이언트 소켓에 읽을 데이터가 있을 때 해당 이벤트를 트리거합니다.

1.2 EPOLLET (Edge-Triggered 모드)

  • EPOLLET Edge-Triggered 모드를 활성화합니다.
  • 기본적으로 epoll은 Level-Triggered(수준 트리거) 방식입니다. 이 방식에서는 이벤트가 발생한 상태가 유지되면 계속 이벤트가 발생합니다.
  • Edge-Triggered 방식은 이벤트가 발생했을 때 한 번만 트리거되며, 이후 데이터가 다 처리되지 않아도 다시 이벤트를 발생시키지 않습니다.

비교:

Level-TriggeredEdge-Triggered

데이터가 남아있으면 반복적으로 이벤트 발생 새 데이터가 들어왔을 때 한 번만 이벤트 발생
사용이 간단하지만, 성능이 낮을 수 있음 더 높은 성능, 추가적인 비동기 처리가 필요

사용 이유

  • EPOLLET을 사용하면 고성능 서버를 구현할 때 유리합니다. 하지만 개발자가 소켓을 제대로 비우지 않으면 데이터가 손실될 위험이 있으므로, 추가적인 비동기 처리 로직이 필요합니다.

 

 

이런식으로 사용할 수 있다.

'개인공부 > 네트워크' 카테고리의 다른 글

TCP/IP 의 송수신 원리 한눈에  (0) 2025.01.28
epoll 의 EAGAIN  (0) 2025.01.23
epoll vs 멀티스레딩  (0) 2025.01.23
DPDK 패킷 처리  (0) 2025.01.22
Low Latency 최적화  (0) 2025.01.22