A importância da latência
Como mostra a tabela, se você quiser aproveitar o desempenho máximo teórico que um SSD poderia oferecer, a rede pode se tornar um gargalo com de 1 a 9 SSDs, dependendo do tipo de rede utilizada.
NOTA: Os números foram arredondados, já que um SSD parcial não é possível.Isso também não leva em consideração a CPU necessária para lidar com todas as E / S e assume a capacidade ilimitada da CPU do controlador.
O impacto da latência da memória
A latência de memória principal típica é ~ 100ns (irá variar), podemos realizar os seguintes cálculos:
Memória local lê latência = 100ns + [sobrecarga do SO / hypervisor]
Latência de leitura de memória de rede = 100ns + latência de RT de NW + [2 x sobrecarga de SO / hipervisor]
Se assumirmos que um RTT de rede típico é de ~ 0,5 ms (varia de acordo com o fornecedor do comutador), o que é de ~ 500.000 ns que se reduz a:
Latência de leitura de memória de rede = 100ns + 500.000ns + [2 x sobrecarga do SO / hypervisor]
Se teoricamente supomos uma rede muito rápida com um RTT de 10.000ns:
A latência de leitura de memória de rede = 100 ns + 10.000 ns + [2 x sobrecarga do SO / hypervisor]
O que isso significa é que, mesmo com uma rede teoricamente rápida, há uma sobrecarga de 10.000% quando comparada a um acesso à memória sem rede.Com uma rede lenta, isso pode estar acima de uma sobrecarga de latência de 500.000%.
Para aliviar essa sobrecarga, tecnologias de cache do lado do servidor são introduzidas.
Espaço do Usuário vs. Kernel
Um tópico frequentemente debatido é o argumento entre fazer as coisas no kernel versus no espaço do usuário. Aqui vou explicar o que é cada um e seus respectivos prós / contras.
Qualquer sistema operacional (SO) tem duas áreas principais de execução:
Espaço do kernel
A parte mais privilegiada do sistema operacional
Lida com agendamento, gerenciamento de memória, etc.
Contém os drivers de dispositivos físicos e manipula a interação de hardware
Espaço do usuário
"Todo o resto"
É aqui que a maioria dos aplicativos e processos vivem
Memória e execução protegidas
Esses dois espaços funcionam em conjunto para que o sistema operacional funcione. Agora, antes de seguir em frente, vamos definir alguns itens importantes:
Chamada de sistema
Aka kernel call, uma requisição feita via interrupção (mais aqui depois) de um processo ativo que algo pode ser feito pelo kernel
Mudança de contexto
Mudando a execução do processo para o kernel e vice-versa
Por exemplo, use o seguinte caso de uso de um aplicativo simples para gravar alguns dados no disco. Neste o seguinte aconteceria:
App quer gravar dados no disco
Invoca uma chamada do sistema
Mudança de contexto para o kernel
Dados de cópias do kernel
Executa gravação no disco via driver
A seguir, mostramos uma amostra dessas interações:
Um é melhor que o outro? Na realidade, existem prós e contras para cada um:
Espaço do usuário
Muito flexível
Domínios de falha isolados (processo)
Pode ser ineficiente
Tempo de custo dos switches de contexto (~ 1,000ns)
Espaço do kernel
Muito rígido
Domínio de falha grande
Pode ser eficiente
Reduz interruptores de contexto
O movimento para o espaço do usuário / polling
Como os dispositivos se tornaram muito mais rápidos (por exemplo, NVMe, Intel Optane, pMEM), o kernel e a interação com o dispositivo se tornaram um gargalo.
Para eliminar esses gargalos, muitos fornecedores estão migrando do kernel para o espaço do usuário com sondagem e obtendo resultados muito melhores.
Um ótimo exemplo disso é o Kit de Desenvolvimento de Desempenho de Armazenamento Intel (SPDK) e o Kit de Desenvolvimento de Plano de Dados (DPDK) . Esses projetos são voltados para maximizar o desempenho e reduzir a latência, tanto quanto possível, e mostraram grande sucesso.
Essa mudança é composta de duas mudanças principais:
Movendo drivers de dispositivos para o espaço do usuário (em vez do kernel)
Usando polling (em vez de interrupções)
Isso permite um desempenho muito superior quando comparado aos predecessores baseados em kernel, pois elimina:
Chamadas caras do sistema e o manipulador de interrupções
Cópias de dados
Comutadores de contexto
A seguir mostra a interação do dispositivo usando os drivers de espaço do usuário:
Na verdade, um software que a Nutanix desenvolveu para o seu produto AHV (vhost-user-scsi) está sendo usado pela Intel para seu projeto SPDK.
Livro da escala da Web
web · scale - / web 'skãl / - arquitetura de computação de nomes - uma nova abordagem arquitetônica para infraestrutura e computação.
Esta seção apresentará alguns dos principais conceitos por trás da infraestrutura “Web-scale” e por que os aproveitamos. Antes de começar, eu só queria afirmar claramente a escala da Web não significa que você precisa ser "escala da web" (por exemplo, Google, Facebook ou Microsoft). Essas construções são aplicáveis e benéficas em qualquer escala (3 nós ou milhares de nós).
Desafios históricos incluídos:
Complexidade, complexidade, complexidade
Desejo de crescimento baseado em incrementos
A necessidade de ser ágil
Existem algumas construções importantes usadas quando se fala em infra-estrutura “Web-scale”:
Hiper-convergênciaInteligência definida por software
Sistemas Autônomos Distribuídos
Escalada incremental e linear
Outros itens relacionados:
Automação baseada em API e análise avançada
Segurança como inquilino principal
Auto-cura
No próximo post mostraremos uma perspectiva técnica sobre o que elas realmente significam.
ASG
https://www.asgit.com.br/
contato@asg.com.br
(51) 3376.1210
Comments