是否可以限制 Windows 上特定进程的内存使用量

是否可以限制 Windows 上特定进程的内存使用量

用户在非常大的表格(超过 500mb)上使用 Excel 进行计算,即使有 16GB 的 RAM,Excel(64 位)也会占用所有现有内存,我看到它使用了超过 11GB 的系统内存。

有没有办法将其限制在合理大小(比如 8GB)以便系统不会陷入停滞并通过页面文件切换来在 Chrome 中打开新标签?

答案1

我理解这里的问题是找到一种方法来限制进程使用的内存,而不管性能的影响。

在 Windows Server 上,您可以使用名为 Windows 系统资源管理器的工具执行此操作,该工具可以限制进程使用的工作集数量。此工具可通过 Windows Server 2008 R2 上的“添加功能”控制台安装(默认情况下未安装)。

在 Windows 7/8/10 上,没有 Microsoft 解决方案可以做到这一点。您必须安装以下第三方软件:

答案2

进程管理器对我来说效果很好。开源、MIT 许可证、易于使用:

procgov --maxmem 40M your_app.exe

答案3

正如所提到的@Mikhail 的回答,现在可以轻松利用 Windows 内置系统“工作对象”使用免费处理器调速器设置每次启动或持久启动的工具(通过注册表项)CPU 使用率/分配/亲和性、内存使用率和网络使用率的限制。

  • 使用该工具作为文档,我怀疑手动注册表项可能使这成为可能,而无需安装任何第三方软件。
  • 注意进程管理器--recursive在网络浏览器等程序中使用该选项(以及基于它们的应用程序,例如“Electron”应用程序)确保所有(通常很多)子进程在所需配额范围内。

截至 2022 年的其他可能选择:

  1. 不确定是否有操作方法可以做到这一点,但有一个 GPO 安全设置可供用户控制进程内存限制。

  2. 运行32 位Excel 版本应该本质上将其可使用的内存量限制为 2GB(或 3GB/4GB,取决于 Windows 版本和设置)的 RAM。

    • (遗憾的是,这不适用于 Google Chrome 或 Microsoft Edge 等对每个选项卡使用不同进程的网络浏览器。)
  3. 在虚拟机中运行 Excel(例如 Hyper-V)或容器(例如原生 Windows 或通过 Kubernetes)它具有限制 CPU 和 RAM 使用率的内置方法。


具有可能线索或解决方案的较旧问题:

答案4

如果问题是您无法同时在计算机上执行其他操作,您可能需要尝试降低 Excel 的 CPU 优先级。这样,如果您运行其他程序,Excel 将被迫停止并等待,因为您的程序具有更高的优先级。这将需要更长时间才能完成,但您应该能够同时执行其他操作。

Windows 7 说明:

  1. 打开任务管理器(Ctrl+Alt+Del)
  2. 打开“进程”选项卡。右键单击 excel.exe 并转到“设置优先级”。
  3. 选择新优先级。大多数进程以正常方式运行,因此您可以使用低于正常或低。

这是暂时的,因此,如果退出 Excel,则必须再次执行此操作。

来源:https://www.sevenforums.com/tutorials/83361-priority-level-set-applications-processes.html

相关内容