Eu atualizei recentemente de Mavericks para Yosemite ...
Tenho certeza de que meu problema está no número de arquivos que posso abrir - mas não sei como resolvê-lo . Também tenho certeza de que li todos os artigos / dicas sobre como criar o /etc/sysctl.conf
arquivo e o /etc/launchd.conf
arquivo
Por uma questão de clareza, é assim que os dois se parecem atualmente (não tenho certeza se esses são os comandos certos para eles) - tentei quase tudo e todas as combinações, como valores mais altos, valores mais baixos , removendo comandos, adicionando comandos)
/etc/launchd.conf
limit maxfiles 16384 32768
limit maxproc 1000 2000
/etc/sysctl.conf
# Turn up maxproc
kern.maxproc=2048
# Turn up the maxproc per user
kern.maxprocperuid=512
Eu também tentei aumentar meus valores ulimit - global e localmente para a minha sessão atual ... sem bueno
ulimit -a
-t: cpu time (seconds) unlimited
-f: file size (blocks) unlimited
-d: data seg size (kbytes) unlimited
-s: stack size (kbytes) 8192
-c: core file size (blocks) 0
-v: address space (kbytes) unlimited
-l: locked-in-memory size (kbytes) unlimited
-u: processes 709
-n: file descriptors 4096
Ok - foi aqui que minha dor de cabeça começou inicialmente ... Meu banco de dados (percona-server 5.6.21-69.0 instalado via homebrew) começou a engasgar e morrer, e no mysql-error.log foi preenchido com o erro too many files open
.
2014-10-21 15:19:50 5190 [ERROR] /usr/local/Cellar/percona-server/5.6.21-69.0/bin/mysqld: Can't open file: './ie/tokenorder_products.frm' (errno: 24 - Too many open files)
2014-10-21 15:19:50 5190 [ERROR] /usr/local/Cellar/percona-server/5.6.21-69.0/bin/mysqld: Can't open file: './ie/tokenorders.frm' (errno: 24 - Too many open files)
2014-10-21 15:19:50 5190 [ERROR] /usr/local/Cellar/percona-server/5.6.21-69.0/bin/mysqld: Can't open file: './ie/tsdevices.frm' (errno: 24 - Too many open files)
2014-10-21 15:19:50 5190 [ERROR] /usr/local/Cellar/percona-server/5.6.21-69.0/bin/mysqld: Can't open file: './ie/tsracks.frm' (errno: 24 - Too many open files)
2014-10-21 15:19:50 5190 [ERROR] /usr/local/Cellar/percona-server/5.6.21-69.0/bin/mysqld: Can't open file: './ie/v_classunity_classlist.frm' (errno: 24 - Too many open files)
2014-10-21 15:20:48 5190 [ERROR] Error in accept: Too many open files
Foi aqui que comecei a tentar resolver esse problema "atualizando" meus ulimit, maxfiles, maxproc, etc ...
Eventualmente - frustrado, segui em frente e voltaria a esse assunto mais tarde. Então eu estava tentandosudo gem install nokogiri
e mais e mais ele iria falhar e cuspir este mesmo erro (um monte de repetições sobre o builder.rb não para construir a extensão nativa jóia - seguido por um bando de repetidas stacktraces Logs Gist
Erros de instalação nokogiri
Eu tentei / pesquisei no Google várias abordagens diferentes para resolver esse problema (ou seja: sinalizadores adicionais, etc.). O que é incrível - e quando comecei a pensar que esse problema estava vinculado ao número de arquivos / processos abertos, verifiqueitop
enquanto a gema estava sendo instalada ... Fiquei bastante surpreso ao ver o que encontrei
topo durante gem install nokogiri
Parece que meu processo continua bifurcando, o que fazia sentido para esta linha ONE na minha foto anterior (consulte "imagem de erros de instalação do nokogiri")
sh: fork: Resource temporarily unavailable
Então, estou sem ideias, mas não tenho mais certeza de como depurar o número de arquivos?
ATUALIZAR
Bem, eu consegui instalar o nokogiri. Infelizmente, não sei exatamente o que foi corrigido porque tentei muitas coisas. Mas acho que tinha que lidar com a reinstalação do ruby. No entanto, ainda estou recebendo o mesmo problema com meu banco de dados reclamando de muitos arquivos abertos quando uso qualquer tipo de banco de dados que não seja trivialmente pequeno.
fonte
Respostas:
Modificando o
/etc/launchd.conf
muitas consultas do Google e sugestões de SO não pareceu funcionar para mim no Yosemite (10.10). O que acabou funcionando, após inúmeras combinações de alterações / reinicializações / testes, foi modificar (ou criar, se não existir) o/etc/sysctl.conf
arquivo.Isto é o que eu tive que colocar para fazê-lo funcionar
Não tenho certeza se
kern.maxfiles
precisa estar lá, mas quando eu o tinha lá, ainda tinha o mesmo problema, quando adicioneikern.maxfilesperproc
tudo começou a funcionar.fonte
sysctl -a | grep kern.maxfiles
.Para ajustar os limites de arquivos abertos em todo o sistema no Mac OS X Yosemite, você deve criar dois arquivos de configuração. O primeiro é um arquivo de lista de propriedades (também conhecido como plist),
/Library/LaunchDaemons/limit.maxfiles.plist
que contém a seguinte configuração XML:Isso definirá o limite de arquivos abertos para 65536. O segundo arquivo de configuração do plist deve ser armazenado
/Library/LaunchDaemons/limit.maxproc.plist
com o seguinte conteúdo:Ambos os arquivos plist devem ser de propriedade
root:wheel
e ter permissões-rw-r--r--
. Essas permissões devem estar em vigor por padrão, mas você pode garantir que elas estejam em vigor executandosudo chmod 644 <filename>
. Embora as etapas explicadas acima façam com que os limites de arquivos abertos em todo o sistema sejam definidos corretamente na reinicialização, você pode aplicá-los manualmente executandolaunchctl limit
.Além de definir esses limites no nível do sistema, recomendamos que defina o no nível da sessão, bem anexando as seguintes linhas ao seu
bashrc
,bashprofile
ou arquivo semelhante:Como os arquivos plist, seu arquivo bashrc ou similar deve ter
-rw-r--r--
permissões. Nesse ponto, você pode reiniciar o computador e inserir ulimit -n no seu terminal. Se o seu sistema estiver configurado corretamente, você verá que maxfiles foi definido como 65536.Originado de: http://docs.basho.com/riak/latest/ops/tuning/open-files-limit/
fonte
Os padrões em Yosemite parecem ser 12K e 10K:
Apenas ajuste
kern.maxfiles
na/etc/sysctl.conf
parece ter resolvido meus problemas./etc/sysctl.conf
Arquivo:fonte
launchctl limit maxfiles
me deu o seguinte: #maxfiles 256 unlimited