set open_files_limit

1

Quando eu defino open_files_limit = 16k em ambos: /etc/security/limits.conf e /etc/mysql/my.cnf

ulimit -n
16344

mas no mysql:

show variables like 'open_files_limit';
open_files_limit: 4096 

Então, como o mysql calcula open_files_limit. Há algum outro lugar que eu deveria estar procurando?

    
por Mario Michelli 27.09.2010 / 09:17

3 respostas

2

Opção 1: você pode tentar executar lsof no pid do MySQL, canalizado para wc -l .

Opção 2: ll /proc/<mysql-pid>/fs/

Isso lhe dará a lista de arquivos abertos (incluindo sockets, etc .; tudo é um arquivo no Unix / Linux).

O limite de arquivos abertos pode ser verificado no mysql-client usando show global varaibles like '%files%' e, em seguida, set global variable open_files_limit=<some-larger-number>

Tenha cuidado, pois o número de ulimit -n é um total para o shell de todos os processos, e você não quer colocá-lo em um nível muito alto.

Se você vir esse número aumentando lentamente, provavelmente desejará verificar seu código: há referências pendentes.

    
por 28.10.2010 / 08:54
1

Você especificou como open_files_limit ou open-files-limit em my.cnf? No arquivo de configuração, deve ser open-files-limit .

    
por 27.09.2010 / 13:12
0

verificar limites para o usuário mysql:

limits -e -U mysql

ulimit -a - mostra limites para o seu usuário

Se os limites estiverem corretos & & você usa o Percona MYSQL e precisa ativar os limites no script de início.

Por exemplo, no FreeBSD: /usr/local/etc/rc.d/mysql-server encontrar string: ${mysql_limits="NO"} e substituir NO - > YES

PS. 2Janne Pikkarainen na minha configuração my.cnf: open_files_limit = 8192

    
por 16.02.2012 / 20:28