可以说我们有一台OS X机器运行4 GB的RAM。是否可以进行设置,以使单个进程不能占用超过3 GB的空间,因此,无论如何占用一个进程的内存,总会留有一些内存来保持系统的响应能力?
可以说我们有一台OS X机器运行4 GB的RAM。是否可以进行设置,以使单个进程不能占用超过3 GB的空间,因此,无论如何占用一个进程的内存,总会留有一些内存来保持系统的响应能力?
Answers:
在此处指出了与此类似的问题。如何限制Mac OS应用程序可以使用的RAM量?
他们建议使用ulimit命令,但是他们无法成功地将数量限制为所需的数量。我认为他们遇到的问题是,设置为-u或-v的选项不能解决内存分页系统的问题,例如,您只能为X的实际RAM中的进程分配X数量的空间,但是我们可以分页你整天都在虚拟内存中。
请注意,这可能是危险地禁用虚拟内存,这可能会导致您的Mac仅在运行RAM时锁定。
尝试使用参数-l,-m或-v运行ulimit,但是,如ulimit手册页中所述,如果不注意或不注意这些设置,则将其运行到OS。
ulimit:ulimit [-SHacdefilmnpqrstuvx] [limit]
修改外壳资源限制。
在允许进行此类控制的系统上,控制可用于外壳程序及其创建的进程的资源。
确实找不到任何确定的源来确认OS X是否忽略了ulimit,但是在引用的ulimit失败之后
如果您可以单独使用ulimit来满足您的需求,那么就试试吧,如果不结合使用ulimit和/或禁用虚拟内存,也许可以让您在选择的进程上设置3 GB的限制。仅供参考,这里是有关Snow Leopard System 10.6中完全禁用虚拟内存的更多信息的好链接
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist