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 [EMAIL PROTECTED]
> #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

Attachment: pgpRLx3YFB6kP.pgp
Description: PGP signature

Reply via email to