【问题标题】:Keep ram for python process为python进程保留ram
【发布时间】:2013-02-06 14:04:26
【问题描述】:

我有一个可以在多台机器上运行的 python 脚本(用 py2exe 制作的 exe)。这个 Python exe 定期做两件事;一个线程写入一个 py 文件以供进一步处理,而另一个线程使用 pyZmq 模块侦听 tcp 端口。使用了大约 12Mo 的 ram,它已经完美运行了好几天。

现在问题来了:这些机器还运行3dsmax 渲染。 3dsmax 占用系统上所有可用的 ram,只为我的脚本留下 4Mo 的 ram。在这种状态下,报告(py 文件写入)线程正常运行,但侦听 tcp 端口的线程不再工作(向机器发送 msg 不会收到)。

然而,这个 python exe 进程以高优先级运行:

set_nice(psutil.HIGH_PRIORITY_CLASS)

那么,我怎样才能为我的进程保留 14Mo 的 ram,以便没有其他正在运行的进程可以占用这个 ram?或者另一种方法来避免 exe 将他的内存“交给”其他进程?

谢谢, 基布

【问题讨论】:

  • Set Windows process (or user) memory limit 中可能有一些好的线索
  • 为什么您认为低可用 RAM 会导致问题?您是否出现内存不足错误?除非您禁用了虚拟内存页面文件,否则应该不是问题。

标签: python windows-7 python-2.7


【解决方案1】:

您可以使用 Win32 调用 VirtualLock。我没有看到任何简单的 python 示例,也没有方便的 windows 机器来玩,但它可能相对容易。

在 Python ProcessHacker 之外似乎可以做到,但我无法验证。

但总的来说,这是一个坏主意。我认为您可能遇到了更严重的问题。祝你好运!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-02
    • 2013-08-27
    • 1970-01-01
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    • 2015-11-05
    • 1970-01-01
    相关资源
    最近更新 更多