2017-07-10 1 views
1

J'ai mis boostrap.memory_lock = true Mise à jour /etc/security/limits.conf ajouté memlock illimité pour les utilisateurs de recherche élastiqueverrouillage mémoire du processus ElasticSearch échoué

Ma recherche élastique a fonctionné très bien pendant plusieurs mois. Soudain, il a échoué 1 jour en arrière. Dans les journaux, je peux voir ci-dessous erreur et le processus ne commence jamais

ERREUR: bootstrap contrôle a échoué mémoire de verrouillage demandé pour le processus de ElasticSearch mais la mémoire n'est pas verrouillé

je frappe ulimit -comme et je peux voir la mémoire verrouillée max réglée sur illimité. Qu'est-ce qui ne va pas ici? J'ai essayé pendant des heures mais en vain. S'il vous plaît aider.

OS est RHEL 7.2 ElasticSearch 5.1.2

la sortie ulimit

core file size  (blocks -c) 0 
data seg size   (kbytes -d) unlimited 
scheduling policy   (-e) 0 
file size   (blocks, -f) unlimited 
pending signals    (-i) 83552 
max locked memory (kbytes, -l) unlimited 
max memory size  (kbytes, -m) unlimited 
open files     (-n) 65536 
pipe size   (512 bytes, -q) 8 
POSIX message queues (bytes,-q) 819200 
real-time priority   (-r) 0 
stack size   kbytes, -s) 8192 
cpu time    seconds, -t) unlimited 
max user processes   (-u) 4096 
virtual memory  (kbytes, -v) unlimited 
file locks     (-x) unlimited 
+0

Ajouter la réponse d'ulimit -as à la question – angelcervera

+0

ajouté ulimit -dans la sortie, veuillez vérifier – Shades88

+0

il reste encore un composant dans l'installation RHEL tour qui retient Elasticsearch de la mémoire de verrouillage. Avez-vous fait un OS ugprade récemment? Ou systemd a été mis à jour, vous pouvez également vérifier les fichiers systemd. Il y a une option 'LimitMEMLOCK' dans la définition' elasticsearch.service' qui doit être déverrouillée. – alr

Répondre

0

essayez de définir dans /etc/sysconfig/ElasticSearch fichier mis MAX_LOCKED_MEMORY = illimité

dans /usr/lib/systemd/system/elasticsearch.service mis LimitMEMLOCK = infini

0

Assurez-vous que votre processus de démarrage de ElasticSearch est configuré pour unlimited. Pour si, par exemple, vous démarrez elasticsarch avec un autre utilisateur comme celui configuré dans /etc/security/limits.conf ou comme root tout en définissant une entrée générique dans limits.conf (qui est pas pour root) cela ne fonctionnera pas.

Testez-le pour être sûr: vous pourriez p. mettre ulimit -a ; exit juste après le "#Start Daemon" dans /etc/init.d/elasticsearch et commencer avec bash /etc/init.d/elasticsearch start (adapter en conséquence à votre mécanisme de démarrage).