1

这是一个问题,我的应用程序在站点上偶尔遇到 CPU 限制峰值,其中几乎所有工作都是由于 cron 任务完成的,该任务每小时频繁运行以调用重新填充内存缓存的任务队列。

最近,该网站的流量激增,导致多个实例启动。

然而,令我惊讶的是,在那些日子里,我不得不降低 Memcache 任务的频率,尽管只有不到 1% 的 CPU 使用率与流量峰值有关。(在这个应用程序中完成的 99% 的工作是 (a) 在内存缓存任务队列中和 (b) 在客户端 JavaScript/JSON 逻辑中)。

我想知道的是,启动的其他实例是否都需要它们自己的 Memcache 任务队列,也许这就是为什么我看到与那些天重新填充 memcache 的任务队列相关的 CPU 使用率要高得多 -任务实际上是为每个实例分别执行

如果是这样,我如何确保任务队列 - 以及它填充的 Memcache - 在实例之间共享 - 如果这可能的话?

4

1 回答 1

1

任务队列和内存缓存都是全局的。您可能以某种取决于实例数量的方式将任务排入队列,因此您启动的任务超出了您应有的数量 - 如果没有看到您的代码,就不可能说出来。

于 2011-01-18T22:35:21.520 回答