Cloudflare は、DNS キャッシュエントリのメモリレイアウトを再設計することで、グローバル サーバのフリート全体で約 100 テラバイトの RAM を解放しました。特に 1.1.1.1 DNS のリゾルバ用です。
1つのバイトコスト250ギガバイト
レバーはシャースケール:Cloudflareは、任意の時点でキャッシュに250億以上のDNSエントリを保持しています。 そのため、エントリの容量が250ギガバイトを超えると、一枚のバイト単位でもメモリを無駄にしました。 5つのRustレベルの最適化は、エントリごとのメモリフットプリントを56パーセント削減します。
成長可能な容器の代りの固定切れ
- Rustの栽培可能なVecとストリングコンテナを固定サイズのボックススライスで置き換えることで、15TB以上保存されます。
- すべてのDNSレスポンスの3つのレコードリストは、2バイトのオフセットを介してアドレスを1つのバッファに破棄されます。
- レコードデータは、ワイヤフォーマットの長固定生バイトとして保存されます。
より速く、より遅い
節約は速度の費用で来ませんでした。 少々の配分と記憶の局性のおかげで、ルックアップレイテンシーが19パーセント低下しながら、スループットローズ43パーセントを差し込みます。
ケルン: ゴーレム.deお問い合わせ


















