Let'sEncryptはデータベースサーバーをAMDEPYCに移行します



Dell PowerEdge R75252Uサーバーの内部。真ん中の2つの銀色の長方形はAMDEPYC7542プロセッサです。それらの上下には64GBのRAMストリップがあります。写真の左端には24個のNVMeディスクがあります。これはEPYCLet



's Encryptでのみ可能です。インターネットで最大の認証局であり、2億3500万を超えるWebサイトが無料のTLS証明書で動作しています 。 CAの中心には、証明書が管理されるデータベースがあります。パフォーマンスが標準に達していることが重要です。そうでない場合、証明書の発行時にAPIエラーとタイムアウトが発生します。



2020年の終わりに、非営利団体 はサーバーをアップグレードしました。



Let's Encryptのコアソフトウェアは、ACMEをサポートするBoulderのオープンソースCA です。 MySQLスタイルのスキーマとクエリを使用して、ユーザーアカウントと証明書発行プロセス全体を管理します。オープンソースCAは、1つのMySQL、MariaDB、またはPerconaデータベースで動作します。現在、InnoDBエンジンでMariaDBを使用しています。



CAは、複雑さを最小限に抑えるために単一のデータベースで実行されます。開発者は、これは安全性、信頼性、およびメンテナンスの容易さのために良いと言います。 Let's Encryptでは、常に複数のデータベースレプリカがアクティブになっており、メインデータベースの負荷を軽減するために、一部の読み取りがレプリカサーバーに送信されます。



この設計の結果の1つは、サーバーが十分に強力でなければならないということです。サーバーが対応しなかった場合、最終的にLet's Encryptは1つのデータベースを複数に分割する必要がありますが、アップグレードによりこれを回避することができました。



仕様



過去のサーバーは強力でしたが、定期的にピークパフォーマンスに達しました。新世代の目標は、同じ2Uフォームファクタでほぼすべてのパフォーマンスメトリックを2倍以上にすることです。これを行うために、彼らはAMD EPYCプロセッサを選択し、Dell PowerEdgeR7525サーバーが最良のオプションであると考えました 古いサーバーと比較した場合の技術的特徴は次のとおりです。



前世代 新しい世代
CPU 2x Intel XeonE5-2650

合計24コア/ 48スレッド
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 / /


ご覧のとおり、コアの数とメモリの量は実際に2倍になり、SSDのパフォーマンスは名目上5倍以上向上しています。





1-ハンドル、2-ライザー1拡張モジュール、3-最初の電源装置、4-ライザー拡張モジュール2、5-最初のプロセッサー用のヒートシンク、6-最初のプロセッサー用のDIMMスロット、7-ファン、8-サービスラベル、 9-背面パネルとSSDマザーボード、10-ファンケージ、11-2番目のプロセッサ用のDIMMスロット、12-2番目のプロセッサ用のヒートシンク、13-マザーボード、14-2番目の電源、15-ライザー3拡張モジュール、16-ライザー4拡張モジュール



各サーバーには、合計64の物理コアに対して2つのAMDEPYCプロセッサが搭載されています。負荷がかかった状態で最大3.4GHzの2.9GHzクロック速度。さらに重要なことに、EPYCは128個のPCIev4.0レーンを提供します。これにより、24台のNVMeディスクを1台のマシンに収めることができます。SATAの代わりにPCIeを使用しているため、非常に高速なドライブ(前世代のサーバーのSATA SSDより5.7倍高速)です。通常、PCIeレーンの数は非常に限られています。主流のプロセッサには通常16レーンしかありませんが、Intel Xeonチップには48レーンがあります。ここでは、AMD EPYCプロセッサはチップあたり128のPCIeレーンと比べて遜色がなく、多数のNVMeドライブをインストールできます。各マシン。



パフォーマンスへの影響



Let's Encryptは、このメトリックがユーザーによって最も強く感じられるため、平均リクエスト処理時間を示します。更新前は、APIリクエストの中央値は約90ミリ秒かかりました。アップグレード後-約9ms!







次のグラフでは、古いプロセッサが限界で実行されていたことがわかります。アップグレードの前の週に、プライマリデータベースサーバー(/ proc / statから)のCPU負荷は平均90%を超えました。







新しいAMD EPYCプロセッサは最大容量の約25%で実行されています。これは、9月15日に新しいサーバーがレプリカ(読み取り専用)からプライマリ(読み取り/書き込み)に昇格したグラフで確認できます。







この更新により、データベース全体の待ち時間が大幅に短縮されました。 (INFORMATION_SCHEMAからの)平均応答時間は、以前は約0.45msでした。







現在、リクエストは平均3倍速く、約0.15ミリ秒で処理されます。







OpenZFSとNVMe



NVMeドライブは、その驚異的なパフォーマンスにより、今日人気が高まっています。ただし、最近まで、PCIeレーンを使用し、プロセッサがサポートするレーンの数が限られているため、1台のサーバーに多くのNVMeを配置することはほとんど不可能でした。IntelXeonは48のPCIev3レーンをサポートし、それらの一部はチップセット、ネットワークアダプター、およびGPUによって使用されます。NVMeの回線はほとんど残っていません。



最新世代のAMDEPYCプロセッサは、128のPCIeレーンをサポートします。これはIntelの2倍以上であり、PCIev4です。これは、2UサーバーにNVMeディスクを詰め込むのに十分です(Dellには24個あります)。



サーバーがNVMeドライブでいっぱいになっている場合は、それらの管理方法を決定する必要があります。前世代のLet'sEncryptサーバーでは、ハードウェアRAIDはRAID-10構成で配置されていましたが、NVMe用の効果的なハードウェアRAIDがないため、別のソリューションを見つける必要がありました。ソフトウェアRAID(Linux上のmdraid)はオプションの1つと見なされていましたが、開発者はOpenZFSを使用するようにアドバイスされました。彼らはそれを試してみることにし、結果に非常に満足しています。



彼らは、NVMeディスクプールとデータベースワークロードに対してOpenZFSを最適に調整および最適化する方法に関する情報がインターネット上にほとんどないため、彼らの経験を詳細に文書化したと述べてい ます。おそらくそれは誰かに役立つでしょう。



Let's Encryptは、発行されたTLS証明書の数と同様に、無料のCAのユーザー数が絶えず増加しているため、このアップグレードが必要であり、ある意味で強制されたと述べています。サーバーは非常に高価であり、アップグレードは組織のエンジニアにとって深刻な技術的課題を提示しましたが、すべてがうまくいきました。



Let's Encryptは、スポンサーシップと個人の 寄付によって資金提供される非営利の認証局です



All Articles