[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: problemas con el fork.



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hola
Puede ser un problema de file descriptors, si tienes en cuenta que en la 
situación mas extrema permitirías a un usuario ejecutar 8190 procesos 
deberías permitir que manejara al menos el doble de descriptores ( nunca 
llegarás a 8190 procesos ) pero si llegarás a poder agotar en algunas 
circunstancias 16000 descriptores, esto debes hacerlo desde syctl:

 sysctl -w fs.file-max=16384 ( por ejemplo, puedes llegar a ampliar el valor 
pero debes tener en cuenta que la máquina debe ser capaz de soportar la carga 
generada, disponer de memoria suficiente y .... )

o añadiendo la línea:
fs/file-max=16384
a /etc/sysctl.conf

Para permitir que un usuario haga uso de estas ampliaciones de límites sin 
tener que complicarte con ulimit puede habilitar dentro de PAM el uso del 
módulo de limits ( creo que por defeto debian ya lo hace )
session    required     pam_limits.so

definiéndose los límites que se aplicaran en el archivo 
/etc/security/limits.conf

Espero que esto te resulte de utlilidad

un saludo
Victor


PD: no se como será en apache 2.x pero en apache 1.3.x el valor máximo para 
MaxClients esta "hardcoded" en una de las cabeceras y en debian creo recordar 
que es como de 250


On Tuesday 08 April 2003 13:47, lrdba@renr.es wrote:
> Tengo instalado linux Debian 2.4.13 con Apache 2.0.43 y Resin 2.0.2 y
> IBMJava2-13.
> En ocasiones, cuando conecto con el servidor por ssh  e intento ejecutar
> algún comando obtengo el siguiente error:
> sh: fork: Recurso no disponible temporalmente
> Los scripts que actualizan los contenidos en el servidor fallan. Fallan
> también los directorios de la máquina que tengo montados por NFS en otros
> equipos.
> Si compruebo los límites del sistema obtengo:
>
> servweb: # ulimit -a
> core file size (blocks) 0
> data seg size (kbytes) unlimited
> file size (blocks) unlimited
> max locked memory (kbytes) unlimited
> max memory size (kbytes) unlimited
> open files 1024
> pipe size (512 bytes) 8
> stack size (kbytes) 8192
> cpu time (seconds) unlimited
> max user processes 256
> virtual memory (kbytes) unlimited
>
> El número máximo de procesos por usuario es 256.
> Si programo en el cron del sistema un script que lance este mismo comando
> obtengo
>
> core file size (blocks) 0
> data seg size (kbytes) unlimited
> file size (blocks) unlimited
> max locked memory (kbytes) unlimited
> max memory size (kbytes) unlimited
> open files 1024
> pipe size (512 bytes) 8
> stack size (kbytes) 8192
> cpu time (seconds) unlimited
> max user processes 8190
> virtual memory (kbytes) unlimited
>
> Donde el número de procesos por usuario es 8190.
> El único sitio donde se me ocurre configurar el número de procesos por
> usuario es en el .profile del home del usuario en cuestión.
> El problema es que el usuario que lanza apache y resin es un usuario
> especial que no tiene bash en el sistema.
> Sobre la configuración del apache y del resin les detallo a continuación
> los parámetros de la configuración que considero pueden estar relacionados
> con el problema:
>
> Parámetros de configuración de apache:
> #
> # Limit on total number of servers running, i.e., limit on the number
> # of clients who can simultaneously connect --- if this limit is ever
> # reached, clients will be LOCKED OUT, so it should NOT BE SET TOO LOW.
> # It is intended mainly as a brake to keep a runaway server from taking
> # the system with it as it spirals down...
> #
> MaxClients 1000
>
> #
> # MaxRequestsPerChild: the number of requests each child process is
> # allowed to process before the child dies.  The child will exit so
> # as to avoid problems after prolonged use when Apache (and maybe the
> # libraries it uses) leak memory or other resources.  On most systems, this
> # isn't really needed, but a few (such as Solaris) do have notable leaks
> # in the libraries. For these platforms, set to something like 10000
> # or so; a setting of 0 means unlimited.
> #
> # NOTE: This value does not include keepalive requests after the initial
> #       request per connection. For example, if a child process handles
> #       an initial request and 10 subsequent "keptalive" requests, it
> #       would only count as 1 request towards this limit.
> #
> MaxRequestsPerChild 0
>
> Apache tiene configurados cuatro hosts virtuales y resin tiene cuatro
> contextos independientes cada uno de ellos tiene los mismos parámetros de
> configuración.
>
> Parámetros de configuración de resin.
>     <!-- You'll need to tweak these to maximize performance -->
>     <thread-min>100</thread-min>
>     <thread-max>1100</thread-max>
>   <!--
>      - How many threads to wait for keepalives.  Should be at least the
>      - number of Apache processes to get good performance.
>     -->
>      <thread-keepalive>1000</thread-keepalive>
>
> Agradecería cualquier sugerencia sobre como solucionar este problema.
> Saludos

- -- 
- --
Abril
Uno de los peores meses para andar metiendo al mundo en guerras absurdas
El resto de meses del mismo tipo son: Enero, Febrero, Marzo, Mayo, Junio, 
Julio, Agosto, Septiembre, Octubre, Noviembre y Diciembre. 
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQE+ks+MEzqHF8R72ekRAt07AKCcWHMxkkpNYMZaOqMgh+T/55Py0gCfXigX
2vAyt7dsDnUU4coWsp1A3SA=
=242c
-----END PGP SIGNATURE-----



Reply to: