首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >大型站点的内存节省缓存清除策略?

大型站点的内存节省缓存清除策略?
EN

Drupal用户
提问于 2012-11-08 16:37:40
回答 3查看 5.3K关注 0票数 30

我的Drupal 7站点之一有数千个字段、一组内容类型、25多个视图和数百个(很快就会有数千个)配置文件类型。正因为如此,我使用了一个更好地缓存实体字段信息(http://drupal.org/node/1040790)的核心修补程序,以及通过显示更好地缓存视图的-dev版本(而不是有一个包含所有视图数据的巨大视图缓存行)。

这帮助站点上的大多数页面加载使用20-30MB内存的内存,而不是160MB+ (而不是为属于10MB+的字段和视图拉出cache_*表行,这些修补程序有助于保持cache_*数据的更高效率)。

然而,这带来了一个问题,即缓存重建需要很长时间。通常超过一到两分钟。在此期间,Drupal根本不会加载任何页面(因为它试图读取的缓存尚未构建,其他请求必须等待)。

在低流量周期中,这并不是什么大问题;大约100名用户只需等待一分钟才能加载页面。但是在高流量周期中,Apache服务器开始疯狂,40+的CPU负载,内存很快被填满,因为所有的工作线程都在等待,最大限度地释放它们的内存,导致交换。这是一种死亡螺旋。重新启动httpd将清除所有内容,但恢复正常需要5-10分钟。

我的目标是使它,使缓存清除不会使网站屈服。例如,如果我使用admin_Menu的单独缓存清除功能(比如"CSS和JS",然后是“菜单”,然后是“主题注册表”,等等),事情就会顺利进行,直到我点击"Page and else“选项。这是视图的缓存被重置的时候(这是一个非常复杂的CPU和数据库操作,需要缓存的视图数),当字段信息缓存被重置时(在这个站点上也是CPU和数据库密集)。

所以..。我的问题/想法:

  • 使用drush和/或其他shell脚本,我是否有可能以比“一次爆破所有缓存,并希望进行干净的重建”更智能的方式清除缓存?
  • 在缓存清除过程中,我能阻止http请求吗?这样apache就不会被一堆缓存踩踏请求阻塞了?
  • 如果我能够清除Drupal/普通httpd请求之外的缓存,我可以为缓存清除操作设置一个更高的memory_limit,并退出我的通用memory_limit (现在设置为256 my,以防任何单独的httpd线程需要清除缓存.)。

基本上:除了单击UI中的按钮或使用drush cc all之外,是否有任何智能和优雅的方法来清除Drupal中的所有缓存?

编辑以澄清:我遇到的主要问题是缓存重新构建,其中(A)需要一段时间,(B)阻塞所有其他请求,直到重建完成为止。我想找到一种方法,以使重建不太致命的高交通时期。

EN

回答 3

Drupal用户

回答已采纳

发布于 2012-11-08 17:26:52

除了简单地单击UI中的按钮或使用drush cc all,是否有任何智能和优雅的方法来清除Drupal中的所有缓存?

缓存动作模块就是这样做的。这取决于规则。例如,当添加或更新"x“类型的节点时,可以设置规则以清除特定的视图。有关更多细节,请查看文档

还请看一下缓存优美模块--还没有尝试过,但看起来很有趣。

票数 10
EN

Drupal用户

发布于 2012-11-14 09:13:19

主要的问题是您正在使用MySQL来存储缓存数据-对于高负载的站点来说,这是非常无效的解决方案。

我建议改用模缓存。这将极大地提高缓存系统的性能,并给您带来两个巨大的好处:

  1. Memcache对于MySQL的读和写操作来说要快得多--所有的缓存操作(以及完全的缓存重建)都会工作得更快。
  2. 因为不再存储在DB中的缓存数据-清除缓存不会阻止任何其他MySQL查询。

下面是用于Drupal 7的模缓存配置示例。

票数 2
EN

Drupal用户

发布于 2015-07-08 16:40:17

这可能涉及到金钱成本,但您可以使用类似Varnish的缓存服务器设置。好处是,虽然您的缓存正在生产服务器上清除,但用户没有更多的智慧,Varnish将为您的站点提供服务。

缺点:根据生产服务器的停机时间和VCL超时设置的时间长短而定,Varnish可能会在这段时间内进行更新,您将看到Varnix503错误屏幕。

但是,这种方法以及Redis或Memcache可能会有所帮助。

票数 0
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/50040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档