Tôi có vấn đề với các quá trình rò rỉ bộ nhớ. Chúng làm cho ổ cứng của tôi chứa đầy các tệp hoán đổi /private/var/vm
.
Tôi muốn các quy trình bị rò rỉ sẽ bị hệ điều hành giết chết ngay trước mắt . Tôi không quan tâm đến hộp thoại xuất hiện sau 20 phút, gợi ý các ứng dụng sẽ bị hủy và thậm chí không hiển thị hộp thoại bị rò rỉ.
Tôi đã thử thiết lập rss
và data
giới hạn trong /etc/launchd.conf
nhưng dường như nó không có hiệu lực.
Đây là của tôi /etc/launchd.conf
:
limit data 8589934592 8589934592
limit rss 8589934592 8589934592
Đây là launchctl limit
đầu ra:
% 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
Đây là của tôi .zshrc
:
ulimit -t 600
ulimit -d 512000
ulimit -v 1024000
Và ulimit -a
đầu ra (trong 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
Tuy nhiên, đây là những gì top
cho tôi biết về quá trình:
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
Dường như không có phương pháp giới hạn bộ nhớ tài liệu nào thực sự hoạt động. Có một cơ chế bổ sung mà tôi có thể đã bỏ lỡ?