Archives


- Beowulf
- Beowulf Announce
- Scyld-users
- Beowulf on Debian

[Beowulf] User resource limits

Many of your questions may have already been answered in earlier discussions or in the FAQ. The search results page will indicate current discussions as well as past list serves, articles, and papers.

Search

Prentice Bisbal prentice at ias.edu
Fri Jun 13 05:38:13 PDT 2008


Mark Hahn wrote:
>>> Unfortunately the kernel implementation of mmap() doesn't check
>>> the maximum memory size (RLIMIT_RSS) or maximum data size (RLIMIT_DATA)
>>> limits which were being set, but only the maximum virtual RAM size
>>> (RLIMIT_AS) - this is documented in the setrlimit(2) man page.
>>>
>>> :-(
> 
> I think it's a perfectly reasonable choice.  RSS enforcement means
> accounting and checks on what would otherwise be fast paths.
> besides, I think it also lacks transparency, since a process's RSS is
> affected by random other system events, other users, etc.
> 
> using a memory limit that is triggered on actual allocation events
> (mmap, brk) makes a lot of sense to me, and that means virtual size,
> exactly what RLIMIT_AS does...
> 
>> limits.conf parlance) I would have to limit AS < RAM to keep a user from
>> using all RAM. Since AS includes virtual memory, and VM = RAM + swap,
>> wouldn't I be limiting users a little more than I'd hoped?
> 
> I don't follow that.  why would you want to keep a user from using all
> ram (which assumes the ram is otherwise free/unused/wasted)?
> 

Because these are multi-user systems that are not managed by a queuing
system, and users are running large jobs on them. Once every couple of
days, we have to hard-reboot one of them b/c they become unresponsive
when they run out of memory (OOM messages in the logs verify this). I
think I explained this in more detail in my original e-mail.

> the only real trick with RLIMIT_AS and vm.overcommit=2 is that it's hard
> to predict the vsz of processes.  normally, vsz is modestly larger than
> rss,
> but sysv shm, mmaped libries perturb this, as well as the dubious practice
> (more common in fortran I think) of allocating max-sized arrays even if
> you only ever use a small part.
> 
> my experience so far is that setting RLIMIT_AS to around ram size is
> reasonable.  we have had good luck with swap=ram (or a little more),
> vm.overcommit_memory=2 and vm.overcommit_ratio=100.  the overcommit
> settings alone do a poor job - you also need RLIMIT_AS.

vm.overcommit?  never heard of that before. I'm going to google that now.

--
Prentice




More information about the Beowulf mailing list