복붙노트

[MONGODB] 어떻게하여 MongoDB에서 transparent_hugepage / 조각 모음 경고를 피하기 위해?

MONGODB

어떻게하여 MongoDB에서 transparent_hugepage / 조각 모음 경고를 피하기 위해?

나는 THP에 대해 MongoDB의에서 다음과 같은 경고 메시지가 표시됨

2015-03-06T21:01:15.526-0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2015-03-06T21:01:15.526-0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'

하지만 수동으로 끌 THP에 관리 않았다

frederick@UbuntuVirtual:~$ cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
frederick@UbuntuVirtual:~$ cat /sys/kernel/mm/transparent_hugepage/defrag
always madvise [never]

나는 년을 / etc / 기본 / 애벌레 결코 GRUB_CMDLINE_LINUX_DEFAULT에 = transparent_hugepage을 추가하고 추가하여 속임수를 썼는지

if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
   echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi

에 /etc/rc.local에

어떻게이 땅에서 나는 경고를 피할 수있다?

해결법

  1. ==============================

    1.공식 MongoDB의 문서는이 문제에 대한 몇 가지 솔루션을 제공합니다. 당신은 또한 나를 위해 일한이 솔루션을 시도 할 수 있습니다 :

    공식 MongoDB의 문서는이 문제에 대한 몇 가지 솔루션을 제공합니다. 당신은 또한 나를 위해 일한이 솔루션을 시도 할 수 있습니다 :

    참고 : MongoDB의 버전보다 큰 3.0의 경우 공식 문서의 지시를보십시오

    여기 /etc/init.d/mongod에 추가 할 줄은 다음과 같습니다 :

    if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
       echo never > /sys/kernel/mm/transparent_hugepage/enabled
    fi
    if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
       echo never > /sys/kernel/mm/transparent_hugepage/defrag
    fi
    

    즉입니다!

  2. ==============================

    2.MongoDB를 이제있는 init.d 스크립트를 사용하는 그들의 권고를 업데이트 한 : http://docs.mongodb.org/master/tutorial/transparent-huge-pages/

    MongoDB를 이제있는 init.d 스크립트를 사용하는 그들의 권고를 업데이트 한 : http://docs.mongodb.org/master/tutorial/transparent-huge-pages/

  3. ==============================

    3.우분투 14.04를 들어 갑자기 출세 한 사용 :

    우분투 14.04를 들어 갑자기 출세 한 사용 :

    우리가 Ansible와 기계를 배포하고 있기 때문에 나는 RC 파일 또는 GRUB의 CONFIGS을 수정 좋아하지 않는다.

    나는 빠른 (또는 느린 시스템)에서 서비스를 시작할 때 타이밍 문제로 sysfsutils / sysfs.conf하지만 RAN을 사용했습니다. 그것은 sysfsutils 전에 시작되었다 mongod 때때로처럼 보였다. 때로는 때로는하지 않았다,했다.

    mongod는 신출내기 과정이기 때문에 나는 깨끗한 솔루션은 다음과 같은 내용으로 파일 /etc/init/mongod_vm_settings.conf을 추가하는 것을 발견했다 :

    # Ubuntu upstart file at /etc/init/mongod_vm_settings.conf
    #
    #   This file will set the correct kernel VM settings for MongoDB
    #   This file is maintained in Ansible
    
    start on (starting mongod)
    script
      echo "never" > /sys/kernel/mm/transparent_hugepage/enabled
      echo "never" > /sys/kernel/mm/transparent_hugepage/defrag
    end script
    

    이 mongod가 시작됩니다 직전 스크립트를 실행합니다. 다시 시작 mongod (sudo는 서비스 mongod 다시 시작) 및 다.

  4. ==============================

    4.업데이트 : 가상 호스팅 제공 업체를 사용하는 경우, IFF 부팅이 지원되는 GRUB 작동합니다. 디지털 오션을 지원하지 않음에 GRUB 부트.

    업데이트 : 가상 호스팅 제공 업체를 사용하는 경우, IFF 부팅이 지원되는 GRUB 작동합니다. 디지털 오션을 지원하지 않음에 GRUB 부트.

  5. ==============================

    5.조각 모음이 활성화에 관계없이 조사 것을 확인 :

    조각 모음이 활성화에 관계없이 조사 것을 확인 :

    $ cat /sys/kernel/mm/transparent_hugepage/enabled
    always madvise [never]
    $ cat /sys/kernel/mm/transparent_hugepage/defrag
    [always] madvise never
    $ service mongod start
    ... (in log) WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'
    $ echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag
    $ cat /sys/kernel/mm/transparent_hugepage/defrag
    always madvise [never]
    $ service mongod stop
    $ service mongod start
    ... (no warning in log)
    

    따라서,이 버그에 대한 수정 transparent_hugepage 처음 보는 것입니다 / 활성화, 그것은 결코없는 경우에는 관련이없는 transparent_hugepage / 조각 모음 설정을보고 귀찮게하지 않습니다.

    출처.

  6. ==============================

    6.우분투 16.04는 systemd 사용 :

    우분투 16.04는 systemd 사용 :

    systemctl 편집 mongod

    다음 붙여 넣기 :

    [Service]
    PermissionsStartOnly=true
    ExecStartPre=/bin/sh -c "echo never > /sys/kernel/mm/transparent_hugepage/enabled"
    ExecStartPre=/bin/sh -c "echo never > /sys/kernel/mm/transparent_hugepage/defrag"
    
  7. from https://stackoverflow.com/questions/28911634/how-to-avoid-transparent-hugepage-defrag-warning-from-mongodb by cc-by-sa and MIT license