Internal Dell PowerEdge R7525 2U Server. Dua persegi panjang perak di tengah adalah prosesor AMD EPYC 7542. Di atas dan di bawahnya ada strip RAM 64 GB. Di tepi kiri foto ada 24 disk NVMe, ini hanya mungkin di EPYC
Let's Encrypt - otoritas sertifikasi terbesar di Internet, lebih dari 235 juta situs web beroperasi dengan sertifikat TLS gratisnya . Inti dari CA adalah database tempat sertifikat dikelola. Penting agar kinerjanya optimal, jika tidak, kami akan melihat kesalahan API dan batas waktu saat menerbitkan sertifikat.
Pada akhir tahun 2020, organisasi nirlaba meningkatkan servernya.
Perangkat lunak inti Let's Encrypt adalah CA open source Boulder dengan dukungan ACME. Ini menggunakan skema dan kueri bergaya MySQL untuk mengelola akun pengguna dan seluruh proses penerbitan sertifikat. CA open source bekerja dengan satu database MySQL, MariaDB atau Percona. Saat ini menggunakan MariaDB dengan mesin InnoDB.
CA berjalan dengan database tunggal untuk meminimalkan kompleksitas. Pengembang mengatakan ini bagus untuk keamanan, keandalan, dan kemudahan pemeliharaan. Let's Encrypt memiliki beberapa replika database yang aktif pada waktu tertentu, dan beberapa pembacaan diarahkan ke server replika untuk mengurangi beban pada database utama.
Salah satu konsekuensi dari desain ini adalah server harus cukup kuat. Jika server tidak mengatasinya, maka pada akhirnya Let's Encrypt harus membagi satu database menjadi beberapa, tetapi pemutakhiran memungkinkan untuk menghindari hal ini.
Spesifikasi
Server sebelumnya sangat kuat, tetapi secara teratur mencapai kinerja puncak. Untuk generasi baru, sasarannya adalah untuk menggandakan hampir semua metrik kinerja dalam faktor bentuk 2U yang sama. Untuk melakukan ini, mereka memilih prosesor AMD EPYC dan menganggap server Dell PowerEdge R7525 sebagai pilihan terbaik . Berikut adalah karakteristik teknisnya, dibandingkan dengan server lama:
| Generasi sebelumnya | Generasi baru | |
| CPU | 2x Intel Xeon E5-2650
Total 24 core / 48 utas |
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 / / |
Seperti yang Anda lihat, jumlah inti dan jumlah memori benar-benar berlipat ganda, dan kinerja SSD secara nominal meningkat lebih dari lima kali lipat.
1 - pegangan, 2 - riser 1 modul ekspansi, 3 - catu daya pertama, modul ekspansi 4 riser 2, 5 - heatsink untuk prosesor pertama, 6 - slot DIMM untuk prosesor pertama, 7 - kipas, 8 - label servis, 9 - panel belakang dan motherboard SSD, 10 - kandang kipas, 11 - slot DIMM untuk prosesor kedua, 12 - heatsink untuk prosesor kedua, 13 - motherboard, catu daya 14 detik, 15 - modul ekspansi Riser 3, 16 - Riser 4 modul ekspansi
Setiap server memiliki dua prosesor AMD EPYC dengan total 64 core fisik. Kecepatan clock 2.9GHz hingga 3.4GHz di bawah beban. Lebih penting lagi, EPYC menyediakan 128 jalur PCIe v4.0. Ini memungkinkan 24 disk NVMe masuk ke dalam satu mesin. Mereka adalah drive yang sangat cepat (5,7 kali lebih cepat dari SSD SATA pada server generasi sebelumnya) karena mereka menggunakan PCIe daripada SATA. Jumlah jalur PCIe biasanya sangat terbatas: prosesor mainstream biasanya hanya memiliki 16 jalur, sedangkan chip Intel Xeon memiliki 48 jalur. Di sini prosesor AMD EPYC lebih baik dibandingkan dengan 128 jalur PCIe per chip, yang memungkinkan sejumlah besar drive NVMe untuk dipasang di setiap mesin.
Berdampak pada kinerja
Let's Encrypt memberikan waktu pemrosesan permintaan rata-rata, karena metrik ini dirasakan paling kuat oleh pengguna. Sebelum pembaruan, permintaan API median membutuhkan waktu sekitar 90 md. Setelah peningkatan - sekitar 9ms!
Pada grafik berikut, Anda dapat melihat bahwa prosesor lama berjalan pada batasnya. Seminggu sebelum peningkatan, beban CPU pada server basis data utama (dari / proc / stat) rata-rata lebih dari 90%:
Prosesor AMD EPYC baru berjalan sekitar 25% dari kapasitas maksimumnya. Hal ini terlihat pada grafik dimana pada tanggal 15 September server baru dipromosikan dari replika (read-only) menjadi primer (read / write).
Pembaruan secara signifikan telah mengurangi latensi database secara keseluruhan. Waktu respons rata-rata (dari INFORMATION_SCHEMA) dulu sekitar 0,45ms.
Sekarang permintaan diproses rata-rata tiga kali lebih cepat, dalam waktu sekitar 0,15 md.
OpenZFS dan NVMe
Drive NVMe menjadi lebih populer saat ini karena kinerjanya yang luar biasa. Namun, hingga saat ini, hampir tidak mungkin untuk meletakkan banyak NVMe di satu server, karena mereka menggunakan jalur PCIe, dan prosesor mendukung sejumlah jalur seperti itu, seperti yang kami katakan. Intel Xeon mendukung 48 jalur PCIe v3, dan beberapa di antaranya digunakan oleh chipset, adaptor jaringan, dan GPU. Beberapa baris tersisa untuk NVMe.
Prosesor AMD EPYC generasi terbaru mendukung 128 jalur PCIe - lebih dari dua kali lipat Intel, dan itulah PCIe v4! Ini cukup untuk mengemas server 2U dengan disk NVMe (Dell memiliki 24 buah).
Saat Anda memiliki server yang penuh dengan drive NVMe, Anda perlu memutuskan cara mengelolanya. Pada server Let's Encrypt generasi sebelumnya, RAID perangkat keras diatur dalam konfigurasi RAID-10, tetapi tidak ada RAID perangkat keras yang efektif untuk NVMe, jadi solusi lain harus ditemukan. Software RAID (mdraid di Linux) dianggap sebagai salah satu opsi, tetapi para pengembang disarankan untuk OpenZFS. Mereka memutuskan untuk mencobanya dan cukup puas dengan hasilnya.
Mereka mengatakan hanya ada sedikit informasi di internet tentang cara terbaik menyesuaikan dan mengoptimalkan OpenZFS untuk kumpulan disk NVMe dan beban kerja database, jadi mereka mendokumentasikan pengalaman mereka secara mendetail . Mungkin itu akan berguna bagi seseorang.
Let's Encrypt mengatakan bahwa peningkatan ini diperlukan dan dalam arti terpaksa, karena jumlah pengguna CA gratis terus bertambah, begitu pula jumlah sertifikat TLS yang diterbitkan. Servernya cukup mahal dan peningkatannya menghadirkan tantangan teknis yang serius bagi para insinyur organisasi, tetapi semuanya berjalan dengan baik.
Let's Encrypt adalah otoritas sertifikasi nirlaba yang didanai oleh sponsor dan sumbangan individu .