Hi Zhang, on Mon, Nov 03, 2008 at 06:24:00PM +0800, you wrote: > I hope I can configure the system so that any process uses more than 50% > of memory are automatically killed. first I was recommend to use ulimit > by googling around. However this seems doesn't work even if I set both > -d and -m (here is my .xinitrc) > > ~$ cat .xinitrc > #export XMODIFIERS=@im=FCITX > #fcitx & > ulimit -d 300000 > ulimit -m 300 > exec /usr/bin/fluxbox > > > Result: OpenOffice stands still even when it takes 80% memory (read from > top). > So: is ulimit the solution? If so, what option should I set? I interpret the above as "use a maximum of 300,000 KiB of memory, of which 300 may be resident (i.e. in physical memory) and 299,700 swapped out." That doesn't sound good, although I'm not sure I'm reading it correctly. What I do is use /etc/sercurity/limits.conf (from pam_limits) with a couple of entries like those: | @users hard nproc 1000 | mb hard nproc 5000 | @users hard as 2097152 | mb hard as 6291456 | mb hard nice -5 | mb hard rtprio 5 Meaning, everyone but me (mb) may use up to 1000 processes per login, with a max. address space of 2 GiB each; for myself the limit is 6 GiB and 5k processes. Myself I cannot accidentially set a negative nice-value because I left the soft limit at its default (0 for non-root users) but using ulimit I can set it to the hard limit of -5 and nice-up processes even as a normal user. cheers, Matthias -- I prefer encrypted and signed messages. KeyID: FAC37665 Fingerprint: 8C16 3F0A A6FC DF0D 19B0 8DEF 48D9 1700 FAC3 7665