OpenAICloudflareMar 23, 2026, 1:00 PM

Launching Cloudflare’s Gen 13 servers: trading cache for cores for 2x edge compute performance

A condensed section focused on the key takeaways first.

Original Post

Quick Digest

Summary

A condensed section focused on the key takeaways first.

openaienmodel: gpt-5-mini-2025-08-07

Launching Gen 13: 2x edge throughput by trading cache for cores (FL2 + AMD Turin)

Key Points

  • 2x throughput with Gen 13 + FL2
  • FL2 removes dependency on large L3 caches
  • Turin 9965: 192 cores with ~2MB L3/core

Summary

Cloudflare has deployed its Gen 13 servers based on AMD EPYC 5th‑Gen Turin (9965) and its new Rust‑based request layer FL2. By redesigning the request path to reduce dependence on large L3 caches, FL2 unlocks Turin’s high core density safely: the fleet achieves ~2x throughput vs Gen 12 while meeting latency SLAs and improving performance-per-watt by ~50%.

Key Points

  • Hardware: Gen 13 uses AMD Turin 9965 (up to 192 cores / 384 threads). Turin prioritizes cores and memory bandwidth over per‑core L3 cache (≈2MB/core vs 12MB/core on Genoa‑X with 3D V‑Cache).
  • Problem diagnosed: FL1 (NGINX + LuaJIT) hit much higher L3 miss rates and DRAM latency (L3 hit ≈50 cycles vs DRAM ≈350+ cycles), causing >50% latency regressions at high CPU utilization on Turin.
  • Short-term mitigations: PQOS and NUMA‑aware CCD isolation produced modest gains; socket/CCD isolation gave up to ~15% throughput improvement but wasn't a full solution.
  • Solution: FL2 (Rust, Pingora/Oxy frameworks) has leaner memory-access patterns and lower dynamic allocation, cutting the latency penalty by ~70% relative to FL1 on Turin and allowing linear scaling with core count.
  • Measured outcomes (Turin 9965): FL2 yields ~100% higher throughput vs Gen 12, 70% lower latency vs FL1 on the same CPU, and ~50% better performance-per-watt.
  • Operational impact: Gen 13 enables higher rack throughput within the same power budgets and supports global edge rollout without degrading customer experience.

Practical notes for engineers

  • Expect higher core counts but much smaller L3 per core; profile for DRAM fetches and optimize memory access patterns rather than relying on large shared caches.
  • Consider languages/runtime choices that reduce dynamic allocation and improve locality (the Rust rewrite is an example). Measure performance counters (L3 miss, memory latency) during CPU selection.
  • Use PQOS / NUMA isolation as a tuning lever, but treat software redesign as the primary path to fully leverage high‑core Turin SKUs.

TL;DR

Redesigning the request path (FL2 in Rust) removed the cache bottleneck and unlocked the Turin 9965’s core density: 2x edge throughput vs Gen 12, lower latency within SLAs, and ~50% better performance-per-watt.

Full Translation

Translations

A translation section that keeps the flow of the original article.

openaijamodel: gpt-5-mini-2025-08-07

CloudflareのGen 13サーバー導入:キャッシュをコアに置き換え、エッジコンピュート性能を2倍にする

公開日: 2026-03-23 — Syona Sarma, JQ Lau, Jesse Brandeburg — 6分で読めます

概要

2年前、CloudflareはAMD EPYC™ Genoa‑X(3D V‑Cache搭載)を採用した第12世代サーバーフリートを導入しました。当時、キャッシュ重視のアーキテクチャはリクエスト処理レイヤー(当時のFL1)に最適でした。しかし次世代ハードウェアを評価する中でジレンマに直面しました:最もスループットを向上させるCPUは大幅なL3キャッシュ削減を伴っており、従来のソフトウェアスタックではそれがレイテンシ上昇によるスループットの頭打ちを招いていました。

このブログでは、Rustで再実装したリクエスト処理レイヤーFL2への移行が、Gen 13の潜在力を引き出し、以前のスタックでは不可能だったパフォーマンス改善を実現した経緯を説明します。FL2は大容量キャッシュへの依存を取り除き、コア数に応じた性能拡張を可能にしながらSLAを維持します。今日、AMD EPYC™ 5th Gen TurinベースのGen 13サーバーをFL2で稼働させ、エッジでの性能を効果的に捉えスケールすることを発表します。


AMD EPYC Turinがもたらすもの

AMDのEPYC™ 5th Generation(Turin)は単なるコア数増加以上の改善を提供します。Cloudflareサーバーに必要な複数の次元での向上が含まれます。

  • コア数が最大で2x: Gen 12の96コアに対し最大192コア、SMTで384スレッド
  • IPC改善: Zen 5のアーキテクチャ改善によりZen 4より命令あたりの性能が向上
  • 電力効率の向上: コア数が増えても、Genoa‑Xに比べコア当たり最大32%少ない電力消費
  • DDR5‑6400サポート: 増えたコアを賄うためのメモリ帯域幅改善

ただし、Turinの高密度OPNは明確なトレードオフを含みます:スループットを優先する代わりに、コアあたりのL3キャッシュを削減しています。例えば、最も高密度のTurin OPN(192コア)ではL3合計が384MBで、コア当たり約2MBしか割り当てられず、Gen 12の約1/6です。キャッシュ局所性に依存するワークロードではこれは深刻な課題になります。

世代比較(抜粋)

世代プロセッサコア/スレッドL3キャッシュ/コア
Gen 12AMD Genoa‑X 9684X96C/192T12MB (3D V‑Cache)
Gen 13 Option 1AMD Turin 9755128C/256T4MB
Gen 13 Option 2AMD Turin 9845160C/320T2MB
Gen 13 Option 3AMD Turin 9965192C/384T2MB

パフォーマンスカウンタによる問題の診断

FL1(NGINX+LuaJITベース)のリクエスト処理レイヤーでは、このキャッシュ削減が大きな問題となり得ました。評価段階でAMD uProfなどを使ってCPUパフォーマンスカウンタとプロファイリングを収集し、実際に何が起きているかを計測しました。主要な発見は次の通りです。

  • L3キャッシュのミス率がGen 12(3D V‑Cache搭載)と比べて劇的に増加
  • 以前はL3内に留まっていたデータがDRAMアクセスを必要とし、メモリフェッチ遅延がリクエスト処理時間を支配
  • CPU利用率を上げると、レイテンシペナルティは利用率に応じて増大し、キャッシュ競合は悪化
  • L3ヒットは約50サイクルで完了する一方、L3ミスでDRAMアクセスが入ると350+サイクル。桁違いの差

結果として、コア当たり6倍少ないキャッシュにより、FL1はGen 13で頻繁にメモリアクセスを起こし、レイテンシのペナルティを被っていました。


トレードオフ: レイテンシ vs スループット

FL1をGen 13でそのまま動かすと、パフォーマンスカウンタが示した通りの傾向が確認されました。Turinは理論上高いスループットを出せますが、レイテンシが大きく悪化します。

指標Gen 12 (FL1)Gen 13 - Turin 9755 (FL1)Gen 13 - Turin 9845 (FL1)Gen 13 - Turin 9965 (FL1)
コア数baseline+33%+67%+100%
FL スループットbaseline+10%+31%+62%
レイテンシ(低〜中負荷)baseline+10%+30%+30%
レイテンシ(高負荷)baseline>20%>50%>50% (容認不可)

Turin 9965で60%のスループット向上が得られることはTCO観点で魅力的でしたが、50%以上のレイテンシ上昇は顧客体験に直結して許容できませんでした。ここでインフラ的な選択肢は3つに絞られました:TCO改善のないソリューションを受け入れるか、レイテンシトレードオフを受け入れるか、またはレイテンシを悪化させずに効率を高める方法を見つけるか。


パフォーマンスチューニングによる段階的改善

最適解を探るため、AMDと協力してTurin 9965データの解析とターゲット最適化実験を行いました。試した構成は次のとおりです。

  • ハードウェア調整: ハードウェアプリフェッチャやData Fabric (DF) Probe Filtersの調整(効果は限定的)
  • ワーカー数のスケーリング: FL1ワーカーを増やすとスループットは改善するが他サービスのリソースを食う
  • CPUピンニング&分離: ワークロード分離の最適化(限定的な成功)

最も価値があったのはAMDのPlatform Quality of Service (PQOS)の活用でした。PQOSはキャッシュやメモリ帯域など共有リソースの細かい制御を可能にします。Turinは1つのI/O Dieと最大12のCore Complex Die(CCD)で構成され、CCDごとに最大16コアがL3を共有するため、PQOSを用いてFL1にリソースを割り当てる実験を行いました。

実験結果の要約:

構成説明パフォーマンス増分
NUMA対応コアアフィニティ(ソケットレベルでのPQOS相当)12CCDのうち6CCDをFLに割当(NUMAドメインに合わせる)。各CCDは32MBのL3をコア間で共有。>15% の追加スループット
PQOS構成1各CCDの物理コアで1つのvCPU(物理コア当たり2vCPU想定のうち1つ)をFLが使用。FLは各CCDの32MB L3の75%を取得。<5% の追加スループット(他サービスに小さな劣化あり)
PQOS構成2各CCDの物理コアで1つのvCPUをFLが使用。FLは各CCDの32MB L3の50%を取得。<5% の追加スループット
PQOS構成3各CCDの物理コアの50%のコア上で2vCPUをFLが使用。FLは各CCDの32MB L3の50%を取得。<5% の追加スループット

結論として、ソケット(CCD)単位でのワークロード隔離は有意な向上をもたらしましたが、これだけではGen 13の潜在力をフルに引き出すには不十分でした。


チャンス:すでに進行中だったFL2プロジェクト

ハードウェア調整やリソース制御で得られる改善は限定的でした。本当にGen 13の性能を引き出すには、システム資源の使い方を根本的に変えるためのソフトウェア書き換えが必要だと判断しました。幸いにも、これは偶然にもすでに進行中でした。

Birthday Week 2025で発表した通り、FL1をゼロから作り直すプロジェクトが進んでおり、それがFL2です。FL2はRustで書かれ、PingoraとOxyフレームワーク上に構築された完全な再実装で、15年にわたるNGINXとLuaJITコードを置き換えます。

FL2の主なドライバーはGen 13対策だけでなく、次の要件でした。

  • セキュリティ向上(Rustのメモリ安全性)
  • 開発速度向上(厳密なモジュールシステム)
  • 全体的な性能改善(CPU使用量とメモリ使用量の低減、モジュラー実行)

FL2はよりクリーンなアーキテクチャ、改善されたメモリアクセスパターン、動的割当の削減により、大容量L3キャッシュへの依存度がFL1より低くなる可能性がありました。これにより、Gen 13のスループット利得をレイテンシ悪化なしに実現できるかを検証する良い機会が生まれました。


実証:Gen 13上でのFL2

FL2の本番展開が進むと、Gen 13サーバーからのメトリクスが想定通りの結果を示しました。

指標Gen 13 Turin 9965 (FL1)Gen 13 Turin 9965 (FL2)
FL リクエスト/CPU%baseline50%高い
Gen 12比レイテンシbaseline70%低い
Gen 12比スループット62%高い100%高い

FL2の導入直後でさえ、効率改善は顕著でした。FL2はレイテンシペナルティを70%削減し、Gen 13をより高いCPU利用率まで押し上げつつも厳しいレイテンシSLAを満たすことが可能になりました。FL1ではこれは不可能でした。キャッシュボトルネックを事実上取り除いたことで、スループットはコア数と線形にスケールします。

高密度なAMD Turin 9965では、最終的に2xの性能向上を達成し、ハードウェアの真のポテンシャルを解放しました。今後さらにシステムチューニングを行えば、さらに効率を高められると期待しています。


世代間の改善(まとめ)

指標Gen 12Gen 13
プロセッサAMD EPYC™ 4th Gen Genoa‑X 9684XAMD EPYC™ 5th Gen Turin 9965
コア数96C/192T192C/384T
FL スループットbaseline最大で+100%
性能当たり電力baseline最大で+50%

ビジネスインパクト:

  • スループット2x(Gen 12比)で応答性を維持しつつ顧客体験を損なわない
  • 性能/ワットが50%改善し、データセンター拡張コストとリクエスト当たりのカーボンフットプリントを削減
  • ラック当たりのスループットが60%向上し、定められた電力予算内でグローバルに高密度展開が可能

Gen 13 + FL2:エッジに向けた準備完了

従来のFL1はGen 13でキャッシュ競合に直面し、スループットとレイテンシの間で受け入れられないトレードオフを強いられました。妥協する代わりに私たちはFL2を構築しました。より洗練されたメモリアクセスパターンを持つFL2は大容量L3キャッシュへの依存を取り除き、コア数と線形にスケールします。

Gen 13(AMD Turin)上で稼働するFL2は、SLA内でレイテンシを維持しながらスループットを2倍、電力効率を50%改善しました。この躍進はハードウェア/ソフトウェアの協調設計の重要性を再認識させるものです。キャッシュ制約に縛られないGen 13サーバーは、Cloudflareのグローバルネットワーク上で数百万のリクエストを処理する準備が整いました。

もしグローバルスケールのインフラに興味があるなら、we're hiring(採用情報)をご覧ください。

Cloudflareのコネクティビティクラウドは企業ネットワーク全体を保護し、インターネットスケールのアプリケーション構築を支援し、あらゆるウェブサイトやアプリケーションを高速化し、DDoSから守り、セキュリティを強化し、Zero Trustへの旅路を支援します。任意のデバイスから1.1.1.1にアクセスして無料アプリを試し、より速く安全なインターネットを体験してください。

より多くを知りたい方は start here を参照してください。キャリアに興味がある方は open positions をご確認ください。

タグ: server‑island‑start, Hardware, Performance, Infrastructure, Rust, AMD, Engineering