Elasticsearch의 최대 스레드 수를 늘리는 방법은 무엇입니까?

Elasticsearch의 최대 스레드 수를 늘리는 방법은 무엇입니까?

Ubuntu 16.04를 새로 설치하고 Elasticsearch 5를 설치했습니다. 이제 다음을 사용하여 Elasticsearch를 시작하려고 하면

/etc/init.d/elasticsearch start

몇 초 후에 로그 파일을 읽었습니다.

[2016-11-19T08:47:31,442][ERROR][o.e.b.Bootstrap          ] [shooter-1] node validation exception
bootstrap checks failed
max number of threads [1891] for user [elasticsearch] likely too low, increase to at least [2048]

인터넷 검색 끝에 다음 줄을 추가해야 한다는 결론에 도달했습니다 /etc/security/limits.conf.

elasticsearch    -       nproc           2048

그러나 이렇게 변경한 후에도 여전히 동일한 오류가 발생합니다.

해당 줄의 주석 처리를 해제하라는 제안을 찾았습니다.

session    required   pam_limits.so

, /etc/pam.d/su그러나 해당 줄은 주석 처리되지 않았습니다.

내가 무엇을 놓치고 있나요?

답변1

자, 드디어 찾았습니다. 핵심은 이 블로그 게시물에 있습니다.https://fredrikaverpil.github.io/2016/04/27/systemd-and-resource-limits/

해결책은 파일을 편집 /usr/lib/systemd/system/elasticsearch.service하고 다음 줄을 추가하는 것 입니다.

LimitNPROC=2048

답변2

우리도 이 문제에 직면했고, 이는 우리가 처음 Elasticsearch를 설정할 때 생성한 시스템 서비스 오버레이 파일인 것으로 밝혀졌습니다.

적용 범위 파일은 문서에서 참조됩니다.https://www.elastic.co/guide/en/elasticsearch/reference/current/setting-system-settings.html#systemd

/etc/systemd/system/elasticsearch.service.d/에서 conf 파일을 확인한 다음 해당 파일을 삭제하거나 해당 Elasticsearch 버전에 맞는 LimitNPROC=로 업데이트하세요.

답변3

  1. ES 노드에서 elasticsearch 서비스를 확인할 때 다음 오류가 발생합니다.

    [root@h ~]# /etc/init.d/elasticsearch status
    

    elasticsearch는 죽었지만 subsys는 잠겨 있습니다.

  2. 로그를 자세히 조사한 결과 다음 오류가 발견되었습니다. [2020-03-26T07:41:03,281][ERROR][oebBootstrap] [h2-es-data-0] 노드 확인 예외[1] 부팅 확인 실패[1]: 최대 수 사용자 수[ elasticsearch] 스레드 [1024]가 너무 낮습니다. [2048] [2020-03-26T07:41:03,284][INFO][oenNode] [h2-es-data-0] 중지... [2020-03 -26T07:41:03,322][INFO][oenNode][h2-es-data-0] 중지됨

  3. 모든 6개 es 노드에서 스레드 풀을 늘리기 위해 /etc/security/limits.conf에 다음 줄을 추가했습니다.

    elasticsearch - nproc 2048

  4. 모든 ES 노드의 서비스를 다시 시작합니다.

    /etc/init.d/elasticsearch restart
    

관련 정보