Capacidade

Limites de Conexão do Pool

Codifique a capacidade real do seu backend na camada ADC — gerencie limites de conexão, taxa, SSL e memória a partir de um único perfil.

Os Limites de Conexão do Pool do TR7 definem quanto tráfego um pool de serviço pode transportar com segurança em 8 eixos independentes. Conexões simultâneas, taxa de novas conexões, taxa de sessão, conexões SSL, taxa de handshake SSL, tamanho de buffer e comportamento de retry são todos gerenciados dentro do mesmo perfil de limite. Essa abordagem não depende de um único campo de "conexões máximas" — porque 20.000 conexões idle e 2.000 novos handshakes TLS por segundo não têm o mesmo custo. O TR7 avalia a carga plain e SSL/TLS separadamente, oferecendo ao backend proteção mais precisa contra tempestades de CPU, memória e conexão. Um perfil de limite é definido uma vez e pode ser atribuído a múltiplos pools. Perfis separados podem ser criados para produção, staging, períodos de campanha, web pública, APIs internas ou requisitos por tenant. Atualizar um perfil centralmente atualiza o comportamento de capacidade de todos os pools vinculados a ele. O resultado: o TR7 transforma um limite de conexão de um número simples em um perfil de proteção operacional que codifica explicitamente a capacidade do backend, o custo de TLS, o comportamento de fila e o orçamento de memória na camada ADC.

8
Eixos de limite independentes em um único perfil: conexões, taxa, sessão, SSL, buffer, retry
1M
Máximo de conexões simultâneas configurável por pool (limite superior do maxConn)
2K
Taxa padrão de handshake SSL por segundo (maxSslRate) — protege a CPU do backend

Um único valor de conexões máximas não é suficiente para proteger a capacidade de uma aplicação moderna.

Na maioria dos designs de balanceamento de carga, o limite de conexão é tratado como um único campo: quantas conexões podem estar abertas ao mesmo tempo? Esse modelo é incompleto. Dez mil conexões keep-alive pendentes podem ser baratas, enquanto 1.000 novos handshakes SSL simultâneos podem exaurir rapidamente a CPU do backend. O mesmo número produz custos completamente diferentes dependendo do tipo de tráfego.

Contagem de conexões e taxa de conexão também não são a mesma coisa. "Até 20.000 conexões podem estar abertas ao mesmo tempo" é um teto de capacidade; "até 10.000 novas conexões podem ser abertas por segundo" é controle de burst e tempestade de conexão. Sistemas que não separam esses dois valores ou restringem desnecessariamente o tráfego legítimo de usuários ou não conseguem proteger o backend de uma onda de ataque repentina.

O tráfego TLS deve ser considerado separadamente. As operações de handshake SSL/TLS são dispendiosas em termos de CPU e, quando gerenciadas sob o mesmo limite que as conexões HTTP plain, a carga real fica invisível. Especialmente durante tráfego de web pública, gateway de API e períodos de campanha, limitar independentemente a taxa de handshake mantém o consumo de CPU do backend sob controle.

O comportamento da fila também costuma ser opaco. Quando um limite é excedido, a conexão é descartada silenciosamente, gera timeout, aguarda em fila ou o cliente recebe um 503 claro? Sem visibilidade desse comportamento, a causa raiz não fica clara no momento do incidente — os usuários veem um timeout e a equipe de operações identifica a razão real tarde demais.

Os Limites de Conexão do Pool do TR7 protegem os serviços de backend por meio de gerenciamento previsível de capacidade em vez de sobrecarga silenciosa, controlando independentemente o total de conexões, a taxa de conexão, a taxa de sessão, a carga SSL, o orçamento de buffer e o comportamento de retry.

Nossa abordagem

O TR7 gerencia a capacidade do pool não com um único campo, mas com uma estrutura de perfil construída nos eixos de conexão, taxa, SSL, retry e buffer.

Um perfil de limite em 8 dimensões codifica a capacidade em detalhe

Um único perfil define maxConn, maxRetries, rateLimitSessions, maxConnRate, maxSessRate, maxSslConn, maxSslRate e maxBufferSize. Isso permite que os limites de conexão, taxa, TLS e memória do backend sejam ajustados de forma independente.

Conexões SSL são limitadas separadamente do tráfego plain

Como os handshakes TLS são dispendiosos em termos de CPU, o TR7 gerencia maxSslConn e maxSslRate como valores distintos. Essa separação ajuda a evitar que uma tempestade de handshakes esgote o backend mesmo quando a contagem total de conexões parece baixa.

Perfis nomeados são compartilhados entre múltiplos pools

Um perfil de limite é definido com um nome único e pode ser atribuído a diferentes pools de serviço. Políticas de capacidade para produção, staging, canary ou por tenant podem ser gerenciadas com um único modelo de perfil.

Configurações de retry e buffer definem o comportamento de back-pressure

maxRetries define quantas vezes uma conexão ao backend é retentada em caso de falha transitória. maxBufferSize controla o consumo de memória por conexão em cenários de cliente lento ou backend lento.

Capacidades

Os Limites de Conexão do Pool do TR7 restringem os serviços de backend de forma controlada contra tempestades de conexão, carga TLS, bursts de sessão e pressão de memória.

maxConn limita o total de conexões simultâneas no nível do pool

maxConn define o teto para conexões abertas simultaneamente por pool, com padrão de 20.000 e limite superior de 1.000.000. Esse valor codifica na camada ADC exatamente quantas conexões o backend pode carregar ao mesmo tempo. Quando o limite é atingido, novas conexões ficam sujeitas ao comportamento de fila ou a um fluxo de rejeição.

maxConnRate controla tempestades de novas conexões por segundo

maxConnRate limita o número de novas conexões TCP que podem ser abertas por segundo, com padrão de 10.000. Ao contrário do total de conexões, este campo governa a taxa em que as conexões são abertas. Ele ajuda a evitar que o backend seja sobrecarregado em um único burst durante tempestades de conexão, varreduras agressivas ou testes de carga com comportamento inadequado. É um controle crítico de proteção contra burst para serviços voltados ao público.

maxSessRate rastreia a intensidade de novas sessões HTTP separadamente

maxSessRate aplica um teto por segundo para novas sessões, com padrão de 10.000. Reutilizar conexões keep-alive e abrir novas sessões repetidamente têm custos diferentes. Essa distinção é útil especialmente contra tempestades de abertura de sessão baseadas em cookie ou comportamento de bots que esgotam sessões da aplicação. O tráfego é restringido não apenas pela contagem de conexões, mas também pela taxa de produção de sessões.

rateLimitSessions limita novos slots de conexão com granularidade por segundo

rateLimitSessions fornece um controle separado por segundo para alocação de novos slots de conexão, com padrão de 5.000. É usado para gerenciar o comportamento de aceitação de novas conexões com maior granularidade. Ajuda o pool a avançar com capacidade controlada durante bursts repentinos de conexão. A relação entre a capacidade do backend e a taxa de aceitação do ADC é ajustada com mais precisão.

maxSslConn separa conexões TLS ativas das conexões plain

maxSslConn define um limite separado de conexões simultâneas para conexões SSL/TLS ativas, com padrão de 5.000. As conexões TLS devem ser tratadas de forma diferente das conexões plain por causa do custo de CPU, memória e processamento criptográfico. Esse limite reflete com mais precisão a capacidade real do backend no lado TLS. Simplifica o planejamento de capacidade SSL, especialmente para tráfego de web pública e API.

maxSslRate mantém a carga de handshake TLS por segundo sob controle

maxSslRate limita o número de handshakes SSL/TLS que podem ser iniciados por segundo, com padrão de 2.000. As operações de handshake podem ter custo elevado dependendo do uso de RSA ou ECDSA, do tamanho da chave e da capacidade da CPU. Este campo ajuda a evitar que tempestades de handshake TLS esgotem a CPU do backend. Proporciona proteção mais significativa que um limite de conexão plain durante DDoS ou tráfego agressivo de bots.

maxBufferSize limita o consumo de memória por conexão

maxBufferSize define o tamanho do buffer disponível por conexão em KB, com padrão de 128 KB e intervalo de 16–256 KB. O consumo de memória é controlado por este valor para clientes lentos, leitores lentos ou requisições com bodies grandes. O campo oferece proteção operacional contra comportamentos similares ao Slowloris e pressão de memória.

maxRetries configura o comportamento de retry em falhas transitórias de conexão

maxRetries define quantas vezes a conexão ao backend é retentada em caso de falha, com padrão de 3 e limite superior de 1.000. Um valor menor proporciona retorno rápido de erro; um valor maior pode melhorar a resiliência durante instabilidades transitórias de rede. No entanto, retries excessivos podem adicionar carga a um backend já sobrecarregado e devem ser escolhidos com cuidado.

O vínculo perfil-pool torna a política de capacidade gerenciável centralmente

Um perfil de limite é definido com um nome único e pode ser atribuído a múltiplos pools. Editar um único perfil altera o comportamento de conexão de todos os pools vinculados a ele. Esse modelo reduz a necessidade de configurar cada pool de serviço individualmente. Perfis de produção, teste, campanha ou por tenant podem ser gerenciados de forma independente.

O comportamento de fila produz erros visíveis em vez de descartes silenciosos

Quando um limite é excedido, as conexões podem aguardar em fila até uma profundidade definida. Quando a fila fica cheia, o cliente recebe um erro claro em vez de um timeout silencioso. As equipes de operações podem identificar quando um teto de capacidade é atingido mais rapidamente por meio de sinais de erro explícitos como 503. O problema se torna um evento de capacidade mensurável em vez de uma espera ambígua do lado do usuário.

Profundidade operacional

Os limites de conexão do pool devem ser planejados em conjunto com valores padrão, comportamento de desativação por zero, geração global/frontend/pool e orçamento de memória.

01

Valores padrão do perfil

O modelo padrão usa maxConn 20K, maxRetries 3, rateLimitSessions 5K, maxConnRate 10K, maxSessRate 10K, maxSslConn 5K, maxSslRate 2K e maxBufferSize 128 KB. Esses são pontos de partida. O ajuste real deve ser feito de acordo com a capacidade do backend, o custo de TLS e o padrão de tráfego.

02

Desativação com zero

Todos os campos de limite aceitam 0 como valor mínimo. Isso pode ser usado em cenários onde um controle específico deve ser desativado ou se comportar como ilimitado. Em produção, no entanto, um valor de 0 deve ser definido deliberadamente — caso contrário, a proteção esperada é removida.

03

Limite superior de alta densidade

maxConn pode ser definido até 1.000.000. Isso proporciona flexibilidade para cenários de keep-alive de muito alta densidade ou de pool de conexões. Mesmo assim, a capacidade real não é determinada apenas por esse número — descritores de arquivo, memória, CPU, custo de TLS e limites do backend devem ser todos considerados juntos.

04

Orçamento de memória de buffer

maxBufferSize afeta diretamente o consumo de memória por conexão. Um valor menor aumenta a proteção de memória, mas pode introduzir problemas de compatibilidade para aplicações com bodies grandes ou streams lentos. O intervalo de 16–256 KB permite uma troca controlada entre segurança e necessidades da aplicação.

05

Geração de limite em múltiplos níveis

Os valores do perfil são refletidos nos comportamentos de conexão em nível global, frontend e pool. Essa separação permite que a capacidade geral do dispositivo e a capacidade de um pool específico sejam gerenciadas de forma independente. Em implantações grandes, a capacidade total do ADC e a capacidade de um único pool não devem ser confundidas.

06

Limites de bind SSL

Os limites de conexão SSL estão vinculados ao comportamento de bind TLS. Valores como maxSslConn permitem que as conexões TLS sejam gerenciadas separadamente das conexões plain. Isso é importante para proteger o orçamento de CPU em serviços voltados ao público onde o tráfego TLS é intenso.

Quando usar

Perfil de capacidade temporário em dias de campanha de e-commerce

Uma plataforma de e-commerce com perfil de 20K conexões em dias normais pode mudar para um perfil de maior capacidade durante um período de campanha. O mesmo pool é mantido; apenas o perfil de limite é alterado para preparar o tráfego da campanha.

Separação de capacidade SSL no tráfego de API interna de banco

Um banco pode permitir um alto total de conexões em seu pool de API interna enquanto mantém a taxa de conexão e handshake SSL mais restrita. Essa estrutura controla o custo de TLS e protege a CPU do backend de carga repentina de handshakes.

Proteção contra tempestade de conexão em serviços web públicos

Em uma aplicação web voltada para a internet, varreduras de bots ou clientes com comportamento inadequado podem abrir grande número de conexões em pouco tempo. O TR7 limita a taxa de novas conexões via maxConnRate e rateLimitSessions, protegendo o backend de uma tempestade de conexão.

Limitando o consumo de memória em tráfego de clientes lentos

Clientes com leitura lenta podem aumentar o uso de buffer por conexão. O TR7 restringe o consumo de memória desse tráfego com um perfil de maxBufferSize menor, permitindo que outros usuários continuem recebendo o serviço.

Perguntas frequentes

Qual é a diferença entre maxConn e maxConnRate?
maxConn é um teto de capacidade — o número máximo de conexões que podem estar abertas simultaneamente em um pool. maxConnRate é um controle de taxa — o número máximo de novas conexões TCP que podem ser abertas por segundo. O primeiro protege contra sobrecarga por acumulação de conexões; o segundo protege contra tempestades de conexão e ataques de burst.
Por que os limites de conexão SSL são definidos separadamente dos limites de conexão plain?
As operações de handshake TLS são dispendiosas em termos de CPU em comparação com conexões plain. Gerenciá-las sob o mesmo limite que conexões HTTP plain torna a carga real invisível. maxSslConn e maxSslRate fornecem controle independente sobre o lado TLS, o que é particularmente importante para tráfego de web pública e API onde o orçamento de CPU é limitado.
O que acontece quando um limite de conexão é excedido?
Quando um limite é excedido, novas conexões podem aguardar em fila até uma profundidade configurável. Se a fila ficar cheia, o cliente recebe um sinal de erro claro em vez de um descarte silencioso. Isso torna os eventos de capacidade visíveis para a equipe de operações por meio de métricas e sinais de erro explícitos como 503.
Um único perfil de limite pode ser usado em múltiplos pools?
Sim. Um perfil é definido com um nome único e pode ser atribuído a quantos pools forem necessários. Atualizar o perfil centralmente aplica a mudança a todos os pools vinculados a ele. Esse modelo reduz o esforço de configuração manual em implantações grandes com muitos pools de serviço.
O que significa definir um campo de limite como 0?
Um valor de 0 desativa o controle correspondente ou o faz se comportar como ilimitado. Isso é útil em cenários específicos onde um limite intencionalmente não deve ser aplicado. Em ambientes de produção, 0 deve ser definido deliberadamente — caso contrário, a proteção que se assumia ativa é removida silenciosamente.
Como o maxBufferSize deve ser ajustado para request bodies grandes?
maxBufferSize controla a memória de buffer por conexão e varia de 16 KB a 256 KB, com padrão de 128 KB. Aplicações com request bodies grandes, como uploads de arquivo ou payloads POST pesados, podem precisar de um valor maior. Aplicações que requerem proteção contra pressão de memória por clientes lentos podem se beneficiar de um valor menor. A configuração correta depende do padrão de tráfego específico e do comportamento do backend.

Proteja a capacidade do backend com precisão — não com um único número

Perfis de limite de conexão em 8 eixos para tempestades de conexão, carga TLS e pressão de memória por clientes lentos. Vamos fazer uma configuração ao vivo nos seus próprios serviços.