Como definir ulimits para mongod?

8

Como eu defino ulimits para o mongod process / user no CentOS?

Eu leio a documentação oficial , mas ela não fornece instruções específicas do sistema operacional.

  • Eu preciso definir ulimit -u 64000 e precisar disso para persistir após a reinicialização.

  • Estou executando o CentOS 5.5, embora seja atualizado para 6.5 em breve.

  • Eu prefiro não modificar nenhum script instalado pelo gerenciador de pacotes

por Tim 28.04.2014 / 18:42

5 respostas

9

Modifique /etc/security/limits.conf com o que você precisa. Exemplo:

user soft nproc 64000

Esta linha irá definir o número de processadores ( -u ) para 64000 para "usuário". Os limites de soft / hard podem ser os mesmos (soft permite spikes enquanto impede a desova).

    
por 28.04.2014 / 18:46
7

A versão mais nova do script de inicialização do mongod do CentOS (/etc/init.d/mongod) tem as configurações padrão integradas na opção start:

start()
{
  # Recommended ulimit values for mongod or mongos
  # See http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings
  #
  ulimit -f unlimited
  ulimit -t unlimited
  ulimit -v unlimited
  ulimit -n 64000
  ulimit -m unlimited
  ulimit -u 32000

  echo -n $"Starting mongod: "
  daemon --user "$MONGO_USER" "$NUMACTL $mongod $OPTIONS >/dev/null 2>&1"
  RETVAL=$?
  echo
  [ $RETVAL -eq 0 ] && touch /var/lock/subsys/mongod
}

Se você quiser alterar os valores e não modificar o script, copie o script para /etc/init.d/mongod-custom, edite o script de init personalizado, defina seus valores e altere o chkconfig para usar o mongod-custom de mongod.

    
por 26.08.2014 / 15:26
4

Para adicionar à resposta do thaspius, os limites parecem ser definidos como ele descreve no script de inicialização, mas eu ainda recebia o aviso

[initandlisten] ** WARNING: soft rlimits too low. rlimits set to 1024 processes, 64000 files. Number of processes should be at least 32000 : 0.5 times number of files.

Isso parece sugerir que o limite de arquivos definido no script de inicialização entrou em vigor, mas não o limite de processos. Também seguindo a resposta de Nathan C e adicionando

mongod soft nproc 64000

para /etc/security/limits.d/90-nproc.conf e reiniciar o sistema resolveu o problema.

Se alguém puder esclarecer por que isso foi necessário, apesar de ter os valores no script mongodb init, eu sou todo ouvidos!

    
por 22.02.2016 / 19:21
1

Faça essa alteração no arquivo /etc/security/limits.conf . Defina os limites hard e soft e você deve ser bom.

    
por 28.04.2014 / 18:43
1

Para que a mudança seja persistente, você deve editar o script de init, por exemplo, no Red Hat 7, o script de inicialização tem a seguinte linha:

LimitNOFILE=64000

Você precisa adicionar o próximo:

LimitNPROC=32000

E, em seguida, reinicie o serviço.

Espero que isso ajude.

    
por 31.10.2018 / 12:40