elasticsearch @ debian6 iniciado por /etc/init.d max_file_descriptors

2

Eu instalei elasticsearch @ debian6 por este tutorial . Eu configurei as diretivas de arquivos abertos máximos do sistema para que eu tenha estes valores:

# su
# cat /proc/sys/fs/file-max
70000

# ulimit -Hn
64000

# ulimit -Sn
32000

Quando eu verifico elasticsearch max_file_descriptors por:

curl -XGET 'http://localhost:9200/_nodes?process=true&pretty=true'

recebo 1024 .

Quando eu reinicio por usuário root, ele tem "max_file_descriptors": 64000 agora.

O que há de errado com o init.d autostart? Quando eu check htop, elástico autostarted pelo init.d com esses 1024 descritores é runnig sob usuário root também.

Eu defini arquivos max abertos por 2 confs:

cat /etc/sysctl.conf
...
fs.file-max = 70000

cat /etc/security/limits.conf
...
*   soft    nofile  32000
*   hard    nofile  64000

root    soft    nofile  32000
root    hard    nofile  64000
    
por palmic 02.11.2012 / 00:21

1 resposta

6

As configurações em /etc/security/limits.conf geralmente são aplicadas pelo módulo pam_limits PAM . Os serviços iniciados por init não são executados em uma sessão do PAM e, portanto, essas configurações não são aplicadas. A única maneira confiável que encontrei para definir isso é executar ulimit do próprio script. Edite o script do ElasticSearch e adicione algo parecido com este no topo:

ulimit -n 64000

Não tenho certeza se você deseja definir sys.file-max BTW; no meu sistema, o padrão é 779149, e assim você pode estar diminuindo em uma ordem de magnitude.

    
por 03.11.2012 / 07:46