title: Why ulimit can't limit resident memory successfully and how?
body: <p>I start a new bash shell, and execute:</p>
  
  <pre><code>ulimit -m 102400
  ulimit -a
  "
  core file size          (blocks, -c) 0
  data seg size           (kbytes, -d) unlimited
  scheduling priority             (-e) 20
  file size               (blocks, -f) unlimited
  pending signals                 (-i) 16382
  max locked memory       (kbytes, -l) 64
  max memory size         (kbytes, -m) 102400
  open files                      (-n) 1024
  pipe size            (512 bytes, -p) 8
  POSIX message queues     (bytes, -q) 819200
  real-time priority              (-r) 0
  stack size              (kbytes, -s) 8192
  cpu time               (seconds, -t) unlimited
  max user processes              (-u) unlimited
  virtual memory          (kbytes, -v) unlimited
  file locks                      (-x) unlimited
  "
  </code></pre>
  
  <p>and then ,I execute compiling a huge project. the Linking of it will use large memory, more then 2G. The result, process ld used more then 2G resident memory.</p>
  
  <p>is there any wrong ? how to use ulimit or can I use other programs to limit resident memory?</p>
  
  <p>the target of limit resident memory, is because computer will freeze when one process almost used all memory.</p>