Aumentando o nproc no CentOS / RHEL

2

Eu tenho um problema onde o mysqld fica sem threads e gera erros quando está sob carga pesada. Eu rastreei isso de volta para um problema em que o pid parece estar limitado a um limite de 1024 processos (removi outros limites para legibilidade):

[root@db1 limits.d]# cat /proc/'pidof mysqld'/limits
Limit                     Soft Limit           Hard Limit           Units
Max processes             1024                 191967               processes

Eu tenho um arquivo em /etc/security/limits.d/ chamado 99-mysql.conf que contém:

mysql soft nofile 20000
mysql hard nofile 20000
mysql soft nproc 20000
mysql hard nproc 20000

Tanto quanto eu posso ver o problema vem do MySQL sendo iniciado por um usuário. Eu não testei isso, mas suponho que, se o MySQL for iniciado pelo sistema no momento da inicialização, ele deverá ter os limites corretos.

Existe uma maneira de aumentar o limite flexível para nproc para este pid e para futuros processos mysqld?

    
por Noodles 02.12.2013 / 01:28

2 respostas

2

Parece que você pode definir os limites de um pid em execução usando:

echo -n "Max processes=20000:191967" > /proc/'pidof mysqld'/limits

Isso resolve o problema imediato, mas se eu reiniciar o MySQL eu precisaria redefinir os limites (a menos que eu adicione isso ao script de inicialização), o que parece ser uma dor.

    
por 02.12.2013 / 03:10
2

Procure e remova todas as entradas em:

/etc/security/limits.d/90-nproc.conf

Além disso, adicione seu arquivo limits.d:

root soft nofile 20000
root hard nofile 20000
root soft nproc 20000
root hard nproc 20000

Isso abrangerá as reinicializações do prompt raiz.

    
por 02.12.2013 / 03:53