Benefícios de conexões HTTP ativas, ociosas e simultâneas
A maneira como você configura as conexões HTTP pode afetar o desempenho do sistema StorageGRID . As configurações variam dependendo se a conexão HTTP está ativa ou ociosa ou se você tem várias conexões simultâneas.
Você pode identificar os benefícios de desempenho para os seguintes tipos de conexões HTTP:
-
Conexões HTTP ociosas
-
Conexões HTTP ativas
-
Conexões HTTP simultâneas
Benefícios de manter conexões HTTP inativas abertas
Você deve manter as conexões HTTP abertas mesmo quando os aplicativos clientes estiverem ociosos para permitir que os aplicativos clientes realizem transações subsequentes na conexão aberta. Com base nas medições do sistema e na experiência de integração, você deve manter uma conexão HTTP inativa aberta por no máximo 10 minutos. O StorageGRID pode fechar automaticamente uma conexão HTTP que seja mantida aberta e ociosa por mais de 10 minutos.
Conexões HTTP abertas e ociosas oferecem os seguintes benefícios:
-
Latência reduzida desde o momento em que o sistema StorageGRID determina que precisa executar uma transação HTTP até o momento em que o sistema StorageGRID pode executar a transação
A latência reduzida é a principal vantagem, especialmente pelo tempo necessário para estabelecer conexões TCP/IP e TLS.
-
Aumento da taxa de transferência de dados ao preparar o algoritmo de inicialização lenta do TCP/IP com transferências realizadas anteriormente
-
Notificação instantânea de várias classes de condições de falha que interrompem a conectividade entre o aplicativo cliente e o sistema StorageGRID
Determinar por quanto tempo manter uma conexão ociosa aberta é uma compensação entre os benefícios do início lento associado à conexão existente e a alocação ideal da conexão aos recursos internos do sistema.
Benefícios das conexões HTTP ativas
Para conexões diretas com nós de armazenamento, você deve limitar a duração de uma conexão HTTP ativa a um máximo de 10 minutos, mesmo que a conexão HTTP execute transações continuamente.
Determinar a duração máxima que uma conexão deve ser mantida aberta é uma compensação entre os benefícios da persistência da conexão e a alocação ideal da conexão aos recursos internos do sistema.
Para conexões de clientes com nós de armazenamento, limitar conexões HTTP ativas oferece os seguintes benefícios:
-
Permite o balanceamento de carga ideal em todo o sistema StorageGRID .
Com o tempo, uma conexão HTTP pode não ser mais ideal, pois os requisitos de balanceamento de carga mudam. O sistema executa seu melhor balanceamento de carga quando os aplicativos clientes estabelecem uma conexão HTTP separada para cada transação, mas isso anula os ganhos muito mais valiosos associados às conexões persistentes.
-
Permite que aplicativos clientes direcionem transações HTTP para serviços LDR que tenham espaço disponível.
-
Permite iniciar procedimentos de manutenção.
Alguns procedimentos de manutenção começam somente depois que todas as conexões HTTP em andamento são concluídas.
Para conexões de clientes com o serviço Load Balancer, limitar a duração das conexões abertas pode ser útil para permitir que alguns procedimentos de manutenção sejam iniciados imediatamente. Se a duração das conexões do cliente não for limitada, poderá levar vários minutos para que as conexões ativas sejam encerradas automaticamente.
Benefícios das conexões HTTP simultâneas
Você deve manter várias conexões TCP/IP abertas com o sistema StorageGRID para permitir o paralelismo, o que aumenta o desempenho. O número ideal de conexões paralelas depende de uma variedade de fatores.
Conexões HTTP simultâneas fornecem os seguintes benefícios:
-
Latência reduzida
As transações podem começar imediatamente em vez de esperar que outras transações sejam concluídas.
-
Aumento da produtividade
O sistema StorageGRID pode executar transações paralelas e aumentar o rendimento agregado de transações.
Os aplicativos clientes devem estabelecer várias conexões HTTP. Quando um aplicativo cliente precisa executar uma transação, ele pode selecionar e usar imediatamente qualquer conexão estabelecida que não esteja processando uma transação no momento.
A topologia de cada sistema StorageGRID tem um pico de rendimento diferente para transações e conexões simultâneas antes que o desempenho comece a cair. O pico de rendimento depende de fatores como recursos de computação, recursos de rede, recursos de armazenamento e links WAN. O número de servidores e serviços e o número de aplicativos que o sistema StorageGRID suporta também são fatores.
Os sistemas StorageGRID geralmente oferecem suporte a vários aplicativos clientes. Você deve ter isso em mente ao determinar o número máximo de conexões simultâneas usadas por um aplicativo cliente. Se o aplicativo cliente consistir em várias entidades de software, cada uma estabelecendo conexões com o sistema StorageGRID , você deverá somar todas as conexões entre as entidades. Pode ser necessário ajustar o número máximo de conexões simultâneas nas seguintes situações:
-
A topologia do sistema StorageGRID afeta o número máximo de transações e conexões simultâneas que o sistema pode suportar.
-
Os aplicativos clientes que interagem com o sistema StorageGRID por meio de uma rede com largura de banda limitada podem ter que reduzir o grau de simultaneidade para garantir que as transações individuais sejam concluídas em um tempo razoável.
-
Quando muitos aplicativos cliente compartilham o sistema StorageGRID , pode ser necessário reduzir o grau de simultaneidade para evitar exceder os limites do sistema.
Separação de pools de conexão HTTP para operações de leitura e gravação
Você pode usar pools separados de conexões HTTP para operações de leitura e gravação e controlar a quantidade de um pool a ser usada para cada uma. Pools separados de conexões HTTP permitem que você controle melhor as transações e equilibre as cargas.
Os aplicativos cliente podem criar cargas que são dominantes em recuperação (leitura) ou dominantes em armazenamento (gravação). Com pools separados de conexões HTTP para transações de leitura e gravação, você pode ajustar quanto de cada pool será dedicado para transações de leitura ou gravação.