Cloudflare、1.1.1.1のDNSキャッシュ最適化で100TBのメモリを節約
How we saved 100 terabytes of memory by optimizing 1.1.1.1’s DNS cache
Cloudflareは、DNSサービス「1.1.1.1」のプラットフォームであるBig Pineappleにおけるメモリ使用量を削減するため、キャッシュエントリの格納方法を5段階にわたって最適化した。これにより、エントリあたりのメモリフットプリントを50%以上削減し、フリート全体で約100TBのメモリを節約した。この最適化は、キャッシュの挿入スループットを43%向上させ、ルックアップレイテンシを19%短縮させた。具体的には、VecやStringのcapacityフィールドの削除、複数のリストを単一のリストに統合、オーナーフィールドの削除、enumのバリアントのボクシング、そしてレコードデータをワイヤーフォーマットで格納する手法などが用いられた。これらの変更により、p99メモリ使用量は9.3GBから5.3GBに、p90メモリ使用量は6.5GBから3.8GBに減少した。今後は、節約したメモリをキャッシュ容量の増加に再投資し、キャッシュヒット率の向上とアップストリームクエリ量の削減を目指す。
- CloudflareはDNSサービス「1.1.1.1」のプラットフォームBig Pineappleのキャッシュ最適化により、フリート全体で約100TBのメモリを節約した
- キャッシュ最適化により、挿入スループットが43%向上し、ルックアップレイテンシが19%短縮した
- p99メモリ使用量が9.3GBから5.3GBに、p90メモリ使用量が6.5GBから3.8GBに減少した
CloudflareがDNS基盤のキャッシュ最適化により約100TBのメモリを節約したことは、大規模インフラ運用企業のコスト構造改善とサービス性能向上の両立を示す好例。メモリ節約分をキャッシュ容量拡大に再投資することで、キャッシュヒット率向上とアップストリームクエリ削減が見込まれ、運用コストのさらなる削減とユーザー体験の改善が期待できる。DNSサービスは同社の中核事業の一つであり、この種の運用効率化はマージン改善に直接寄与するため注目に値する。