许多人认为,此问题可能与阻止同步后台进程有关,特别是与繁重的cron作业有关。
如果属实,那么gielfeldt * 正在开发大量的模块,这些模块可能会立即解决该问题,或者至少可以提供一些线索,并帮助站点构建者在其案件中诊断和治疗具体罪魁祸首。两者都用非阻塞异步HTTP或命令替换了阻塞同步进程,并且都提供了可以识别麻烦进程的相关报告:
- 后台进程及其捆绑的模块允许Drupal的后台进程队列被异步处理,因此它们不会阻塞。这样可以解决问题。此外,在最新开发人员中捆绑的Background Process Apache Server模块中,有一个基本但正在改进的UI报告,具有可监视,解锁和检查这些过程的开始时间和进度的功能。这可以确定问题过程。
- Ultimate Cron建立在Background Process的基础上,允许cron触发的任务具有自己的独立异步机制,每个异步机制都可以在UI中进行监视和停止。除了可以将繁重的性能降低任务与常规的低开销清理工作区分开来,它还为您提供了一个报告,其中包含方便的信息,例如每个由cron触发的任务的运行时间,上次运行的时间,当前状态,等等。这还可以消除和/或识别问题过程的障碍。
无论如何,两者都是非常有用的模块。对于这个问题,它们可以用来测试(非常合理的探测)理论,即阻塞是由同步阻塞过程或cron运行引起的。潜在地,他们可以通过异步运行而不是同步运行它们来解决问题,并且还可以潜在地提供线索,指出哪些特定进程造成了这种阻碍。(请注意,他们的文档尚在开发中……
但是,如果根本无法配置它们来提供帮助,则表明问题不仅仅在于同步后台进程。FWIW,自从使这些模块正常工作以来,我再也没有在站点上遇到过这个问题(但是-接触木头)-但是我以前在我的站点以及野外的Drupal现场都看到过。
还应了解当前正在开发的其他相关插件模块-例如,在复杂的高强度情况下,Ultimate Cron Queue Scaler允许基于阈值的节流,可能有助于减少与cron相关的性能问题。
* 没有从属关系,我只是他们的工作给人留下深刻的印象