最大許可パケットサイズは、これが発生している1つの理由である可能性がありますが、この場合はおそらく別の理由であるという複数の理由がわかります。
- キャッシュへの書き込みだけでなく、明示的なキャッシュの削除も行われます。キャッシュ書き込みが失敗すると、キャッシュ書き込みが繰り返され、キャッシュミスが発生しますが、削除は発生しません。
- これはcache_bootstrapテーブルです。大きくなる可能性のあるキャッシュがいくつかありますが、それらは通常、そのビンからのものではありません。
このパターンの最も一般的な理由は、すべてのページで発生するvariable_set()呼び出しです。xhprofを使用するか、xdebugを使用してブレークポイントを設定するか、debug_print_backtrace(DEBUG_BACKTRACE_NO_ARGS)を追加して、これらのキャッシュの削除がどこから行われているかを確認します。そこにvariable_set()の呼び出しが表示されることは間違いありません。
問題は、変数に対して単一のグローバルキャッシュが存在することです。キャッシュへの書き込みが行われるたびにキャッシュが削除され、次のリクエストで{variables}
テーブル全体が読み取られてキャッシュに書き戻されます。
多くの開発者はそれに気づいておらず、.moduleファイルまたはすべてのリクエストで実行される別の場所でvariable_set()を直接呼び出すことによって「値を保証する」などのことを行っています。