Limite de sessão do shell
Os limites definidos via ulimit
afetam apenas os processos criados pela sessão atual do shell.
- O "limite flexível" é o limite real usado. Pode ser definido, desde que não seja maior que o "limite máximo".
- O "limite máximo" também pode ser definido, mas apenas para um valor menor que o atual e apenas para um valor não menor que o "limite flexível".
- O "limite rígido", assim como os limites de todo o sistema, pode ser aumentado pelo
root
(administrador) executando comandos de configuração do sistema ou modificando os arquivos de configuração do sistema.
Depois que você encerra a sessão do shell (por Ctrl+ D, exit
ou fecha a Terminal.app
janela etc.), as configurações desaparecem. Se você deseja a mesma configuração na próxima sessão do shell, adicione a configuração ao script de inicialização do shell.
NOTA: Se você estiver usando bash
, deve ser ~/.bash_proile
ou ~/.bash_login
. Se você estiver usando outras conchas, provavelmente deve estar ~/.profile
.
Limite do sistema (requer reinicialização para entrar em vigor)
Para 10.9 (Mavericks), 10.10 (Yosemite), 10.11 (El Capitan) e 10.12 (Sierra):
Você precisa criar um arquivo em /Library/LaunchDaemons/limit.maxfiles.plist
(owner:, root:wheel
mode 0644
:):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>limit.maxfiles</string>
<key>ProgramArguments</key>
<array>
<string>launchctl</string>
<string>limit</string>
<string>maxfiles</string>
<string>262144</string>
<string>524288</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>ServiceIPC</key>
<false/>
</dict>
</plist>
Você deve alterar os números de acordo com suas necessidades. Eles são o "limite flexível" ( 262144
) e o "limite rígido" ( 524288
), respectivamente. Para mais informações, consulte a página do manual executando man launchd.plist
.
Para 10.8 (leão da montanha):
Você pode adicionar as seguintes linhas em /etc/sysctl.conf
(proprietário:, root:wheel
modo 0644
:):
kern.maxfiles=524288
kern.maxfilesperproc=262144
Você deve alterar os números de acordo com suas necessidades. Eles são o "limite de todo o sistema" ( kern.maxfiles
) e o "limite por processo" ( kern.maxfilesperproc
), respectivamente. Para obter mais configurações, consulte a página do manual executando man sysctl
ou leia o código fonte em /usr/include/sys/sysctl.h
.
Para Mac OS X mais antigo (acho que funciona com 10.7 (Lion) ou antes):
Você pode adicionar a seguinte linha a /etc/launchd.conf
(proprietário:, root:wheel
modo 0644
:):
limit maxfiles 262144 524288
Você deve alterar os números de acordo com suas necessidades. Eles são o "limite flexível" ( 262144
) e o "limite rígido" ( 524288
), respectivamente.
Se o sistema não permitir que você defina os limites acima de um determinado valor ...
O sistema não permite que você defina um valor maior que um "máximo máximo" (proposto pela Apple). Para aumentar esse "máximo máximo", você deve adquirir o "OS X Server" na "App Store" e executar o seguinte comando uma vez:
sudo serverinfo --setperfmode true
Isso ativa o "modo de desempenho do servidor" em sua máquina. Você pode então definir o máximo de acordo com a configuração da sua máquina (consulte isto) . Eu tentei isso antes (em Mountain e Mavericks) e funciona! Por favor, veja o meu post ( aqui ) para mais informações.
Referências