Serwer EPOLL
Akceptor epoll systemu Linux dla wysokiej współbieżności. Obsługuj tysiące połączeń na serwerze sgcWebSockets, używając ograniczonej puli wątków zamiast jednego wątku na połączenie, jak domyślnie robi to Indy.
Akceptor epoll systemu Linux dla wysokiej współbieżności. Obsługuj tysiące połączeń na serwerze sgcWebSockets, używając ograniczonej puli wątków zamiast jednego wątku na połączenie, jak domyślnie robi to Indy.
Wysokowydajny tryb I/O dla serwerów opartych na Indy w systemie Linux. Włącz epoll na standardowym serwerze poprzez właściwość IOHandlerOptions i skaluj daleko poza model jednego wątku na połączenie.
TsgcWebSocketServer / TsgcWebSocketHTTPServer — włączane przez IOHandlerOptions
Akceptor epoll systemu Linux z pulą wątków — tylko Linux
Linux
Enterprise
Wybierz iohEPOLL we właściwości IOHandlerOptions serwera Indy, aby przełączyć się z domyślnego modelu wątków na pulę wątków 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;
Jak działa pula wątków epoll i jak dostroić ją do swojego obciążenia.
Obsługuj tysiące połączeń, używając ograniczonej puli wątków zamiast jednego wątku na połączenie. Asynchroniczne (nakładane) żądania są rozdzielane po puli, zamiast dedykować wątek dla każdego gniazda.
Wątki używane do asynchronicznych żądań EPOLL. Domyślna wartość 0 oznacza, że liczba jest obliczana na podstawie liczby procesorów. W Delphi 7 i 2007 domyślną wartością jest 32, ponieważ cpucount nie jest obsługiwane. W razie potrzeby dostosuj ją ręcznie.
Domyślnie każde żądanie dla połączenia może działać na innym wątku puli. Ustaw WorkOpThreads, aby przypiąć każde połączenie do tego samego wątku. Wpływa to na wydajność, więc ustaw wartość większą od zera tylko wtedy, gdy wymagasz tej funkcji.
Zalecane, gdy musisz obsługiwać tysiące połączeń. Jeśli twój serwer obsługuje maksymalnie około 100 jednoczesnych połączeń, możesz pozostać przy domyślnym modelu wątków Indy.
EPOLL wykrywa martwe gniazdo tylko przy zapisie. Aby wywołać OnDisconnect, włącz CleanDisconnect := True na TsgcWebSocketClient lub włącz heartbeat po stronie serwera, który okresowo pinguje klientów.
Zwiększ limit otwartych deskryptorów plików, aby zwiększyć liczbę jednoczesnych otwartych połączeń. ulimit -n 10000 ustawia maksymalną liczbę otwartych deskryptorów plików na 10000.
Wiarygodne źródła dla mechanizmu, na którym opiera się ten tryb.
Przejdź bezpośrednio do pomocy online, pobierz gotowy do uruchomienia projekt demo i przeczytaj pełny podręcznik.
| Pomoc online — EPOLL Pełna dokumentacja funkcji z przykładami kodu dla Delphi, C++ Builder i .NET. | Otwórz | |
| Projekt demo — Demos\Server Gotowy do uruchomienia projekt przykładowy. Dostarczany w pakiecie sgcWebSockets — pobierz wersję próbną poniżej. | Otwórz | |
| Podręcznik użytkownika (PDF) Kompleksowy podręcznik obejmujący każdy komponent w bibliotece. | Otwórz |