EPOLL Server

고동시성을 위한 Linux epoll 수용기예요. Indy가 기본으로 동작하는 연결당 하나의 스레드 방식 대신, 제한된 스레드 풀로 sgcWebSockets 서버에서 수천 개의 연결을 처리하세요.

EPOLL I/O Handler

Linux의 Indy 기반 서버를 위한 고성능 I/O 모드예요. IOHandlerOptions 속성으로 표준 서버에서 epoll을 활성화하면 연결당 스레드 모델을 훨씬 뛰어넘어 확장할 수 있어요.

컴포넌트 클래스

TsgcWebSocketServer / TsgcWebSocketHTTPServerIOHandlerOptions로 활성화해요

메커니즘

Linux epoll 스레드 풀 수용기 — Linux 전용

플랫폼

Linux

에디션

Enterprise

IOHandler 타입을 설정하면 끝

Indy 서버의 IOHandlerOptions 속성에서 iohEPOLL을 선택하면 기본 스레드 모델에서 epoll 스레드 풀로 전환돼요.

Server.IOHandlerOptions.IOHandlerType := iohEPOLL;
Server.IOHandlerOptions.EPOLL.EPOLLThreads := 0;
Server.IOHandlerOptions.EPOLL.WorkOpThreads := 0;
Server->IOHandlerOptions->IOHandlerType = iohEPOLL;
Server->IOHandlerOptions->EPOLL->EPOLLThreads = 0;
Server->IOHandlerOptions->EPOLL->WorkOpThreads = 0;
Server.IOHandlerOptions.IOHandlerType = iohEPOLL;
Server.IOHandlerOptions.EPOLL.EPOLLThreads = 0;
Server.IOHandlerOptions.EPOLL.WorkOpThreads = 0;

내부 구성

epoll 스레드 풀이 어떻게 동작하고 워크로드에 맞게 어떻게 튜닝하는지 알아보세요.

스레드 풀 I/O

연결당 하나의 스레드 대신 제한된 스레드 풀로 수천 개의 연결을 처리해요. 비동기(오버랩) 요청은 각 소켓에 스레드를 전담시키지 않고 풀 전체에 분산돼요.

EPOLLThreads

EPOLL 비동기 요청에 사용하는 스레드예요. 기본값 0은 프로세서 수에 따라 개수가 계산된다는 의미예요. Delphi 7과 2007에서는 cpucount가 지원되지 않아 기본값이 32예요. 필요할 때 수동으로 조정하세요.

WorkOpThreads

기본적으로 한 연결의 각 요청이 서로 다른 풀 스레드에서 실행될 수 있어요. 모든 연결을 동일한 스레드에 고정하려면 WorkOpThreads를 설정하세요. 성능에 영향을 주므로 이 기능이 필요할 때만 0보다 큰 값을 설정하세요.

언제 사용하나

수천 개의 연결을 처리해야 할 때 권장돼요. 서버가 최대 동시 연결 100개 안팎을 처리한다면 기본 Indy 스레드 모델을 그대로 사용해도 돼요.

연결 끊김 감지

EPOLL은 쓰기 시에만 끊긴 소켓을 감지해요. OnDisconnect를 발생시키려면 TsgcWebSocketClient에서 CleanDisconnect := True를 활성화하거나, 주기적으로 클라이언트를 핑하는 서버 측 하트비트를 활성화하세요.

Linux 연결 한도

동시에 열 수 있는 연결 수를 늘리려면 열린 파일 디스크립터 한도를 높이세요. ulimit -n 10000은 열린 파일 디스크립터의 최대 개수를 10000으로 설정해요.

사양 & 참고 자료

이 모드가 의존하는 메커니즘의 공인된 원문 자료예요.

문서 & 데모

온라인 도움말로 바로 이동하고, 바로 실행 가능한 데모 프로젝트를 받고, 전체 매뉴얼을 읽어 보세요.

온라인 도움말 — EPOLL Delphi, C++ Builder, .NET 코드 샘플이 포함된 전체 기능 레퍼런스예요.
데모 프로젝트 — Demos\Server 바로 실행 가능한 예제 프로젝트예요. sgcWebSockets 패키지에 포함돼 있어요 — 아래에서 평가판을 다운로드하세요.
사용자 매뉴얼 (PDF) 라이브러리의 모든 컴포넌트를 다루는 종합 매뉴얼이에요.

Linux에서 수천 개의 연결까지 확장하세요

무료 평가판을 다운로드하고 Delphi 서버를 Linux epoll 스레드 풀로 전환하세요.