Pb Indexation sur vp-istex-esk #67

Closed djelakwo opened this issue on 2 Sep 2015 - 16 comments

@djelakwo djelakwo commented on 2 Sep 2015

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

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

@djelakwo djelakwo commented on 3 Sep 2015

Oui effectivement il faudrait rebooter la machine
Merci!

@djelakwo djelakwo commented on 3 Sep 2015

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/

@djelakwo djelakwo commented on 3 Sep 2015

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

@ponticel ponticel referenced the issue on 7 Mar 2016

je ferme j'ai mis la même config sur es3 et es4.

@ponticel ponticel closed this issue on 7 Mar 2016
Labels

Priority
No priority
Milestone
No milestone
Assignee
No one
3 participants
@djelakwo @ponticel @niederle