Servidor IOCP
Acceptor de Windows I/O Completion Ports para alta simultaneidade. Mude o servidor sgcWebSockets para o IOHandler IOCP e atenda milhares de conexões a partir de um pool de threads pequeno e fixo, em vez de uma thread por conexão.
Acceptor de Windows I/O Completion Ports para alta simultaneidade. Mude o servidor sgcWebSockets para o IOHandler IOCP e atenda milhares de conexões a partir de um pool de threads pequeno e fixo, em vez de uma thread por conexão.
Um modo de I/O Completion Ports exclusivo do Windows para os servidores padrão do sgcWebSockets. Habilite-o por meio de IOHandlerOptions para escalar muito além do modelo padrão de uma thread por conexão do Indy.
TsgcWebSocketServer / TsgcWebSocketHTTPServer — habilitado via IOHandlerOptions.
Windows I/O Completion Ports (apenas Windows).
Windows
Enterprise
Acesse a propriedade IOHandlerOptions e selecione iohIOCP como IOHandler Type. Deixe as contagens de threads em zero para dimensionar automaticamente a partir da contagem de CPUs.
Server.IOHandlerOptions.IOHandlerType := iohIOCP;
Server.IOHandlerOptions.IOCP.IOCPThreads := 0;
Server.IOHandlerOptions.IOCP.WorkOpThreads := 0;
Server->IOHandlerOptions->IOHandlerType = iohIOCP;
Server->IOHandlerOptions->IOCP->IOCPThreads = 0;
Server->IOHandlerOptions->IOCP->WorkOpThreads = 0;
Server.IOHandlerOptions.IOHandlerType = iohIOCP;
Server.IOHandlerOptions.IOCP.IOCPThreads = 0;
Server.IOHandlerOptions.IOCP.WorkOpThreads = 0;
Como o IOHandler IOCP se comporta e como ajustá-lo.
Trate milhares de conexões a partir de um pool limitado de threads em vez de uma thread por conexão, do jeito que o Indy funciona por padrão.
Threads usadas para as requisições assíncronas (overlapped) do IOCP. 0 dimensiona automaticamente a partir da contagem de processadores. No Delphi 7 e 2007 o padrão é 32, porque cpucount não está disponível.
Fixe uma conexão na mesma thread quando você precisar. As requisições são normalmente distribuídas pelo pool, então cada requisição de uma conexão pode rodar em uma thread diferente. Defina um valor maior que zero apenas se você precisar disso. É uma troca de desempenho.
Recomendado quando você precisa tratar milhares de conexões. Se o seu servidor chega ao limite por volta de 100 conexões simultâneas, o modelo de threads padrão do Indy é suficiente.
O IOCP detecta um socket morto apenas na escrita. Habilite CleanDisconnect no TsgcWebSocketClient ou um heartbeat no lado do servidor para que o servidor perceba a queda e OnDisconnect seja disparado.
Fontes autoritativas para o mecanismo sobre o qual este modo é construído.
Acesse direto a referência do recurso, baixe o projeto de demonstração pronto para rodar e faça o download da versão de avaliação.
| Ajuda online — IOCP Referência do recurso para habilitar as Windows I/O Completion Ports no servidor sgcWebSockets. | Abrir | |
| Projeto de demonstração — Demos\Server Projeto de exemplo pronto para rodar. Acompanha o pacote sgcWebSockets — baixe a versão de avaliação abaixo. | Abrir | |
| Manual do usuário (PDF) Manual abrangente cobrindo todos os componentes da biblioteca. | Abrir |