Bonjour, j'ai fait les modif demandées.
Je ne sais pas si la modif de /etc/security/limits.conf nécessite un reboot.
Note pour versions plus récentes d'ubuntu : ulimit est remplacée par getrlimit / setrlimit
Oui effectivement il faudrait rebooter la machine
Merci!
si on est bien sur un système ubuntu, il faut aussi ajouter ces lignes supplémentaire :
fs.file-max = 500000 dans le fichier : /etc/sysctl.conf
session required pam_limits.so dans le fichier /etc/pam.d/common-session-noninteractive
et rebooter la machine
Done.
Par contre : ne faut-il pas le faire sur chaque node Elastic ? Ou celui-ci se trouve plus chargé ? (cause Kibana, ou seul à indexer ?)
Merci de me faire un retour sur ces réglages, et une validation. Pour l'instant ils ont été fait en direct à la mano, I.E. il faudra intégrer ces tweaks à puppet !
à priori pas besoin de reboot.
root@vp-istex-esk:~# cat /proc/sys/fs/file-max
500000
root@vp-istex-esk:~# ulimit -Hn
32000
root@vp-istex-esk:~# ulimit -Sn
32000
Pour réf ultérieure :
https://rtcamp.com/tutorials/linux/increase-open-files-limit/
http://thepracticalsysadmin.com/performance-tuning-elk-stack/
je ne sais pas s'il faut le faire sur chaque node Elastic, là je ne travaille que sur vp-istex-esk
pas contre je viens de ressayer l'indexation et j'ai le même pb dans le fichier des logs:
(~/var/log/vp-istex-kibana.log)
java.io.FileNotFoundException: /applis/istex/home/data-es/vp-istex-kibana/nodes/0/indices/fsmap-rsc-ebooks/7/index/_l_Lucene41_0.pos (Too many open files)
Oui Sylvain, si on valide cette config, il est plus prudent de l'appliquer à chaque noeud ES.
Pour info, j'ai eu exactement le meme problème sur vd-istex-es cet été. J'ai dû faire à peu près les même manips que toi.
Le nb de fichiers ouverts par Elasticsearch doit sûrement augmenter avec le nombre d'index, car vp-istex-esk et vd-istex-es sont les machines contenant le plus d'index (j'ai installé Marvel et Logstash en dev, ils crééent un index par jour)
Désolé je n'ai pas été réactif.
Ce setting :
username hard nofile 32000
username soft nofile 32000
On l'a config avec root comme user, votre appli se lance en root ?
sur vd-istex-es je vois :
root@vd-istex-es:~# ulimit -a
open files (-n) 1024
root@vd-istex-es:~# cat /proc/sys/fs/file-max
700000
root@vd-istex-es:~# ulimit -Hn
4096
root@vd-istex-es:~# ulimit -Sn
1024
ces valeurs sont plus basses.
Bonjour Sylvain,
Non, l'appli est lancée avec le user istex. Il faut faire ces réglages pour ce user.
Merci d'avance
Done. Fichier /etc/security/limits.conf modifié :
istex hard nofile 32000
istex soft nofile 32000
Un logout/login devrait le prendre en compte.
à vérifier via :
ulimit -Hn
ulimit -Sn
Merci Sylvain, ça marche, la modif est bien prise en compte par Elasticsearch (vérifié avec une option de debug)
Par contre, sur vd-istex-es, j'avais utilisé la valeur 700000 pour être tranquille. De ce que j'avais lu, ça avait "juste" des implications en terme d'occupation mémoire. Et vu la RAM allouée sur nos VM cette valeur me semblait raisonnable.
Dans la config par défaut, ES tente de gérer un maximum de 65535 fichiers ouverts s'il a les droits.
pour istex je vois ça :
istex@vd-istex-es:~$ ulimit -Hn
4096
istex@vd-istex-es:~$ ulimit -Sn
1024
(comme pour root)
tu parles de cat /proc/sys/fs/file-max
700000 ?
on a 500 000 sur vp-istex-esk
(modifié via fs.file-max = 500000 dans le fichier : /etc/sysctl.conf)
pour récapituler :
j'ai modifié sur vp-istex-esk :
1- commande
ulimit -n 32000 (valeur actuelle, 1024)
2- ajouter les lignes suivantes dans le fichier : /etc/security/limits.conf
root hard nofile 32000
root soft nofile 32000
istex hard nofile 32000
istex soft nofile 32000
3- ajout des lignes supplémentaires dans le fichier : /etc/sysctl.conf
fs.file-max = 500000
4- ajout des lignes supplémentaires dans le fichier : /etc/pam.d/common-session-noninteractive
session required pam_limits.so
check :
root@vp-istex-esk:~# cat /proc/sys/fs/file-max
500000
root@vp-istex-esk:~# ulimit -Hn
32000
root@vp-istex-esk:~# ulimit -Sn
32000
istex@vp-istex-esk:~$ ulimit -Hn
32000
istex@vp-istex-esk:~$ ulimit -Sn
32000
Merci Sylvain
Je ne comprends pas pourquoi, mais je n'ai pas les même résultats que dans ton avant-dernier commentaire :
istex@vd-istex-es:~$ ulimit -Hn 700000 istex@vd-istex-es:~$ ulimit -Sn 655360
Quoi qu'il en soit, les 500000 que tu as sur vp-istex-esk me paraîssent amplement suffisant, je pense que tu peux reproduire la conf sur vi-istex-es et toutes les machines vp-istex-*
ok je pense que je n'ai pas un bon renvoi sur ces commandes.
Je me log en root puis su - istex.
Les 500 000 que j'indique ne sont pas pour cette variable, mais pour /proc/sys/fs/file-max.
effectivement il faudra que je rectifie à une valeur > 65535 et que j'applique ça à l'ensemble des machine es. (c'est bien des machines es dont tu parles avec le vp-istex-*, ou bien également des autres ?)
Excuse-moi, je parlais bien des machines ES (vp-istex-es, vp-istex-es1 et vp-istex-index)
Ta proposition me va bien. Il n'y a a priori pas urgence, préviens-nous juste quand c'est fait.
Merci encore pour ton aide et bon WE
je ferme j'ai mis la même config sur es3 et es4.
Bonjour,
suite à une erreur d'indexation sur la machine vp-istex-esk (Too many open files),
après investigation il me semble qu'il faut augmenter le nombre de fichiers ouvert par ElasticSearch sur vp-istex-esk.
Détail de l'erreur dans le fichier log (~/var/log/vp-istex-kibana.log)
[2015-09-01 15:24:04,263][WARN ][cluster.action.shard ] [vp-istex-esk node] [fsmap-rsc-ebooks][6] received shard failed for [fsmap-rsc-ebooks][6], node[fx6p7XOjTzKh9pObkKc8Lg], [P], s[STARTED], indexUUID [75-W1JeQSiqZ2LKK8kMFsg], reason [shard failure [engine failure, reason [refresh failed]][FileNotFoundException[/applis/istex/home/data-es/vp-istex-kibana/nodes/0/indices/fsmap-rsc-ebooks/6/index/_k.nvd (Too many open files)]]]
mes pistes :
1- ulimit -n 32000 (valeur actuelle, 1024)
2- ajouter les lignes suivantes dans le fichier : /etc/security/limits.conf
root hard nofile 32000
root soft nofile 32000