我有泄漏内存的进程的问题。它们导致我的硬盘驱动器被填充交换文件/private/var/vm
。
我希望操作系统可以立即泄漏泄漏的进程。我对20分钟后出现的对话框不感兴趣,建议应用程序杀死,甚至不显示泄漏的对话框。
我已经尝试设置rss
和data
限制/etc/launchd.conf
但它似乎没有效果。
这是我的/etc/launchd.conf
:
limit data 8589934592 8589934592
limit rss 8589934592 8589934592
这是launchctl limit
输出:
% launchctl limit
cpu unlimited unlimited
filesize unlimited unlimited
data 8589934592 8589934592
stack 8388608 67104768
core 0 unlimited
rss 8589934592 8589934592
memlock unlimited unlimited
maxproc 709 1064
maxfiles 256 unlimited
这是我的.zshrc
:
ulimit -t 600
ulimit -d 512000
ulimit -v 1024000
和ulimit -a
输出(在ZSH中):
% ulimit -a
-t: cpu time (seconds) 600
-f: file size (blocks) unlimited
-d: data seg size (kbytes) 512000
-s: stack size (kbytes) 8192
-c: core file size (blocks) 0
-v: address space (kb) 1000
-l: locked-in-memory size (kb) unlimited
-u: processes 709
-n: file descriptors 256
然而,这是top
告诉我这个过程的原因:
PID COMMAND %CPU TIME #TH #WQ #POR #MRE RPRVT RSHRD RSIZE VPRVT VSIZE PGRP PPID
886 process 30.8 01:16.40 1/1 0 17 332 2259M+ 184K 2072M- 19G+ 38G 882 885
似乎所记录的内存限制方法都没有实际起作用。我可能错过了一个额外的机制吗?