Answers:
我的性能演示中的幻灯片#85讨论了MySQL中的最大数据包大小,您需要增加该值;SET GLOBAL max_allowed_packet=33554432;
或在配置文件https://dev.mysql.com/doc/refman/5.7/en/packet-too-large.html中进行更改
允许的最大数据包大小可能是发生这种情况的原因之一,但我可以看到多种原因,在这种情况下它可能是其他原因。
这种模式的最常见原因是在每个页面上发生的variable_set()调用。查看使用xhprof,xdebug和设置断点或添加debug_print_backtrace(DEBUG_BACKTRACE_NO_ARGS)这些高速缓存删除的来源。我很确定您会在其中看到一个variable_set()调用。
问题在于,变量只有一个全局缓存。每次缓存写入都会导致缓存删除,下一个请求将读出整个{variables}
表并将其写回到缓存中。
许多开发人员对此并不了解,而是通过直接在.module文件或在每个请求中执行的另一个位置中调用variable_set()来执行诸如“确保值”之类的事情。
这只是一个假设,但是如果您的引导程序缓存在每次页面加载时都重建,则可能会发生一些模块丢失在modules文件夹中但仍然存在于系统表中的情况。在每个页面上,加载drupal尝试找到它并重建bootstrap_cache。
尝试使用Bootstrap优化器模块,它将有助于查找和删除此类记录。