Database
 sql >> Base de Dados >  >> RDS >> Database

Velocidades de rendimento e feeds sequenciais


Há algum tempo venho falando sobre a importância do desempenho de taxa de transferência sequencial para o SQL Server. A taxa de transferência sequencial é extremamente importante para muitas operações comuns no SQL Server, incluindo:
  1. Backups e restaurações completas do banco de dados
  2. Trabalho de criação e manutenção de índices
  3. Inicializando instantâneos e assinaturas de replicação
  4. Inicializando réplicas AlwaysOn AG
  5. Inicializando espelhos de banco de dados
  6. Iniciando secundários de envio de logs
  7. Cargas de trabalho de consulta de data warehouse relacional
  8. Operações de ETL de data warehouse relacional

Apesar da importância da taxa de transferência sequencial para o SQL Server, ainda vejo muitas pessoas que se concentram apenas no desempenho e latência de E/S aleatória, ignorando amplamente o desempenho de taxa de transferência sequencial. Como você está pensando no desempenho de taxa de transferência sequencial, você precisa considerar o caminho completo dos dados, desde o repouso na mídia de armazenamento até o consumo pelos núcleos do processador.

Dependendo do tipo de tecnologia de armazenamento que você está usando, ela pode estar conectada ao servidor host por uma placa de interface de rede Ethernet (NIC) ou placa adaptadora de canal de host InfiniBand (HCA). Esse tipo de conexão é mais comum para SANs iSCSI e para compartilhamentos de arquivos SMB 3.0. O Microsoft TechNet tem uma boa referência sobre esse assunto, chamada Melhorar o desempenho de um servidor de arquivos com SMB Direct.

A taxa de transferência sequencial teórica de um único dispositivo NIC/HCA (por porta) é mostrada na Figura 1:

Figura 1:taxa de transferência teórica NIC/HCA

Caso você esteja se perguntando a que InfiniBand (QDR) ou Infiniband (FDR) se referem, a InfiniBand Trade Association mantém um Roteiro InfiniBand que mostra a história e os avanços planejados na largura de banda InfiniBand nos próximos anos. A Infiniband possui uma lista de siglas que descrevem o desempenho relativo de um link InfiniBand conforme mostrado abaixo:
  • SDR – Taxa de dados única
  • DDR – Taxa de dados dupla
  • QDR – Taxa de dados quádrupla
  • FDR – Taxa de dados de quatorze
  • EDR – Taxa de dados aprimorada
  • HDR – Alta taxa de dados
  • NDR – próxima taxa de dados

As SANs Fibre Channel (FC) tradicionais geralmente usam um ou mais adaptadores de barramento de host (HBA) que possuem uma ou mais portas para cabos ópticos que se conectam a um switch FC ou diretamente à própria SAN FC. Ainda é relativamente raro ver HBAs FC de 16 Gb em uso generalizado, portanto, a maioria dos servidores host ainda possui HBAs FC de 4 Gb ou 8 Gb.

A taxa de transferência sequencial teórica de um único dispositivo HBA (por porta) é mostrada na Figura 2:

Figura 2:taxa de transferência teórica de HBA

Independentemente do tipo de dispositivo de interface ou tecnologia que você está usando, você precisa se preocupar com o tipo de slot de barramento de expansão ao qual ele está conectado no servidor host. Dependendo da idade do seu servidor e do tipo de processador que ele está usando, isso pode ter um grande impacto na largura de banda total que o slot de barramento pode suportar. Os slots Peripheral Component Interconnect Express (PCIe) Gen 3 têm o dobro da largura de banda por pista que um slot PCIe Gen 2 mais antigo. Você pode determinar quantos e que tipo de slots de expansão você tem em seu servidor host observando as especificações e a documentação de sua marca e modelo de servidor. Até agora, apenas os processadores da família Intel Xeon E3 v2, Xeon E3 v3, Xeon E5, Xeon E5 v2, Xeon E5 v3 e Xeon E7 v2 suportam slots PCIe Gen 3. Qualquer coisa mais antiga que isso terá slots PCIe Gen 2, ou talvez até slots PCIe Gen 1 se for extremamente antigo (em termos de computador).

A taxa de transferência sequencial teórica de um único slot PCIe é mostrada na Figura 3:

Figura 3:taxa de transferência teórica do slot de expansão

Desde a introdução da microarquitetura Intel Nehalem em 2008, todos os processadores de servidor 2P e maiores da Intel suportam Intel QuickPath Interconnect (QPI) para conexões entre os processadores e a memória em um servidor, dando a esses processadores mais novos suporte para acesso não uniforme à memória (NUMA), que substituiu o antigo barramento frontal (FSB). O NUMA melhora significativamente a escalabilidade à medida que o número de processadores físicos em um sistema aumenta, especialmente quando você tem quatro ou mais processadores físicos em um sistema host.

Os processadores Intel modernos possuem controladores de memória integrados que suportam Intel QPI. Ao observar as especificações de um processador Intel específico no banco de dados ARK online, você poderá ver seu desempenho QPI avaliado em GigaTransfers por segundo (GT/s). Um GigaTransfer por segundo é simplesmente um bilhão de operações que transferem dados por segundo.

Por exemplo, um processador Intel Xeon E5-2667 v3 moderno e de ponta (Haswell-EP) tem uma velocidade Intel QPI de 9,6 GT/s, enquanto um processador Intel Xeon E5503 mais antigo e de baixo custo (Nehalem-EP) tem uma Velocidade Intel QPI de apenas 4,8 GT/s. Mesmo entre os processadores da microarquitetura da mesma geração, você verá variações na velocidade nominal do Intel QPI. Por exemplo, na família Haswell-EP de 22nm, o processador Intel Xeon E5-2603 v3 de baixo custo é avaliado em 6,4 GT/s, enquanto o processador Intel Xeon E5-2660 v3 de ponta é avaliado em 9,6 GT/s. Os processadores Intel Xeon E5, E5 v2 e E5 v3 têm dois links QPI por processador, enquanto os processadores da família Intel E7 e E7 v2 têm três links QPI por processador.

A taxa de transferência sequencial teórica de um único link Intel QPI é mostrada na Figura 4:

Figura 4:taxa de transferência teórica do Intel QPI

Dependendo da idade do seu servidor host, do processador exato que ele está usando e do tipo, velocidade e quantidade de memória instalada, você terá diferentes quantidades de taxa de transferência sequencial teórica disponível para cada módulo de memória. Todos os processadores Intel modernos possuem controladores de memória integrados que controlam a quantidade e a frequência da memória que o processador suportará. Os servidores host antigos mais recentes usarão memória DDR3, enquanto os processadores Haswell-EP de última geração (família Intel Xeon E5 v3) suportam memória DDR4. A memória DDR4 suporta velocidades mais altas, maior taxa de transferência, maior densidade de memória, menor consumo de energia e confiabilidade aprimorada em comparação com a memória DDR3.

A taxa de transferência sequencial teórica de um único módulo de memória é mostrada na Figura 5:

Figura 5:taxa de transferência teórica do módulo de memória

Ao observar os componentes individuais em um novo sistema existente ou planejado, você deve estar atento a componentes incompatíveis que possam introduzir gargalos artificiais de desempenho sequencial no sistema. Por exemplo, você pode ter um servidor novinho em folha com processadores de ponta que é prejudicado pelo fato de estar usando um HBA FC de 4 Gb para acessar uma SAN. Outro exemplo poderia ser um cartão de armazenamento flash PCIe muito rápido ou controlador RAID que foi instalado em um slot PCIe 2.0 x4 de baixa largura de banda, o que limitou artificialmente a taxa de transferência sequencial total do dispositivo.

Eu sei que isso tem sido muita informação técnica para digerir, especialmente para pessoas que não são entusiastas de hardware. Acho que a ideia principal que você deve tirar deste artigo é que o desempenho da taxa de transferência sequencial é muito importante para muitas tarefas e cargas de trabalho comuns do SQL Server. Os detalhes de baixo nível sobre processadores, tipos de memória, slots de expansão e dispositivos de expansão realmente fazem muita diferença no desempenho do rendimento sequencial que você obterá de um servidor e seu subsistema de armazenamento. Ter uma boa taxa de transferência sequencial torna sua vida muito mais fácil como profissional de banco de dados, permitindo que você dê suporte à sua organização em um nível muito mais alto.