Os limites do descritor de arquivo são perdidos após a reinicialização do sistema

5

Estou tentando aumentar os limites de descritor de arquivo padrão para processos no meu sistema. Especificamente, estou tentando fazer com que os limites se apliquem ao daemon Condor e seus subprocessos quando a máquina inicializa. Mas os limites nunca são aplicados na inicialização da máquina.

Eu tenho os limites definidos em /etc/sysctl.conf :

[root@mybox ~]# cat /etc/sysctl.conf
# TUNED PARAMETERS FOR CONDOR PERFORMANCE
# See http://www.cs.wisc.edu/condor/condorg/linux_scalability.html for more information

# Allow for more PIDs (to reduce rollover problems); may break some programs
kernel.pid_max = 4194303

# increase system file descriptor limit
fs.file-max = 262144

# increase system IP port limits
net.ipv4.ip_local_port_range = 1024 65535

E em /etc/security/limits.conf :

[root@mybox ~]# cat /etc/security/limits.conf
# TUNED PARAMETERS FOR CONDOR PERFORMANCE
# See http://www.cs.wisc.edu/condor/condorg/linux_scalability.html for more information
# Increase the limit for a user continuously by editing etc/security/limits.conf.
*        soft  nofile        32768
*        hard  nofile      262144 #65536

O problema no qual corro é, na reinicialização do sistema, os limites não parecem se aplicar à Condor e seus processos. Após uma reinicialização, se eu olhar o limite do descritor de arquivo para um processo Condor, vejo:

[root@mybox proc]# cat /proc/'/sbin/pidof condor_schedd'/limits | grep 'Max open files'
Max open files            1024                1024

Mas, se eu reiniciar o processo condor_schedd após a reinicialização, os limites serão aumentados como esperado:

[root@mybox proc]# cat /proc/'/sbin/pidof condor_schedd'/limits | grep 'Max open files'
Max open files            32768                262144

O boot.log indica que esses limites estão sendo definidos antes que meu daemon Condor e seus processos estejam sendo iniciados:

May 18 07:51:52 mybox sysctl: net.ipv4.ip_forward = 0
May 18 07:51:52 mybox sysctl: net.ipv4.conf.default.rp_filter = 1
May 18 07:51:52 mybox sysctl: net.ipv4.conf.default.accept_source_route = 0
May 18 07:51:52 mybox sysctl: kernel.sysrq = 0
May 18 07:51:52 mybox sysctl: kernel.core_uses_pid = 1
May 18 07:51:52 mybox sysctl: kernel.pid_max = 4194303
May 18 07:51:52 mybox sysctl: fs.file-max = 262144
May 18 07:51:52 mybox sysctl: net.ipv4.ip_local_port_range = 1024 65535
May 18 07:51:52 mybox network: Setting network parameters: succeeded
May 18 07:51:52 mybox network: Bringing up loopback interface: succeeded
May 18 07:51:57 mybox ifup: Enslaving eth0 to bond0
May 18 07:51:57 mybox ifup: Enslaving eth1 to bond0
May 18 07:51:57 mybox network: Bringing up interface bond0: succeeded
May 18 07:52:17 mybox hpsmhd: smhstart startup succeeded
May 18 07:52:17 mybox condor: Starting up Condor
May 18 07:52:17 mybox rc: Starting condor:  succeeded
May 18 07:52:17 mybox crond: crond startup succeeded

Obviamente, eu gostaria de evitar ter que inicializar uma máquina e, em seguida, reiniciar o processo que eu preciso desses limites maiores para aplicar - o que eu fiz de errado que está impedindo que esses limites se apliquem aos processos quando a máquina inicializa? / p>     

por Ian C. 13.07.2011 / 18:28

1 resposta

2

Adicione ulimit -n 262144 ao script de inicialização do condor.

    
por 23.07.2011 / 09:23