Aumentando temporariamente as configurações de 'ulimit -u' no OSX Yosemite

2

Estou tentando temporariamente (sem reiniciar a máquina, apenas para teste que inicia uma JVM) aumentar o número de processos para 2048 no OSX Yosemite, mas não consigo fazê-lo.

Primeiro, tentei chamar ulimit -S -u 2048 , mas isso retorna:

ulimit: value exceeds hard limit

O limite máximo é 1064:

$ ulimit -Hu
1064

Eu usei sysctl para alterar o limite de kern.maxproc e kern.maxprocperuid e isso funcionou bem:

$ sudo sysctl -w kern.maxprocperuid=2048
$ sudo sysctl -w kern.maxproc=2048
$ sysctl kern.maxprocperuid kern.maxproc
kern.maxprocperuid: 2048
kern.maxproc: 2048

Eu também tentei alterar os limites de launchctl maxproc e isso pareceu funcionar bem:

$ sudo launchctl limit maxproc 2048 2048
$ launchctl limit maxproc
maxproc     2048           2048

No entanto, apesar de mudar tudo isso, ainda não consigo alterar o limite superior de ulimit -u .

A razão pela qual estou fazendo tudo isso é porque estou tendo alguns erros de OOME: Unable to create native thread em uma JVM iniciada a partir de um teste MVN, mesmo que eu tenha passado para ela -Xss265k -Xmx2g .

Alguma idéia?

    
por Galder Zamarreño 05.03.2015 / 08:36

1 resposta

1

Mesmo que você queira alterar o limite temporariamente, a alteração deve ser feita de forma persistente, criando o arquivo /Library/LaunchDaemons/limit.maxproc.plist , de propriedade root: wheel e permissões 644 com estes conteúdos:

<?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.maxproc</string>
      <key>ProgramArguments</key>
        <array>
          <string>launchctl</string>
          <string>limit</string>
          <string>maxproc</string>
          <string>2048</string>
          <string>2048</string>
        </array>
      <key>RunAtLoad</key>
        <true />
      <key>ServiceIPC</key>
        <false />
    </dict>
  </plist>

Obrigado a Jason Greene pela ajuda com isso!

    
por 05.03.2015 / 13:58

Tags