问题标签 [evict]

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 回答
112 浏览

windows - 在不超额订阅视频内存时,如何防止 SwapBuffers 被 Windows VidMm Eviction Paging 延迟?

我正在开发一个需要保持 60Hz 帧速率的实时渲染应用程序。我们发现每 90 秒从 SwapBuffers 返回的时间量超出 vsync 并且后续帧的开始被延迟。通过使用 GPUView 我们发现此时 System VidMm Worker Thread 正忙于处理系统上运行的每个应用程序的 Evict Paging Queue 生成的数据包。

SwapBuffer 延迟的 GPUView 在此图像中,左帧在 Vsync 之后立即开始渲染,而右帧被延迟。在这些帧之间,当线程空闲等待 SwapBuffer 返回时,System Eviction Paging 会触发大量工作由应用程序和 VidMm Worker Thread 执行。这项工作在 Vsync 之外继续进行,并将第二帧从开始延迟到驱逐工作完成。

Eviction Paging 是出乎意料的,因为 GPU 内存完全在 GPU 的能力范围内。我正在运行具有 24GB 显存的 Quadro P6000,当时该应用程序使用的内存不到 3GB,并且系统上没有任何其他 GPU 密集型运行。此外,无论我的应用程序是否正在运行,此行为每 90 秒在我的计算机上发生一次。在运行《孤岛危机 2》作为测试时,我也看到了相同的行为。

当系统没有过度使用 GPU 内存时,什么会触发 GPU Memory Evict Paging?有没有办法阻止这种情况发生?可以将应用程序配置为在系统要求时不驱逐视频内存吗?如果上述方法是不可能的,有没有办法安排驱逐逻辑以防止它在 Vsync 之前发生?或者有没有办法防止 SwapBuffers 被这项工作延迟,以便下一帧的 CPU 工作可以准时开始?

0 投票
1 回答
37 浏览

kubernetes - 如果请求的内存是“最小值”,为什么当它超过请求的 10 倍时 kubernetes 会杀死我的 pod?

我正在调试 Kubernetes 中的 pod 驱逐问题。

看起来它与 PHP FPM 子进程数量中的配置有关。

我分配了 128 MB 的最小内存,当超过该数量的 10 倍时,Kubernetes 显然正在驱逐我的 pod ( The node was low on resource: memory. Container phpfpm was using 1607600Ki, which exceeds its request of 128Mi.)

我怎样才能防止这种情况?我认为请求的资源是最低限度的,如果没有上限,pod 可以使用任何可用的资源。