问题标签 [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.
apache-kafka - 在 Kubernetes 中运行 Kafka 时如何管理页面缓存资源
一段时间以来,我一直在 Kubernetes 上运行 Kafka,没有出现任何重大问题;然而,我最近引入了一个 Cassandra pod 集群,并开始遇到 Kafka 的性能问题。
尽管 Cassandra 不像 Kafka 那样使用页面缓存,但它确实会频繁写入磁盘,这可能会影响内核的底层缓存。
我知道 Kubernetes pod 是通过 cgroups 管理内存资源的,这可以通过在 Kubernetes 中设置内存请求和限制来配置,但是我注意到 Cassandra 对页面缓存的利用会增加我的 Kafka pod 中的页面错误数量,即使它们似乎没有竞争资源(即,它们的节点上有可用的内存)。
在 Kafka 中,更多的页面错误会导致更多的磁盘写入,这会阻碍顺序 IO 的优势并损害磁盘性能。如果您使用 AWS 的 EBS 卷之类的东西,这最终会耗尽您的突增余额并最终导致整个集群发生灾难性故障。
我的问题是,是否可以在 Kubernetes 中隔离页面缓存资源,或者以某种方式让内核知道我的 Kafka pod 拥有的页面应该比我的 Cassandra pod 中的页面保留在缓存中的时间更长?
shopify - shopify应用程序上的缓存问题
我们正在开发一个应用程序,它将在产品详细信息页面上显示一个按钮来执行一些操作。我们使用 product.metaifields 根据条件显示相同的内容。所以基本上按钮显示会根据元字段值进行切换。
我们面临的问题是,从管理部分激活该功能,然后该按钮将不会显示在用户端,除非我们在浏览器上进行硬刷新。这里发生的是 Shopify 缓存元字段值,因此条件检查将不起作用。当我们对应用程序执行某些操作时,有什么方法可以删除页面缓存?
shell - UBIFS:编辑过的文件不会被保存。如何将它们同步到NAND?
我将 UBIFS 用于 NAND 上的 rootfs。当我使用 nano 命令编辑 /etc/rc.local 之类的文件并保存时,“cat /etc/rc.local”当然会显示编辑后的内容。但是在移除电源(没有reboot 或poweroff 命令)并再次供电后,/etc/rc.local 的内容变为空。
我发现写入的数据在UBIFS中并没有立即写入NAND并写入缓存。(参考:http ://www.linux-mtd.infradead.org/faq/ubifs.html#L_empty_file )
我想在编辑后直接同步到 NAND。我找到的唯一解决方案是 fsync,但这应该在 C 程序中调用,并且需要文件描述符。Nano 命令等没有给我们文件描述符。所以我无法解决这个同步问题。
如何解决这个不同步到 NAND 的问题?有同步命令吗?如果我想在 UBIFS 中编辑和保存文件,是否必须使用 C 程序编辑文件并使用 fsync?
laravel - Laravel - 如何使 CSRF 令牌与 HTML 缓存一起使用?
据我所知,HTML 缓存会生成一个静态 html 文件,但 CSRF 需要在每次加载页面时刷新,所以有没有办法让 CSRF 令牌与 HTML 缓存一起工作?
linux - 通过 O_DIRECT 读取是否首先刷新脏页?
假设我有一个执行以下操作的简单程序:
我会得到保证readBuffer == writeBuffer
吗?(显然,鉴于此文件的其他 fd 目前没有打开)
在 Linux 上进行的一些简单测试似乎表明,是的,来自 write 调用的脏页将在通过读取之前刷新到磁盘O_DIRECT
,但我似乎在任何地方都找不到关于这种情况的任何提及。据我所知,它的工作可能完全是巧合,而且我不知道在其他类似 POSIX 的平台上会发生什么。至少我想得到一些“确凿的证据”。
你为什么做这个?
它是在应用程序分发被缓存的大文件的上下文中。收到文件的新部分后,我想验证新部分。我看到使用的两个优点O_DIRECT
:首先,我不仅检查数据是否已正确接收,而且可以从存储介质中正确检索。如果没有O_DIRECT
,我几乎可以保证我只是从页面缓存中获取数据。为了在O_DIRECT
没有. (因为我曾经了解到在脏页上调用with本质上是一个无用的方法)。
但是,如果有人对此有更优雅的建议,我会全力以赴。:-)sync_file_range
madvise
madvise
MADV_DONTNEED
yii2 - Yii 在 ajax 调用中使用 PageCaching 时不起作用
我试图在 Yii2 高级项目中实现页面缓存,一切似乎都非常酷。突然间,我遇到了一个奇怪的问题。
案例:在网站的主页上有一些动态数据,如显示来自数据库的记录、当前用户的信息如姓名(如果用户已登录)和一些静态内容。此外,还有一个搜索输入字段,它使用 AJAX 调用获取结果。
为了加快页面加载,我实现了 Yii2 提供的 PageCaching。一切都很好。但是我遇到的一个问题是,在用户登录后,ajax 调用不起作用并给出了错误:
错误请求 (#400):无法验证您的数据提交。
在设置的持续时间后刷新缓存或禁用缓存之前,我会收到此错误。
这个问题与 cookie/session 或其他有关吗?如何解决?
ruby-on-rails-5 - Dynamic page caching failing in Rails 5
I'm updating a site from rails 4.2 to 5.1
In the previous setup I have page caching on a generated stylesheet (per tenant), all working perfectly.
After upgrading to 5.1 this is no longer working
Using latest version of actionpack-page_caching
Controller for the Stylesheet that is cached looks like this:
I'm getting the following error in the logs:
There is no physical template for this as I'm rendering it directly from the stylesheet model. Have confirmed the model is returning data.
Caching is enabled in development.
In the layout page the reference to the dynamic stylesheet is:
and the helper method (in application_helper) is:
I'm not sure what's getting skipped/missed here, any pointers?
linux - Linux 文件系统层(不是 VFS)是否知道页面缓存
在 Linux 文件系统中,我了解页面缓存位于 VFS 和文件系统之间。想知道,在任何时候文件系统是否会知道页面缓存中的(文件的)页面,或者只有 VFS 层才会有这个信息?
哪一层实现了页面缓存逻辑(VFS 或 FS)?从 linux 内核代码的哪一部分开始理解这一点?
不同文件系统的页面缓存实现是否不同(例如 ext4 等单节点文件系统和 GFS2 等分布式文件系统不同)?
| 虚拟文件系统 | --> | 页面缓存 | --> | 文件系统 例如:ext4 |
linux - 如何处理 linux 页面缓存(标签查找)返回的页面少于所要求的页面?
这是从文件系统的角度来看的。
文件系统页面大小为 8K(即块大小的两倍,4k)。因此,当我弄脏页面并进行刷新时,我会不惜一切代价
确保传递给的范围是 8k 对齐的。pvec_lookup_tag()
页面缓存应该给我从 8k 对齐地址开始的页面(即偶数索引)
所以,归结为问题。
我已经弄脏了页面,然后我向页面缓存询问某些指定范围和映射中的 14 个脏页。
但是,令人惊讶的是,它只给了我一页奇怪的对齐。
简而言之,我得到的只是我最初打算的 8k 页面的第二个 4k 页面。
另外,我通过故障转储检查了映射。我问过的所有 14 页都在那里,而且还标有脏页。
只需重试相同的查找即可获得正确的页面。但我觉得这里一定有更好的解决方案。
在将页面标记为脏页面和尝试导致此问题的标签查找之间是否存在一些奇怪的窗口?
(我在 Linux Kernel v3.10.x 上)
好的,让我用更简单的术语重新表述这个问题。
linux中的标签查找是否有可能给我的页面比我要求的少?
如果是,如何处理此类情况?