Let's Encrypt migra servidores de banco de dados para AMD EPYC



Interiores do servidor Dell PowerEdge R7525 2U. Dois retângulos prateados no meio são os processadores AMD EPYC 7542. Acima e abaixo deles estão tiras de 64 GB de RAM. Na borda esquerda da foto, há 24 discos NVMe, isso só é possível em EPYC



Let's Encrypt - a maior autoridade de certificação na Internet, mais de 235 milhões de sites operam com seus certificados TLS gratuitos . No coração da CA está o banco de dados no qual os certificados são gerenciados. É importante que seu desempenho seja adequado, caso contrário, veremos erros de API e tempos limite ao emitir certificados.



No final de 2020, a organização sem fins lucrativos atualizou seus servidores.



O software principal do Let's Encrypt é o CA de código aberto de Boulder com suporte ACME. Ele usa esquemas e consultas no estilo MySQL para gerenciar contas de usuários e todo o processo de emissão de certificados. O CA de código aberto funciona com um banco de dados MySQL, MariaDB ou Percona. Atualmente usando MariaDB com motor InnoDB.



O CA é executado com um único banco de dados para minimizar a complexidade. Os desenvolvedores dizem que isso é bom para segurança, confiabilidade e facilidade de manutenção. O Let's Encrypt tem várias réplicas de banco de dados ativas a qualquer momento, e algumas leituras são direcionadas aos servidores de réplica para reduzir a carga no banco de dados principal.



Uma das consequências desse design é que os servidores devem ser poderosos o suficiente. Se os servidores não suportassem, no final o Let's Encrypt teria que dividir um banco de dados em vários, mas a atualização tornou possível evitar isso.



Especificações



Os servidores anteriores eram poderosos, mas atingiam regularmente o desempenho máximo. Para a nova geração, a meta é mais do que dobrar quase todas as métricas de desempenho no mesmo formato 2U. Para fazer isso, eles escolheram os processadores AMD EPYC e consideraram o servidor Dell PowerEdge R7525 a melhor opção . Aqui estão suas características técnicas, em comparação com os servidores antigos:



Geração anterior Nova geração
CPU 2x Intel Xeon E5-2650

Total 24 núcleos / 48 threads
2x AMD EPYC 7542

64 / 128

1  2400MT/ 2  3200MT/
24x 3,8  Samsung PM883

SATA SSD

560/540 / /
24x 6,4  Intel P4610

NVMe SSD

3200/3200 / /


Como você pode ver, o número de núcleos e a quantidade de memória realmente dobraram, e o desempenho do SSD aumentou nominalmente em mais de cinco vezes.





1 - alça, 2 - módulo de expansão 1 riser, 3 - primeira fonte de alimentação, módulo de expansão 4 - riser 2, 5 - dissipador de calor para o primeiro processador, 6 - slots DIMM para o primeiro processador, 7 - ventiladores, 8 - etiqueta de serviço, 9 - painel traseiro e placa-mãe SSD, 10 - compartimento para ventoinhas, 11 - slots DIMM para o segundo processador, 12 - dissipador de calor para o segundo processador, 13 - placa-mãe, fonte de alimentação de 14 segundos, 15 - módulo de expansão Riser 3, 16 - Riser 4 módulo de expansão



Cada servidor possui dois processadores AMD EPYC para um total de 64 núcleos físicos. Velocidade de clock de 2,9 GHz até 3,4 GHz sob carga. Mais importante ainda, o EPYC fornece 128 pistas PCIe v4.0. Isso permite que 24 discos NVMe caibam em uma máquina. Eles são discos incrivelmente rápidos (5,7 vezes mais rápidos do que os SSDs SATA em servidores da geração anterior) porque usam PCIe em vez de SATA. O número de pistas PCIe é geralmente bastante limitado: os processadores principais normalmente têm apenas 16 pistas, enquanto os chips Intel Xeon têm 48 pistas. Aqui, os processadores AMD EPYC se comparam favoravelmente com 128 pistas PCIe por chip, permitindo que um grande número de drives NVMe sejam instalados cada máquina.



Impacto no desempenho



Let's Encrypt fornece o tempo médio de processamento da solicitação, porque essa métrica é sentida com mais intensidade pelos usuários. Antes da atualização, a solicitação média da API demorava cerca de 90 ms. Após a atualização - cerca de 9ms!







No gráfico a seguir, você pode ver que os processadores antigos estavam funcionando em seus limites. Na semana anterior à atualização, a carga da CPU no servidor de banco de dados primário (de / proc / stat) atingiu em média mais de 90%: os







novos processadores AMD EPYC estão funcionando com cerca de 25% de sua capacidade máxima. Isso pode ser visto no gráfico onde em 15 de setembro o novo servidor foi promovido de réplica (somente leitura) para primário (leitura / gravação).







A atualização reduziu significativamente a latência geral do banco de dados. O tempo médio de resposta (de INFORMATION_SCHEMA) costumava ser em torno de 0,45 ms.







Agora, as solicitações são processadas em média três vezes mais rápido, em cerca de 0,15 ms.







OpenZFS e NVMe



As unidades NVMe estão se tornando mais populares hoje em dia por seu incrível desempenho. No entanto, até recentemente, era quase impossível colocar muito NVMe em um servidor, porque eles usam pistas PCIe, e o processador suporta um número limitado de tais pistas, como dissemos. Intel Xeon oferece suporte a 48 pistas PCIe v3, e algumas delas são usadas pelo chipset, adaptador de rede e GPU. Poucas linhas permanecem para NVMe.



A última geração de processadores AMD EPYC suporta 128 pistas PCIe - mais do que o dobro da Intel, e isso é PCIe v4! Isso é o suficiente para embalar um servidor 2U com discos NVMe (a Dell tem 24 unidades).



Quando você tem um servidor cheio de drives NVMe, você precisa decidir como gerenciá-los. Na geração anterior dos servidores Let's Encrypt, o RAID de hardware era organizado em uma configuração RAID-10, mas não há RAID de hardware efetivo para NVMe, então outra solução teve que ser encontrada. RAID por software (mdraid no Linux) foi considerado uma das opções, mas os desenvolvedores foram aconselhados a usar o OpenZFS. Decidiram experimentar e estão bastante satisfeitos com o resultado.



Eles dizem que há poucas informações na Internet sobre como ajustar e otimizar o OpenZFS para conjuntos de discos NVMe e cargas de trabalho de banco de dados, então documentaram suas experiências em detalhes . Talvez seja útil para alguém.



Let's Encrypt diz que esta atualização foi necessária e de certa forma forçada, porque o número de usuários da CA gratuita está em constante crescimento, assim como o número de certificados TLS emitidos. Os servidores são bastante caros e o upgrade apresentou um sério desafio técnico para os engenheiros da organização, mas tudo correu bem.



Let's Encrypt é uma autoridade de certificação sem fins lucrativos, financiada por patrocínios e doações individuais .



All Articles