Windows:即使有足够的物理内存可用,仍出现“分页文件太小”错误的原因可能是什么?

Windows:即使有足够的物理内存可用,仍出现“分页文件太小”错误的原因可能是什么?

在我们的一个应用程序中,我们收到一条错误消息,指出“页面文件太小,无法完成此操作”当应用程序尝试加载 DLL(.NET 程序集)时。

但是,系统指标显示虚拟机上有足够的物理(和虚拟)内存可用。不幸的是,我们不知道此时页面文件的使用情况。该机器的一个特点是,与总物理内存(32 GB)相比,页面文件非常小(3 GB,不受操作系统管理)。

为什么即使有足够的物理内存可用,我们也会收到页面文件错误?

这发生在由 AKS(Azure Kubernetes 服务)管理的 Windows VM 上,因此我们不能简单地更改页面文件设置。发生错误的应用程序正在该 VM 上的 Kubernetes Pod 中运行。

答案1

与此同时,我们又做了一些实验,结果发现达到容器内存限制*也会产生错误ERROR_COMMIT_LIMIT代码 (1455),该代码解析为以下消息 页面文件太小,无法完成此操作。所以,我们只是被消息误导了;错误很可能是由于应用程序达到其极限而导致的,而与分页文件无关。

* 容器内存限制是一个 Kubernetes 概念,它映射到 Windows Server Silos 和作业对象强制执行的资源限制,例如,这里这里

答案2

Windows 的最佳做法是将分页文件大小设置为等于或大于可用物理内存的总量。

https://learn.microsoft.com/en-us/sharepoint/technical-reference/the-paging-file-size-should-exceed-the-amount-of-physical-ram-in-the-system

你设置成多少啊?

相关内容