Let's Encrypt migra servidores de bases de datos a AMD EPYC



Componentes internos del servidor Dell PowerEdge R7525 2U. Dos rect谩ngulos plateados en el medio son procesadores AMD EPYC 7542. Arriba y debajo de ellos hay tiras de 64 GB de RAM. En el borde izquierdo de la foto hay 24 discos NVMe, esto solo es posible en EPYC



Let's Encrypt , la autoridad de certificaci贸n m谩s grande de Internet, m谩s de 235 millones de sitios web operan con sus certificados TLS gratuitos . En el coraz贸n de la CA se encuentra la base de datos en la que se administran los certificados. Es importante que su rendimiento est茅 a la altura, de lo contrario veremos errores de API y tiempos de espera al emitir certificados.



A fines de 2020, la organizaci贸n sin fines de lucro actualiz贸 sus servidores.



El software principal de Let's Encrypt es la CA de c贸digo abierto de Boulder con soporte ACME. Utiliza esquemas y consultas de estilo MySQL para administrar las cuentas de usuario y todo el proceso de emisi贸n de certificados. CA de c贸digo abierto trabaja con una base de datos MySQL, MariaDB o Percona. Actualmente usando MariaDB con el motor InnoDB.



La CA se ejecuta con una 煤nica base de datos para minimizar la complejidad. Los desarrolladores dicen que esto es bueno para la seguridad, confiabilidad y facilidad de mantenimiento. Let's Encrypt tiene varias r茅plicas de bases de datos activas en un momento dado, y algunas lecturas se dirigen a los servidores de r茅plicas para reducir la carga en la base de datos principal.



Una de las consecuencias de este dise帽o es que los servidores deben ser lo suficientemente potentes. Si los servidores no funcionaban, al final Let's Encrypt tendr铆a que dividir una base de datos en varias, pero la actualizaci贸n permiti贸 evitarlo.



Especificaciones



Los servidores anteriores eran potentes, pero regularmente alcanzaban el m谩ximo rendimiento. Para la nueva generaci贸n, el objetivo es m谩s del doble de casi todas las m茅tricas de rendimiento en el mismo factor de forma 2U. Para hacer esto, eligieron procesadores AMD EPYC y consideraron que el servidor Dell PowerEdge R7525 era la mejor opci贸n . Estas son sus caracter铆sticas t茅cnicas, en comparaci贸n con los servidores antiguos:



Generaci贸n anterior Nueva generaci贸n
UPC 2x Intel Xeon E5-2650 en

total 24 n煤cleos / 48 subprocesos
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 puede ver, la cantidad de n煤cleos y la cantidad de memoria realmente se han duplicado, y el rendimiento del SSD se ha incrementado nominalmente en m谩s de cinco veces.





1 - asa, 2 - m贸dulo de expansi贸n vertical 1, 3 - primera fuente de alimentaci贸n, 4 - m贸dulo de expansi贸n vertical 2, 5 - disipador t茅rmico para el primer procesador, 6 - ranuras DIMM para el primer procesador, 7 - ventiladores, 8 - etiqueta de servicio, 9 - panel posterior y placa base SSD, 10 - caja de ventilador, 11 - ranuras DIMM para el segundo procesador, 12 - disipador de calor para el segundo procesador, 13 - placa base, fuente de alimentaci贸n de 14 segundos, 15 - m贸dulo de expansi贸n Riser 3, 16 - Riser 4 m贸dulo de expansi贸n



Cada servidor tiene dos procesadores AMD EPYC para un total de 64 n煤cleos f铆sicos. Velocidad de reloj de 2.9GHz hasta 3.4GHz bajo carga. M谩s importante a煤n, EPYC proporciona 128 carriles PCIe v4.0. Esto permite que 24 discos NVMe quepan en una m谩quina. Son unidades incre铆blemente r谩pidas (5,7 veces m谩s r谩pidas que las SSD SATA en los servidores de generaciones anteriores) porque utilizan PCIe en lugar de SATA. El n煤mero de carriles PCIe suele ser bastante limitado: los procesadores convencionales suelen tener solo 16 carriles, mientras que los chips Intel Xeon tienen 48 carriles. Aqu铆, los procesadores AMD EPYC se comparan favorablemente con 128 carriles PCIe por chip, lo que permite instalar una gran cantidad de unidades NVMe en cada m谩quina.



Impacto en el rendimiento



Let's Encrypt proporciona el tiempo medio de procesamiento de solicitudes, porque los usuarios sienten m谩s esta m茅trica. Antes de la actualizaci贸n, la solicitud de API mediana tardaba unos 90 ms. Despu茅s de la actualizaci贸n, 隆aproximadamente 9 ms!







En el siguiente gr谩fico, puede ver que los procesadores antiguos se estaban ejecutando al l铆mite. En la semana anterior a la actualizaci贸n, la carga de la CPU en el servidor de base de datos principal (de / proc / stat) promedi贸 m谩s del 90%: los







nuevos procesadores AMD EPYC est谩n funcionando aproximadamente al 25% de su capacidad m谩xima. Esto se puede ver en el gr谩fico donde el 15 de septiembre se promovi贸 el nuevo servidor de r茅plica (solo lectura) a primario (lectura / escritura).







La actualizaci贸n ha reducido significativamente la latencia general de la base de datos. El tiempo medio de respuesta (de INFORMATION_SCHEMA) sol铆a ser de aproximadamente 0,45 ms.







Ahora, las solicitudes se procesan en promedio tres veces m谩s r谩pido, en aproximadamente 0,15 ms.







OpenZFS y NVMe



Las unidades NVMe son cada vez m谩s populares hoy en d铆a por su incre铆ble rendimiento. Sin embargo, hasta hace poco, era casi imposible poner una gran cantidad de NVMe en un servidor, porque usan carriles PCIe y el procesador admite un n煤mero limitado de esos carriles, como dijimos. Intel Xeon admite 48 carriles PCIe v3, y algunos de ellos son utilizados por el chipset, el adaptador de red y la GPU. Quedan pocas l铆neas para NVMe.



La 煤ltima generaci贸n de procesadores AMD EPYC admite 128 carriles PCIe, m谩s del doble de Intel, 隆y eso es PCIe v4! Esto es suficiente para empaquetar un servidor de 2U con discos NVMe (Dell tiene 24 piezas).



Cuando tiene un servidor lleno de unidades NVMe, debe decidir c贸mo administrarlas. En la generaci贸n anterior de servidores Let's Encrypt, el RAID de hardware se organiz贸 en una configuraci贸n RAID-10, pero no hay un RAID de hardware efectivo para NVMe, por lo que se tuvo que encontrar otra soluci贸n. El software RAID (mdraid en Linux) se consider贸 una de las opciones, pero se recomend贸 a los desarrolladores que usaran OpenZFS. Decidieron intentarlo y est谩n bastante satisfechos con el resultado.



Dicen que hay poca informaci贸n en Internet sobre c贸mo ajustar y optimizar mejor OpenZFS para grupos de discos NVMe y cargas de trabajo de bases de datos, por lo que documentaron sus experiencias en detalle . Quiz谩s le sea 煤til a alguien.



Let's Encrypt dice que esta actualizaci贸n fue necesaria y en cierto sentido forzada, porque la cantidad de usuarios de la CA gratuita est谩 en constante crecimiento, al igual que la cantidad de certificados TLS emitidos. Los servidores son bastante caros y la actualizaci贸n supuso un serio desaf铆o t茅cnico para los ingenieros de la organizaci贸n, pero todo sali贸 bien.



Let's Encrypt es una autoridad de certificaci贸n sin fines de lucro que se financia mediante patrocinios y donaciones individuales .



All Articles