クラウド実行環境

Vercelとは|鍵に見出しを2つ足しただけで、当たり率が95.2%から31.0%に落ちた

鍵に見出しを足すと何が起きるのか期限どおりに残るのか入れ物を大きくすれば直るのか

鍵に国と言語の2つを足しただけで、当たり率が95.2%から31.0%に落ちました。

鍵の種類が800から115,200へ、144倍に増えたためです。掛け算で増えます。

この記事の要点

  • 2つ足すと31.0%
  • 4つ足すと2.5%
  • 週1のものは0.0%
  • 6倍にしても0.0%のまま

見出しを2つ足すと、当たり率が95.2%から31.0%に落ちる

鍵に足す見出しは掛け算で効きます。入れ物に収まらなくなった時点で、当たり率が崩れます。

Vercelでは、鍵に足す見出しを絞るよう勧められています。公式は足す見出しはよく選ぶこと。1つ増えるごとに、手前に置く項目の数が指数的に増えるからであると述べています。

どこで崩れるのか。見出しを1つずつ足して実際に数えてみました。

見出しを1つずつ足す

text
要求 400,000件・道筋 800種。手前の入れ物は 20,000件ぶん
鍵に足す見出しを1つずつ増やして、鍵の種類と当たり率を見る

足した見出し              鍵の種類      入れ物に収まるか      当たった割合      元へ取りに行った回数
(なし)                              800種                 収まる             99.8%                      800回
国                              19,200種                 収まる             95.2%                   19,200回
国+言語                          115,200種               収まらない             31.0%                  275,829回
国+言語+端末の種類                    345,600種               収まらない             14.3%                  342,749回
国+言語+端末の種類+利用者の区分           2,764,800種               収まらない              2.5%                  390,111回

国だけなら95.2%を保ちます。19,200種は20,000件の入れ物に収まるからです。

言語を足した瞬間に31.0%へ落ちます。収まらなくなった時点で崩れます

段差になっている

1つ目の見出しでは4.6ポイントしか落ちません。2つ目で64.2ポイント落ちました。

だんだん悪くなるのではなく、入れ物に入るかどうかで切り替わります。数える順番は、見出しの値の種類を掛け算するだけです。

拠点ごとに分かれる話はAmazon CloudFrontの記事で扱っていて、そちらと合わせると分母がさらに増えます。

収まらなくなった時点で、当たり率が一気に落ちる。

単位: %なし(800種)99.8%国(19,200種)95.2%+言語(115,200種)31%+端末(345,600種)14.3%+区分(276万種)2.5%入れ物は20,000件ぶん。鍵の種類がこれを超えた行から、押し出しが起きている。
図1 ── 足した見出しの数と、当たった割合
出典Vercel ドキュメント「Vercel CDN Cache」2026-08-18 確認
Use Vary headers selectively, as each additional header exponentially increases the number of cache entries.
原文Vercel ドキュメント「Vercel CDN Cache」 この内容の有効期限2027-02-18

同じ24時間の期限でも、週1のものは0.0%しか当たらない

よく使われるものほど残ります。期限を同じにしても、頻度で結果が分かれます。

Vercelでは、よく求められるものほど残りやすくなります。公式はある資産がよく求められるなら、それは期間を通じて生き残る見込みが高いと述べています。

頻度でどれだけ分かれるのか。期限を揃えて実際に流して数えました。

頻度ごとに分けて見る

text
1週間ぶん(168時間)・要求 2,246,000件。手前の入れ物は 5,000件ぶん
期限は 24時間に設定してあるが、入れ物がいっぱいになれば期限前でも押し出される

要求の頻度        件数        要求回数      当たった回数      当たった割合
1分に1回                   200件    2,016,000回        2,014,600回             99.9%
1時間に1回                1,000件      168,000回          161,000回             95.8%
1日に1回                 6,000件       42,000回           14,282回             34.0%
1週間に1回               20,000件       20,000回                0回              0.0%

期限はどの行も同じ24時間です。それでも99.9%から0.0%まで分かれました。

週に1回しか求められないものは、次に来るときには期限を超えています。手前に置く意味がありません。

全体の当たり率では見えない

この4つを合わせると、全体では99%を超えます。件数の大半が1分に1回の側だからです。

それでも、週1のものを求める利用者は毎回待たされます。全体の数字だけを見ていると気づけません

分けて見る必要があるという点は遅延監視の記事でも扱いました。

出典Vercel ドキュメント「Vercel CDN Cache」2026-08-18 確認
If an asset is requested often, it is more likely to live the entire duration.
原文Vercel ドキュメント「Vercel CDN Cache」 この内容の有効期限2027-02-18

入れ物を6倍にしても、週1のものは0.0%のまま

期限は保証ではありません。大きくして効くのは、押し出しで落ちていた分だけです。

Vercelの期限は、保証ではありません。公式は手前に置く時間の最大を設定できるが、その時間は最善の努力であって保証されるものではないと述べています。

では大きくすればどこまで効くのか。同じ実行の後半で確かめました。

入れ物の大きさを変える

text
入れ物の大きさを変えたときの、頻度ごとの当たり率

入れ物の大きさ      1分に1回      1時間に1回      1日に1回      1週間に1回
5,000件ぶん                   99.9%         95.8%         34.0%          0.0%
10,000件ぶん                  99.9%         95.8%         46.1%          0.0%
20,000件ぶん                  99.9%         95.8%         46.1%          0.0%
30,000件ぶん                  99.9%         95.8%         46.1%          0.0%

効いたのは1日に1回の列だけで、34.0%から46.1%に上がりました。

しかも10,000件で頭打ちです。それ以上大きくしても変わりません。押し出しが起きなくなったからです。

2つの理由を分ける

  1. 押し出しで落ちている。大きくすれば直る
  2. 期限を超えて落ちている。大きくしても直らない

週1の列が0.0%のままなのは2番目です。期限を延ばすほうを検討することになります。

余談 この計測での注意

2つの計測はいずれも手元で書いた模型で、実際のVercelを叩いたものではありません。入れ物の大きさや期限は置いた値で、実際の仕組みが同じ捨て方をしている保証はありません。要求の頻度も4つの型に分けて置いており、実際の分布とは違います。押し出しは、いちばん長く使われていないものから捨てる方式ひとつだけを試しました。ここで見せているのは、鍵に足す見出しは掛け算で効いて段差で崩れるという点と、当たらない理由が押し出しか期限切れかで打つ手が変わるという点の2つです。

出典Vercel ドキュメント「Vercel CDN Cache」2026-08-18 確認
While you can put the maximum time for server-side caching, cache times are best-effort and not guaranteed.
原文Vercel ドキュメント「Vercel CDN Cache」 この内容の有効期限2027-02-18

よくある質問

鍵に見出しを足すと何が起きますか
鍵の種類が掛け算で増えます。公式も、見出しごとに指数的に増えると述べています。
どれくらい当たり率が落ちますか
国と言語の2つを足した条件で、95.2%から31.0%に落ちました。
設定した期限どおりに残りますか
残るとは限りません。公式も、期限は最善の努力であって保証ではないと述べています。
入れ物を大きくすれば解決しますか
頻度によります。1日に1回のものは34.0%から46.1%に上がりましたが、週1のものは0.0%のままでした。

まとめ

  • 鍵は掛け算で増える
  • 当たり率は急に落ちる
  • よく使われるものだけ残る
  • 大きくしても限界がある

今日から始められること

  1. 鍵に足している見出しを数える
  2. 見出しごとの値の種類を調べる
  3. 掛け算した鍵の種類を出す
  4. 要求の頻度ごとに当たり率を見る

実務で組んだVercelのワークフローには、値段が付きます

同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。

出品の仕組みを見る