Questions tagged «caching»

在Drupal中,通过减少处理量来提高响应时间通常需要使用缓存。

9
在缩放和调整性能方面的真实经验
据称,我正在工作的网站在发布后不久将具有很高的点击率。客户正在谈论一天之内每秒大约2500次点击的可能性。 忽略这个命中率可能是疯狂的客户端乐观的事实,除了获得最大的服务器以外,应该配置Drupal支持最大命中率的最佳方法是什么。 我读过缩放drupal.org基础设施,Drupal的性能博客,最佳实践缩放的Drupal和其他许多网页,但我正在寻找的是这样做的真实经历,是什么在起作用,什么不和什么期望。


4
大型站点的节省内存的缓存清除策略?
我的Drupal 7站点中有一个拥有数千个字段,一堆内容类型,超过25个视图以及数百个(很快成千上万个)配置文件类型。因此,我正在使用一个更好地缓存实体字段信息的核心补丁(http://drupal.org/node/1040790),以及-dev版本的Views,它可以通过显示更好地缓存视图(而不是一个HUGE)视图缓存中包含所有视图数据的行)。 这已帮助站点上的大多数页面加载了20-30MB的已用RAM,而不是160MB +(不是为10MB +的字段和视图拉出cache_ *表行,这些补丁有助于使cache_ *数据保持更高的效率)。 但是,这带来了一个问题,即缓存重建需要很长时间。通常超过一两分钟。在这段时间内,Drupal根本不会加载任何页面(因为它尚未尝试读取的缓存尚未建立,因此其他请求必须等待)。 在低流量周期中,这没什么大不了的。一百个左右的用户只需等待一分钟,即可加载页面。但是在高流量周期中,Apache服务器开始发疯,CPU负载超过40,并且由于所有工作线程都处于等待状态并最大程度地占用了内存,从而导致交换,内存很快就装满了。这有点像死亡螺旋。重新启动httpd可以清除问题,但是恢复正常需要5到10分钟。 我的目标是做到这一点,以使缓存清除不会使站点瘫痪。首先,如果我使用admin_menu的单个缓存清除功能(例如“ CSS和JS”,然后是“菜单”,然后是“主题注册表”,等等),事情进展顺利,直到我点击了“ Page and else”选项。那是在重置视图的缓存时(一个非常占用CPU和数据库的操作,需要缓存视图的数量),并且在重置字段信息缓存时(在此站点上也是CPU和数据库的消耗)。 所以...我的问题/想法: 使用drush和/或其他shell脚本,是否有可能比“一次清理所有缓存并希望进行干净的重建”更加智能地清除缓存? 我可以在清除缓存时阻止HTTP请求,以使apache不会被一堆带有缓存标记的请求所阻塞吗? 如果我可以清除Drupal /正常httpd请求之外的缓存,则可以为缓存清除操作设置更高的PHP memory_limit,并退出我的通用memory_limit(现在设置为256MB,以防任何单个httpd线程需要清除缓存) ...)。 基本上:除了单击UI中的按钮或使用之外,是否有任何智能,优雅的方式使用Drupal清除所有缓存drush cc all? [ 编辑说明:我的主要问题是缓存重建,这(a)需要一段时间,并且(b)阻止所有其他请求,直到重建完成。我想找到一种方法来使它在高流量时不会那么致命。]
30 7  drush  caching  performance 

4
如何完全关闭缓存?
我正在Drupal 7中开发一个站点,缓存大大降低了我的工作速度。例如,我有一个表单的主题功能。我很困惑,为什么它不起作用。直到我清除了缓存,然后将其修复。 如何将其完全关闭?
26 7  caching 

3
如果使用清漆,使用“升压”模块是否多余?
我们在Varnish服务器后运行Drupal实例,但我们正在寻找其他/其他方式来加速站点。Boost是为此经常被命名的模块。它似乎会生成静态版本的页面,并为这些页面提供服务,以避免重新生成时间,但是-如果我们已经使用清漆进行缓存-这对我们有好处吗?


4
优化经过身份验证的用户性能的最佳方法?
此处的关键字已通过身份验证! 当前(据我所知),事实上的优化匿名访问的方法是通过静态页面缓存(清漆/鱿鱼/增强)。 但是,据我所知,在大多数用户都经过身份验证的情况下,这似乎没有多大用处。 除了明显的APC,Memcache和向硬件投入的资金外,对大多数用户经过身份验证的高流量站点进行性能调整的最佳方法是什么? 例如:drupal.org,社交网络,社区等。 我现在对Drupal 6更感兴趣,所以我猜MongoDB现在不申请了...
22 6  caching  performance 


2
drupal_static()使用FUNCTION变量,这是什么意思?
function drupal_set_page_content($content = NULL) { $content_block = &drupal_static(__FUNCTION__, NULL); $main_content_display = &drupal_static('system_main_content_added', FALSE); if (!empty($content)) { $content_block = (is_array($content) ? $content : array('main' => array('#markup' => $content))); } else { $main_content_display = TRUE; return $content_block; } } 该摘录粘贴自common.inc。我们传入一个__FUNCTION__to, drupal_static()但是我不知道这个变量的含义。这是否意味着外部函数本身的缓存?它是如何工作的?在返回之前,我看不到函数内部处理过的任何数据$content_block。
21 caching 

7
如何使用SQL查询清除缓存?
模块更新后,我的站点已无法使用,并且仅显示php错误消息。我尝试使用解决问题drush cc,但这没有帮助。 还尝试了使用自定义php脚本,但是发现我的问题 DRUPAL_ROOT 我只想直接从mysql服务器上的Drupal 7中清除缓存表,但是我不确定应该为此清除哪些表,尤其是我不应该清除的表。 我是否只需要清除所有[SITE-PREFIX_]cache*表格?
21 7  8  caching 

7
如何根据当前节点为显示内容的自定义块正确设置缓存?
我有一个非常基本的块,它仅显示当前节点的ID。 <?php /** * @file * Contains \Drupal\mymodule\Plugin\Block\ExampleEmptyBlock. */ namespace Drupal\mymodule\Plugin\Block; use Drupal\Core\Block\BlockBase; use Drupal\Core\Cache\Cache; /** * @Block( * id = "example_empty", * admin_label = @Translation("Example: empty block") * ) */ class ExampleEmptyBlock extends BlockBase { /** * {@inheritdoc} */ public function build() { $node = \Drupal::routeMatch()->getParameter('node'); $build = array(); …
19 8  blocks  caching 

2
实现自定义缓存的最佳做法?
对于每种实体类型的每个实例,我都会生成许多缓存,它们的名称如下: [module_name]__[entity_type]__[entity_id]__[string_depending_on_where_the_cache_came_from] 现在,无论何时更新实体,我都希望删除所有从相关实体类型和ID开始的缓存。 我应该如何存储/清除这些缓存? 当前,我只是cache_set(),但是在我要清除时出现了一个问题,因为我不知道所有相关缓存的名称。使用db_delete()删除缓存条目是否安全?
17 7  caching 

2
什么都导致Drupal页面执行时间?
我正在调查一个存在主要性能问题的站点,使用内存缓存可以将查询数量和总执行时间(从3秒降低到230毫秒)都减少了,但是页面执行时间使我望而却步(我是查看由devel输出的值),我的理解是页面执行时间= php执行所花费的时间,因此我安装了APC,并且可以看到php opcode被缓存,并且统计信息显示APC控制面板中的命中(APC附带的apc.php),但是我的页面执行时间不会减少。所以我认为我的问题有两个: 什么都有助于(更好地减慢)页面执行时间?是只是花时间执行php吗? 我应该采取什么方法来缩短页面执行时间。我尝试过APC,但没有太大帮助 该站点上使用的PS模块数量非常庞大(168),但现在我无法提出建议,它更像是在洞口情况下的大火。 编辑:在本地实例上运行xhprof的输出(由mikeytown推荐),这似乎很疯狂,我认为以后的结果是由于重击?相同网址的diff运行差异很大,而且资源使用过多。也不确定为什么显示的不是今天的值:| (我刚刚在此笔记本电脑上安装了xhprof)

9
有没有办法挂钩缓存清除?
对于拥有大量高速缓存的大型机构网站,我想尽快生成高速缓存,以便没有用户可以到达高速缓存生成... 我通过执行一些功能并请求关键页面来设置所有时间的cron,但是我想寻找的是一种知道何时刚刚清除缓存(最好是钩子)的方法,因此我可以启动它生成功能。 任何想法 ?
16 7  hooks  caching 

3
最佳APC设置以减少页面执行时间
我有Drupal 7,带有php-fpm的apc和位于清漆和512 MB RAM之后的apache。 我用devel模块测量页面执行时间。 与页面执行时间854 ms相比,数据库查询时间很短(62ms)。这意味着PHP和APC设置存在问题。 我当前的设置是 apc.shm_size = 64 apc.stat=1 我该如何改善? 在上述配置下,Drupal的最佳设置是什么? 谢谢
15 7  performance  caching 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.