Adicione ulimit -n 262144 ao script de inicialização do condor.
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>
Tags process limit open-files