Hello,
I run CentOS 5.6 on a Dell PowerEdge R815 with 256 GB of RAM. We use Sun Grid Engine to schedule jobs on this node.
I want to limit the memory usage about 150 GB per process. So i use the /etc/security/limits.conf configuration file. I test this configuration with some tools with a lower GB limit (about 2 or 4 GB), and it works !
But, at least one process (oases - a bioinformatics tool) bypass this limitation and use always 240 GB of memory (the last run) !!
/etc/security/limits.conf ... # * hard rss 150000000 * soft rss 150000000 # * hard as 150000000 * soft as 150000000 # ...
# uname -r 2.6.18-238.9.1.el5.centos.plus
Any idea ?
Thanks
Christophe Caron wrote:
Hello,
I run CentOS 5.6 on a Dell PowerEdge R815 with 256 GB of RAM. We use Sun Grid Engine to schedule jobs on this node.
I want to limit the memory usage about 150 GB per process.
<snip>
But, at least one process (oases - a bioinformatics tool) bypass this limitation and use always 240 GB of memory (the last run) !!
<snip> Is there some way to limit the number of threads the job can have? We had a problem like that - a user on a 48-core system that proceded, as the final step of the job, to want half again as much memory as the system had (256G!!!). After discussions, he limited what he submitted, so that's why I wondered if you could control that administratively.
mark
I don't think this application runs as a parallel application in thread mode. There is only one process (in thread mode, ps/top commande line display thread processes) which bypass the limits.conf configuration.
Normally the process shoud be killed if the memory limit will be reach ?
Thanks.
Le 20:59, m.roth@5-cent.us a écrit :
Christophe Caron wrote:
Hello,
I run CentOS 5.6 on a Dell PowerEdge R815 with 256 GB of RAM. We use Sun Grid Engine to schedule jobs on this node.
I want to limit the memory usage about 150 GB per process.
<snip> > But, at least one process (oases - a bioinformatics tool) bypass this > limitation and use always 240 GB of memory (the last run) !! <snip> Is there some way to limit the number of threads the job can have? We had a problem like that - a user on a 48-core system that proceded, as the final step of the job, to want half again as much memory as the system had (256G!!!). After discussions, he limited what he submitted, so that's why I wondered if you could control that administratively.
mark
--On Friday, June 03, 2011 07:10:44 PM +0200 Christophe Caron christophe.caron@sb-roscoff.fr wrote:
I want to limit the memory usage about 150 GB per process. So i use the /etc/security/limits.conf configuration file. I test this configuration with some tools with a lower GB limit (about 2 or 4 GB), and it works !
But, at least one process (oases - a bioinformatics tool) bypass this limitation and use always 240 GB of memory (the last run) !!
A few of things come to mind:
1. Is your bioinformatics tool running as a privileged process (perhaps because it is being started as a daemon and is not dropping privs?) I don't think the hard limit applies in this case. If this is happening, you may want to take a big stick to your application programmers :)
2. /etc/security/limits.conf is used by pam_limits. Have you verified that that module is configured and required by pam?
3. How is the bioinformatics tool being started, and did you start your other test tools (where you checked with a lower GB limit) the same way. I don't know one way or the other whether pam restrictions apply to programs started as daemons.
4. Are you able to have the bioinformatics tool log its hard and soft limits, and real & effective uid/gids upon startup? (If you can't, then maybe write a C wrapper for it that will do this.) That may be the quickest way to tell you what your OS config is actually doing.
Devin
--On Monday, June 06, 2011 10:02:27 AM -0600 Devin Reade gdr@gno.org wrote:
- /etc/security/limits.conf is used by pam_limits. Have you verified that that module is configured and required by pam?
Although I guess the answer to that one is obviously "yes" given your comments of it working for another tool for a lower limit.
Devin