Eu tenho um servidor de armazenamento executando o Nexenta (kernel do OpenSolaris, espaço de usuário do Ubuntu) com o MySQL sobre um storage array do ZFS, usando innodb_file_per_table e ulimit -n definido como 8K. mysqltuner.pl confirma o limite do arquivo e afirma que existem 169 arquivos.
O seguinte comando:
pfiles 'fuser -c / 2>/dev/null
indica um processo do mysqld com 485 descritores de arquivo / dispositivo (e são quase todos para arquivos), então não sei quão confiável é o script de ajuste, mas ele ainda é bem menor que 8K e essa lista também não outro processo que está perto do limite. O número total global de descritores em uso é de cerca de 1K.
Então, o que pode fazer com que o mysqld esteja constantemente transmitindo os seguintes erros?
[date] [host] mysqld[pid]: warning: cannot open /etc/hosts.allow: Too many open files
[date] [host] mysqld[pid]: warning: cannot open /etc/hosts.deny: Too many open files
Tudo parece estar funcionando bem, mas o problema está constantemente inundando o Admin Console e começa imediatamente em uma inicialização (não apenas reproduzível, mas sempre do mysqld e sempre dos arquivos hosts, cujas permissões são o padrão -rw-r--r-- 1 root root
). Eu poderia, é claro, suprimi-lo do console de administração, mas eu prefiro ir até o final dele e ainda permitir que avisos / erros do mysqld cheguem ao Admin Console.
EDIT: não só é o descritor de arquivo real bem dentro de limites sane, o problema também persiste (com aparência imediata), mesmo com o limite de arquivo aumentado para 65535 e sempre apenas em hosts.allow / deny.