问题标签 [page-caching]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1087 浏览

mobile - W3 总缓存和用户代理组

我们正在使用 W3 Total Cache(页面缓存 - 磁盘:基本)。这会导致为桌面和移动设备生成相同的缓存。

我们需要为我们尝试使用用户代理组的移动和桌面单独缓存,但似乎我们没有正确配置它或者它没有按预期工作。

我们的配置如下: 适用于 iphone 和 android 设备

对于其他设备

但两者生成的缓存仍然相同,以下是桌面和移动设备的调试信息:

桌面:

苹果手机:

两个缓存的生成日期时间相同,这意味着移动设备没有任何单独的缓存。

如果我没有正确配置它或缺少任何其他部分,有人可以帮忙吗?

0 投票
1 回答
164 浏览

ruby-on-rails-4 - Rails 4:如何在生产环境中卸载“actionpack-page_caching”并清除缓存

我尝试使用“actionpack-page_caching”gem 在 Heroku 上提供静态 html 页面,发现 Heroku 不支持它,或者至少让它变得更困难一些。gem 在开发中工作得很好,但在生产中却不行,现在我试图缓存的页面看起来都很时髦。虽然这首先不是必需品,但我只想卸载 gem,但看起来服务器仍在推出页面的缓存版本。

我尝试卸载 gem(“gem uninstall actionpack-page_caching”),然后清除缓存(heroku run rails console Rails.cache.clear & heroku rake tmp:clear),但没有成功。我的文件已经恢复到原来的样子,所以我不知道我做错了什么。

0 投票
0 回答
44 浏览

linux-kernel - 尝试在内核虚拟地址空间中分配页面时出现错误的指针

我正在开发 x86-64 CentOS 7 上的 Linux 驱动程序。我们有一个内核模块,可以读取和写入文件。该模块尝试获取保证连续的页面。当我尝试read/write5 GB 或 10 GB 的较小作业时,它工作正常。我得到了正确的内核虚拟地址空间指针,0xffff 8xxx xxxx xxxx
但是如果我尝试更大的工作/数据(比如 20 到 50 GB),那么我得到的这些地址指针看起来像0x0000 00xx xxxx xxxxx. 这些不是内核虚拟地址空间指针。

因此,我看到操作系统崩溃。但是,如果我在作业期间通过使用清除缓存频率,echo 3 > /proc/sys/vm/drop_caches 那么它工作正常,并且我得到正确的内核虚拟地址空间指针。

对于这种含糊不清的问题,我深表歉意。欢迎任何提示和建议。

谢谢

0 投票
1 回答
552 浏览

performance - Neo4j 堆和页面缓存配置

我在 16GB RAM 的 Linux 机器上运行 neo4j 3.2.1,但我遇到堆内存每次都显示错误的问题。

在文档中,我们有:

实际操作系统分配 = 可用 RAM -(页面缓存 + 堆大小)

这是否意味着如果我们为我的机器配置它(例如 16g 用于堆,16g 用于页面缓存)那么分配将为 0,从而引发问题?

谁能告诉我如何进行最佳配置以探索机器的更多容量而不必再次面对堆错误?

0 投票
1 回答
883 浏览

yii2 - yii2 单个帖子的页面缓存

我通过 yii2 写博客并使用页面缓存

我的 post 表的主键为 id ;如何将 sql 设置为每个帖子 ID 的单独页面缓存?谢谢你。

0 投票
1 回答
4350 浏览

caching - mmap 是直接访问页面缓存,还是访问页面缓存的副本?

以另一种方式问这个问题,您能否确认当您 mmap() 一个文件时,您实际上访问了页面缓存中已经存在的确切物理页面?

我之所以问,是因为我正在一台 192 核、1TB RAM 的机器上测试一个 400GB 的数据文件,该文件在测试前预缓存到页面缓存中(只需删除缓存,然后对文件执行 md5sum) .

最初,我让所有 192 个线程分别对文件进行 mmap,假设它们都会(基本上)返回相同的内存区域(或者可能是相同的内存区域,但以某种方式映射了多次)。因此,我假设使用两个不同映射到同一个文件的两个线程都可以直接访问相同的页面。(让我们忽略这个例子中的 NUMA,尽管显然它在更高的线程数中很重要。)

然而,在实践中,我发现当每个线程单独映射文件时,在更高的线程数下性能会变得很糟糕。当我们删除它并只执行一个传递给线程的 mmap 时(这样所有线程都直接访问相同的内存区域),然后性能显提高。

这一切都很好,但我正试图找出原因。如果实际上映射一个文件只是授予对现有页面缓存的直接访问权限,那么我认为映射它的次数并不重要——它应该都到同一个地方。

但是考虑到这样的性能成本,在我看来,实际上每个 mmap 都是独立且冗余地填充的(可能通过从页面缓存复制,或者可能通过再次从磁盘读取)。

您能否评论一下为什么我看到共享访问同一内存与映射同一文件之间存在如此不同的性能?

谢谢,感谢您的帮助!

0 投票
0 回答
25 浏览

file-io - 是否可以在 Linux 的页面缓存中关闭自动刷新?

我正在尝试编写一个 C 库,简而言之,我需要在应用程序和底层非易失性内存之间维护一个缓存。Linux 已经通过页面缓存做到了这一点。使用它而不是创建自己的缓存对我很有用。据我了解,操作系统会定期将页面缓存的内容同步到存储中。我可以在 Linux 的页面缓存中关闭自动同步/刷新到磁盘吗?也许在每个应用程序的基础上?

0 投票
0 回答
269 浏览

memory-management - 在内核模块中保留大的虚拟地址空间

在我的研究项目中,我必须在内核模块内保留一个大的虚拟内存地址空间并处理对该区域的内存访问(在 64 位系统中)。我修改do_page_faultarch/x86/mm/fault.c中的函数,以便在 TLB 中没有页面映射记录时可以处理页面错误。

在我的项目中,保留的虚拟地址空间比物理可用内存大得多。例如,假设我们有 4GB 的可用内存空间。在我的内核模块中,我有 16GB 的地址空间,可以通过加载/存储指令访问。我想将一个 4KB 的页面压缩成 1KB 并将 16GB 的可压缩数据保存到 4GB 内存中;一旦发生页面错误,它会解压相应的页面并将其复制到页面缓存中。

我尝试过诸如kmallocand之类的内存分配函数vmalloc,但它们实际上是在分配内存,而我只需要通过调用 [decompression] 函数进行一些非一对一的虚拟地址映射。我怎样才能做到这一点?

0 投票
1 回答
428 浏览

java - Linux:脏页写回和并发写

背景:在 Java 中,我正在内存映射文件(共享)。

我正在该文件的地址 0 处写入一些值。我了解 PAGE CACHE 中的相应 PAGE 被标记为 DIRTY,稍后将根据dirty_ratio 等设置写入。

到目前为止,一切都很好。

但是我想知道当内核将脏页写回文件时再次在地址 0 处写入时会发生什么。我的进程是否以某种方式阻塞等待写回完成?

0 投票
1 回答
49 浏览

php - OpenCart 1.5.xx ajax 随机值

我有动态块,可以在随机排序的表中显示和隐藏产品。但是当现金页面处于活动状态时,页面的这一部分会显示产品并仅显示查询中的第一个产品...我不明白如何使其具有这种效果并在随机排序时显示 10 个产品...查询

返回$查询->行;

并与 ajax 分开:

和我的功能