2026年10月18日日曜日 掲載メディア5Newsについて🌓
🇯🇵 JP ▾
速報
› ウクライナでスターリンク通信制限続く EU国内では正常に作動› Burger King Japan now selling hamburgers minus everything but the meat› 駅伝365:同期活躍で出雲V「心が折れたけど…」早大ルーキー上杉 競技会› Trump-Zelenskyy rift threatens vital support for Kyiv› Trump’s Russia sanctions waiver called mistake by GOP allies› Mass protests in France spiral into worst riots in years› 東京23区の家庭ごみ、有料化すれば減る? 分別の徹底も鍵› Now is the time for Japan’s most flavorful shiitake› みんなの高校野球:軟式で全国5連覇の中京高・総監督 7回制は「大反対」のワケ› Kyoto exhibition finds Zen in the worlds of Studio Ghibli› ウクライナでスターリンク通信制限続く EU国内では正常に作動› Burger King Japan now selling hamburgers minus everything but the meat› 駅伝365:同期活躍で出雲V「心が折れたけど…」早大ルーキー上杉 競技会› Trump-Zelenskyy rift threatens vital support for Kyiv› Trump’s Russia sanctions waiver called mistake by GOP allies› Mass protests in France spiral into worst riots in years› 東京23区の家庭ごみ、有料化すれば減る? 分別の徹底も鍵› Now is the time for Japan’s most flavorful shiitake› みんなの高校野球:軟式で全国5連覇の中京高・総監督 7回制は「大反対」のワケ› Kyoto exhibition finds Zen in the worlds of Studio Ghibli
テクノロジー

Cloudflareが1.1.1.1のDNSキャッシュを数十バイト単位で削り込んで100TBのメモリを節約

GIGAZINE ·
Cloudflareが1.1.1.1のDNSキャッシュを数十バイト単位で削り込んで100TBのメモリを節約

親愛なる読者の皆さまへ。ご存じの通り価格高騰などの悪影響でサーバー運営がとても苦しい状態です。回線や台数を整理し見直せる部分は全て見直しましたが、やはりまだ危険水域です。このままだと1ページを10分割ぐらいして無理矢理PVを増やさざるを得なくなってしまいます。そこで、GIGAZINEの物理的なサーバーたちを、たった1円でも良いので親愛なる読者の皆さまに支援してもらえればとっても助かります!今すぐ寄付は上のボタンから! ・ これまでGIGAZINEを支援してくれたメンバーのリスト

CloudflareがパブリックDNSリゾルバー「1.1.1.1」などで使われているDNSキャッシュのデータ構造を見直し、システム全体で約100TBのメモリを削減したと発表しました。ベンチマークではキャッシュ1件当たりのメモリ使用量が953バイトから420バイトへと56%減少し、メモリを減らしながらキャッシュへの書き込みや読み出しも高速化したとのことです。 How we saved 100 terabytes of memory by optimizing 1.1.1.1’s DNS cache | Cloudflare Blog https://blog.cloudflare.com/dns-cache-memory-optimization-1111/

1.1.1.1はドメイン名をIPアドレスへ変換するCloudflareのパブリックDNSリゾルバーです。例えばブラウザに「cloudflare.com」と入力した場合、端末はDNSリゾルバーへ問い合わせて接続先となるIPアドレスを調べます。1.1.1.1では一度取得したDNSの応答をキャッシュしておき、同じ問い合わせが来た際に上流のDNSサーバーへ毎回問い合わせなくても回答できるようにしています。 Cloudflareで1.1.1.1を支えているDNS基盤が「Big Pineapple」です。Big Pineappleは1.1.1.1のほか、Gateway DNSやDNS Firewallなど複数のサービスで使われており、常時2500億件を超えるDNSキャッシュエントリを保持しています。2500億件という規模になると、キャッシュ1件につきわずか1バイトを余分に使うだけでもCloudflare全体では250GB以上のメモリが必要になる計算です。

そこでCloudflareはキャッシュに保存する情報を一つずつ調べ、保存後には不要になる領域や重複している情報を削っていきました。 最初に手を入れたのがRustの「Vec」や「String」です。Vecはデータ本体へのポインターと現在の長さに加え、将来データを追加できるように容量の情報も保持します。しかしDNSの応答はキャッシュへ保存した後に内容を変更しないため、追加用の容量は必要ありません。

Cloudflareは固定サイズで保存できるBox系の型へ置き換え、キャッシュ1件に含まれる8個のVecやStringから合計64バイトを削減。余分に確保されていた領域も合わせると、2500億件以上のキャッシュ全体で15TB超を節約できたとのことです。

DNS応答を保存する方法にも細かな無駄がありました。DNS応答には回答、権威情報、追加情報といった複数の区分がありますが、従来は区分ごとに別々のリストを用意していました。Cloudflareは3区分を1個のリストにまとめ、区分の境界を示す2個の位置情報をそれぞれ2バイトで記録する方式へ変更。キャッシュ1件当たり28バイトを減らしています。複数の真偽値もビット単位でまとめ、Rustがメモリ上の位置をそろえるために挿入する余白も削減しました。

さらにDNSレコードには通常、そのレコードが属するドメイン名が保存されています。しかし実際には問い合わせたドメイン名とレコード側のドメイン名が同一になるケースが大半です。Big Pineappleは同じ名前を二重に保存せず、必要になった際にキャッシュの検索キーから復元する方式へ変更しました。CNAMEなどによって別のドメイン名が必要になる場合だけ、完全な名前を保存します。

RustでDNSレコードの種類を扱う方法も見直されました。従来はDNSレコードの種類をRustのenumと呼ばれる列挙型で管理しており、小さなAレコードやAAAAレコードも最大のNAPTRに合わせて144バイトの領域を使っていました。Aレコードに必要なデータは4バイト、AAAAレコードでも16バイトで、両者はCloudflareのDNSトラフィックの80%以上を占めています。サイズの大きな種類のデータだけを別のメモリ領域へ移すことで、AレコードやAAAAレコードでは1件当たり120バイトを節約できました。

ただしデータを別々の領域へ移すと、メモリ確保の回数が増え、CPUが離れた場所にあるデータを次々と読み込む必要があります。そこで最終的にはDNSレコードのデータ部分を通信時の形式で符号化したバイト列として保存し、一つの連続した領域へまとめて保存する方式を採用しました。メモリ上にデータがまとまるため読み出しやすくなり、多くのDNSレコードでは応答を作る際にバイト列をそのままコピーできます。Cloudflareのベンチマークでは変更によってキャッシュ検索にかかる時間が5%短縮され、再利用可能な一時バッファーを使う工夫では1秒当たりにキャッシュへ追加できる件数が13%向上したとのこと。

5段階の最適化を合わせると、キャッシュ1件のメモリ使用量は953バイトから420バイトへ減少し、確保するメモリ量も1.1KBから461バイトへ減りました。実際のサーバーではキャッシュ以外にもメモリを使うため削減率は小さくなるものの、メモリ使用量の99パーセンタイル(p99)では常駐メモリが9.3GBから5.3GBへ43%減少。Big Pineappleを稼働させるサーバー群全体では約100TBと、Cloudflareの第13世代サーバー約130台分のRAMに相当するメモリを空けられたとしています。さらにキャッシュへの書き込み性能は43%向上し、検索時間も19%短縮されました。

Cloudflareは空いた約100TBをDNSキャッシュの容量拡大に振り向け、メモリ使用量を増やさずに保存できる回答を増やす計画です。キャッシュに残せる回答が増えれば上流のDNSサーバーへ問い合わせる回数も減らせるとしており、Big Pineappleのキャッシュについてさらなる最適化も検討しているとのことです。

・関連記事 Cloudflareが社内AI基盤「Cloudflare OS」をオープンソース化、機密情報を守りながら業務アプリを作成可能に - GIGAZINE Cloudflareは海賊版サイトなどを特定の地域からアクセスできなくする「ジオブロック」対応を前年同期比で9倍に急増させていることが透明性レポートから判明 - GIGAZINE Cloudflareが26億円相当の罰金判決を不服として控訴、イタリアの海賊版シールドを「オープンインターネットを危険にさらす」と批判 - GIGAZINE Cloudflareが大規模障害の原因を発表、XやChatGPTなどインターネット全体に影響を及ぼした障害はサイバー攻撃ではなくシステムの問題 - GIGAZINE 著作権侵害対策のためにISPブロックを行ったせいで大量の巻き添えが発生、一方違法視聴者はVPNで素通り - GIGAZINE

You can read the machine translated English article C

GIGAZINEで全文を読む ›

この要約はメディアの公開フィードから5Newsが集約したものです。 文脈も含めた全文はgigazine.netにあります — コンテンツの権利はGIGAZINEに帰属します。

GIGAZINEのその他の記事

すべて見る ›

テクノロジーのその他の記事

すべて見る ›