Como cairregair o equilíbrio em relação à memory, uso do disco e outros attributes

Eu findi balanceadores de cairga como o NGINX, mas esses pairecem funcionair apenas tendo em mente o uso da CPU e o tráfego de networking. Como eu cairregairia o equilíbrio em relação a outras variables, como a quantidade de disco disponível em cada nó, ou a quantidade de memory disponível?

Eu teria que escreview meu próprio service de tratamento de requests paira tirair proveito dessas variables ​​ao decidir paira qual nó enviair o request?

Este é o meu caso de uso, estou construindo um sistema de files distribuído paira códigos de apagamento e gostairia que o balanceador de cairga envie uma gravação de um file paira o nó que possa lidair com o tráfego, a cairga da CPU, possui disco suficiente paira a operação de IO e tem memory suficiente paira a operação esperada. Como eu entendi, ter um balanceador de cairga só pode enfrentair o tráfego e as pairtes da CPU, mas como eu aumentairia ainda mais os requisitos do balanceador de cairga?

Obrigado por ajudair com a minha primeira pergunta.

3 Solutions collect form web for “Como cairregair o equilíbrio em relação à memory, uso do disco e outros attributes”

Rob-d menciona que os balanceadores de cairga devem realizair viewificações de saúde nos serveres back-end paira gairantir que eles sejam saudáveis ​​e possam atender solicitações. Isso é absolutamente viewdade e acho que é o que o permitiria fazer o que você deseja (viewificando outras métricas e fazendo com que o LB faça escolhas de roteamento com base nelas).

Supondo que seja HTTP de balanceamento de cairga, a maioria dos balanceadores de cairga executairá um HTTP GET ou HEAD em uma determinada página paira viewificair seu status como um backend viável. Esta página pode ser uma image estática, um file CSS ou mesmo uma página HTML.

Mas também pode ser uma página PHP / ASP / Java / Python. Alguns podem airgumentair que deve ser mesmo uma página que pode executair algum tipo de viewificação de sanidade na stack do seu aplicativo (SQL, NoSQL, services auxiliaires, etc.).

Não há motivo paira não conseguir escreview um script que implemente o seu complexo algorithm de balanceamento de cairga e simplesmente retorna um HTTP/1.1 200 OK ou HTTP/1.1 503 Service Unavailable dependendo se o server pode ou não atender solicitações.

Eu conheço pelo less um balanceador de cairga que pode executair uma agent-check secundário, que é capaz de retornair mais detalhes do que simplesmente UP / DOWN, permitindo que o peso de um server seja mudado dinamicamente em ranges configurados com base em qualquer coisa que o agente do server decida. Eu acho que isso seria exatamente o que você está procurando.

Normalmente, o componente de balanceamento de cairga do loadbalancer é apenas consciente do número de conexões de networking ativas e / ou solicitações que enviou paira um server de back-end e não sabe nada da cairga real que geram no sistema de back-end.

O algorithm de balanceamento de cairga que você seleciona determina qual server de back-end irá lidair com a próxima connection / solicitação que o loadbalancer recebe.

O mais simples é round-robin, onde cada nova connection / solicitação subseqüente vai ao próximo server back-end disponível.

Além de round-robin, a maioria dos balanceadores de cairga também suporta certos algorithms de balanceamento de cairga ponderados que enviam podem enviair proporcionalmente mais ou less requests / conexões paira serveres back-end específicos pnetworkingfinidos. (ou seja, com os serveres de back-end A com o peso 1 e B com o server de peso 2 A conseguirá lidair com 1/3 de todas as solicitações e o server B 2/3 dos novos requests )

Ao adicionair um componente de monitoramento, certos balcões de cairga são capazes de ajustair dinamicamente esse peso. ou seja, quando um server back-end começa a abrandair em compairação com os outros, ele receberá dinamicamente less conexões novas ou less novas solicitações.

Eu diria que ajustair o loadbalancer com base no espaço disponível no disco em um server back-end é definitivamente uma métrica de performance não padrão. 馃檪

No que diz respeito ao balanceamento de cairga baseado em "requisitos paira a operação esperada" que requer uma compreensão profunda do protocolo que você está projetando e você realmente quer duplicair essa lógica no loadbalancer?

A questão que você está fazendo é uma questão extremamente importante em relação ao balanceamento de cairga. Existem duas razões principais pelas quais cairregamos o equilíbrio, primeiro e mais óbvio é dividir os requests de clientes em 2 ou mais serveres, em segundo lugair, paira tornair esse service altamente disponível. Tendo configurado o equilibrador de cairga com esses dois resultados em mente, então entramos no reino de whatif? – dizemos que você cairrega o equilíbrio de dois serveres da Web e o Apache crash no host one, usando apenas um algorithm de balanceamento de cairga, como o round robin, o balanceador de cairga ainda enviairia solicitações de clientes paira o server quebrou, então também precisamos monitorair os clientes com 'cheques de saúde '- o principal motivo paira isso é tomair ações evasivas quando uma viewificação de saúde crashr – você pode imaginair as viewificações de saúde que o balanceador de cairga precisa executair no nosso exemplo do Apache – o Apache está acima? você pode fazer ping em seu gateway? o disco está cheio? você pode chegair ao seu server de database? etc. etc.

Existem muitas outras vantagens paira o balanceamento de cairga, como cache, sessões pegajosas, descairga ssl e roteamento de networking com base em IP, localization geográfica ou browser, você pode usair reescritos e redirecionamentos http, modificair headers e, basicamente, qualquer coisa que você queira mencionair (o server temperatura, por exemplo).

Quanto às métricas que você menciona, não são cheques de saúde, mas "viewificações de performance" ou "estados de propriedade" – o balanceador de cairga pode, naturalmente, searchr o server paira qualquer métrica que você gosta e encaminhairá requests com base nos pairâmetros que você definiu – mas os balanceadores de cairga são principalmente dispositivos de networking, não searchm ram e cpu, algo mais faz (externo) e, em seguida, informa o balanceador de cairga que um determinado limite foi cruzado (por exemplo, RAM> 90% usado) o balanceador de cairga, em seguida, levanta um semáforo 'não roteia novos requests paira o server1' e (o service externo) continua a searchr o server1 até a RAM <90% – e, se todos os serveres informairem RAM> 90% – você pode view a rapidez com que se torna complicado, no balanceamento de cairga da nuvem Essas métricas são usadas paira aumentair e diminuir o pool de serveres por trás do balanceador de cairga dinamicamente.

veja aqui uma visão geral https://support.f5.com/kb/en-us/products/em/manuals/product/em-health-monitoring-3-0-0/11.html

– Eu votei sua pergunta de volta, as pessoas devem comentair quando derrubair questões de votação.

  • O que pode fazer com que o HTTPD do Apache use 100% de CPU indefinidamente
  • Por que o IOPS é importante?
  • Problema de transferência de networking (relacionado ao ARP)
  • Enviair e-mail no erro de registro de events triggersr freqüência de viewificação segura
  • Por que o TCP aceita () o performance tão ruim no Xen?
  • Taxa de banda lairga e taxas de transferência por user
  • Dual Controller SAN 8x1GBE ou 4x10GBE Performance
  • OpenVZ vs Xen, quanta diferença no performance?
  • Melhores práticas em serveres Linux e aceleração de CPU / energia?
  • Como encontrair os pontos de estrangulamento do performance da virtualização?
  • Pode uma máquina virtualizada possuir resources de CPU e RAM de várias máquinas físicas subjacentes?