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 rssvà datagiới hạn trong /etc/launchd.confnhư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 1024000Và 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           256Tuy nhiên, đây là những gì topcho 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  885Dườ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ỡ?