[GE users] Memory hard limit seems to be ignored on sge 5.3p5 version

Andy Schwierskott andy.schwierskott at sun.com
Tue Sep 14 11:20:56 BST 2004


Hi,

>> You might look into "RESOURCE LIMITS" section of queue_conf(5) ;)
>
> this is the documentation, but not the behavior I observed. On LINUX at least
> h_vmem will set the ulimits, all at once (only s_vmem/h_vmem in queue
> definition set):

Not sure if I understand this sentence? Do you mean that though you set only
s_vmem/h_vmem you are seeing other limits limited as well?

>
> $ o tt.sh.o6207
> core file size        (blocks, -c) unlimited
> data seg size         (kbytes, -d) 512000
> file size             (blocks, -f) unlimited
> max locked memory     (kbytes, -l) unlimited
> max memory size       (kbytes, -m) unlimited
> open files                    (-n) 1024
> pipe size          (512 bytes, -p) 8
> stack size            (kbytes, -s) 512000
> cpu time             (seconds, -t) unlimited
> max user processes            (-u) 7168
> virtual memory        (kbytes, -v) 512000
>
> core file size        (blocks, -c) unlimited
> data seg size         (kbytes, -d) 512000
> file size             (blocks, -f) unlimited
> max locked memory     (kbytes, -l) unlimited
> max memory size       (kbytes, -m) unlimited
> open files                    (-n) 1024
> pipe size          (512 bytes, -p) 8
> stack size            (kbytes, -s) 512000
> cpu time             (seconds, -t) unlimited
> max user processes            (-u) 7168
> virtual memory        (kbytes, -v) 512000
>
> In the source of setrlimits.c of the shepered:
>
> #  if defined(RLIMIT_VMEM)
>   rlp.rlim_cur = s_vmem;
>   rlp.rlim_max = h_vmem;
>   pushlimit(RLIMIT_VMEM, &rlp, trace_rlimit);
> #  elif defined(RLIMIT_AS)
>   rlp.rlim_cur = s_vmem;
>   rlp.rlim_max = h_vmem;
>   pushlimit(RLIMIT_AS, &rlp, trace_rlimit);
> #  endif
>
> Will SGE create any signals, when these limits are set anyway? I only had I
> short look at the source, but I just saw for LINUX 64 bit limits are set if
> TARGET32_BIT is defined. Is this OK? Please guide me, if I'm completely on the
> wrong way.

Linux from kernel 2.4 supports 64 bit limits.

SGE does not create signals - the OS will (or will not) enforce the limits.
E.g. typically SIGXCPU (cpu time limit exceeded) can be trapped by
processes. Therefore SGE monitors the CPU usage of the whole job and kills
the job once it exceeds its CPU time limit.

Other limits (like mem sizes and number of open files) cannot be exceeded by
the application - this not necessarily creates a signal. See setrlimit() man
page on the respective OS what happens.

Andy


Andy

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe at gridengine.sunsource.net
For additional commands, e-mail: users-help at gridengine.sunsource.net




More information about the gridengine-users mailing list