Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

エラー 1102

最終更新 Markdown で表示Agent セットアップ

エラー 1102: Worker exceeded resource limits

このエラーは、Cloudflare Worker が CPU 時間の制限またはメモリ制限を超えたことを示します。

CPU 時間の超過

Cloudflare Worker が CPU 時間の制限 を超えています。CPU 時間は、コードの実行にかかった時間です(ループ、JSON の解析など)。ネットワークリクエスト(取得、応答)にかかった時間は、CPU 時間に含まれません。

デバッグ

CPU 負荷の高いコードを特定するには:

  1. ローカルで DevTools の CPU プロファイリング を使い、負荷の高い処理を特定します。
  2. Workers Logs を確認します。CPU 時間は invocation ログに表示されます。特定のルートやリクエストが CPU 時間を多く使っていないかを調べられます。

解決方法

Workers コードの開発者に連絡し、CPU 使用量を減らすようコードを最適化してもらいます。よくある最適化の方針は次のとおりです。

  • ループの反復回数を減らす
  • JSON の解析処理を最適化する
  • 計算済みの値をキャッシュする
  • 大きな処理を小さな単位に分割する

Workers Paid プランでは、CPU 負荷の高いタスク向けに CPU 時間の制限を延長 し、最大 5 分まで設定できます。

メモリの超過

Cloudflare Worker が 128 MB のメモリ制限 を超えています。これは isolate ごとの制限であり、1 つの isolate が複数のリクエストを同時に処理していることがあります。

デバッグ

メモリの問題を特定するには:

  1. ローカルで DevTools のメモリプロファイリング を使い、メモリスナップショットを取得してリークを特定します。
  2. 大きくなりうるボディ(リクエストまたはレスポンス)のバッファ、グローバルスコープに保持した大きなオブジェクト、配列へのデータの蓄積といったパターンを探します。

解決方法

メモリ制限を超えないようにするには:

  • 大きなオブジェクトやレスポンスをメモリにバッファしない
  • TransformStreamnode:stream などのストリーミング API を使い、バッファせずにデータを処理する
  • グローバルスコープに大きなオブジェクトを置かない
  • データを蓄積する処理に注意する(文字列や配列への繰り返しの追加など)

関連エラー

  • エラー 1101 - Workers の JavaScript ランタイム例外
  • エラー 503 - サービス一時利用不可(Workers の CPU またはメモリ制限が原因になることがあります)

役に立ちましたか?