user prozess limit?

Jan-Benedict Glaw jbglaw at lug-owl.de
Die Nov 13 21:48:44 CET 2001


On Tue, 2001-11-13 11:05:54 +0100, Rene Lange <Rene.Lange at t-systems.de>
wrote in message <20011113110554.A8534 at wve06124.eft.telekom.de>:
> moin..
> 
> Wie kann denn sowas kommen:
> 
> $ ps
> bash: fork: Resource temporarily unavailable
> 
> als root:
> 
> $ ps axu|grep ^user|wc -l
>     257

Aha. Du hast also 257 Prozesse unter dem user "user" am Laufen.

> Darauf läuft ein Webserver in 4 Instanzen (mit diesem username). Dieser 
> Webserver (Netspappe iPlanet 4.2 SP9) kann laut error-log auch nicht mehr
> forken, wodurch er wegbricht .. 

Naja, mal lesen in ./linux/kernel/fork.c. Ich nehme mal eine etwas
aktuellere Fassung, aber das sah schon immer so aus:

int do_fork(unsigned long clone_flags, unsigned long stack_start,
            struct pt_regs *regs, unsigned long stack_size)
{
        int retval; 
[...]
        retval = -EAGAIN;
        if (atomic_read(&p->user->processes) >= p->rlim[RLIMIT_NPROC].rlim_cur)
                goto bad_fork_free;
[...]
fork_out:
        return retval;
[...]
bad_fork_free:
        free_task_struct(p);
        goto fork_out;
}


...oder in Kurz: Dieser User darf einfach nicht mehr als 256 Prozesse
erzeugen! "man getrlimit":

[...]
       RLIMIT_NPROC   /* max number of processes */
[...]
SEE ALSO
       quotactl(2), ulimit(3)
[...]


Also gucken wir da nach ("man 3 ulimit"):

[...]
SEE ALSO
       bash(1), getrlimit(2), setrlimit(2), sysconf(3)
[...]


Hmmm. bash? Mal schau'n... "man 1 bash" und dann mal nach ulimit suchen:

[...]
              -u     The maximum number of processes available to a single user
[...]


Aha. Mit "ulimit" kann man diese Limits von der bash aus setzen. ...und
das am Besten, bevor Du den Webserver startest. Andererseits - was ist
das für ein doofer Webserver, der 100e von fork()s absetzt?

MfG, JBG

-- 
Jan-Benedict Glaw   .   jbglaw at lug-owl.de   .   +49-172-7608481
	http://lug-owl.de/~jbglaw/software/snapshot2cvs/

-- 
tlug Mailingliste
Archiv: http://www.tlug.de/archiv/
http://schwarz.thueday.de/mailman/listinfo/tlug_allgemein