복붙노트

[REDIS] GKE 캔트 비활성화 투명 거대한 페이지는 ... 권한이 거부

REDIS

GKE 캔트 비활성화 투명 거대한 페이지는 ... 권한이 거부

나는 GKE의 레디 스 이미지를 실행하려합니다. 내가 무서워 "투명 거대한 페이지"경고를 제외하고 그것은 작동 :

WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.

레디 스 유용하실 너무 느립니다 ... 그래서 THP 소등 묶여 :

sheena@gke-projectwaxd-cluster-default-pool-23593a74-wxrv ~ $ cat  /sys/kernel/mm/transparent_hugepage/enabled
always [madvise] never
sheena@gke-projectwaxd-cluster-default-pool-23593a74-wxrv ~ $ echo never >  /sys/kernel/mm/transparent_hugepage/enabled 
-bash: /sys/kernel/mm/transparent_hugepage/enabled: Permission denied
sheena@gke-projectwaxd-cluster-default-pool-23593a74-wxrv ~ $ sudo echo never >  /sys/kernel/mm/transparent_hugepage/enabled 
-bash: /sys/kernel/mm/transparent_hugepage/enabled: Permission denied

이 권한 오류는 당황하게된다. 레디 스는 제대로 작동 할 수 있도록 오프 THP를 원한다.

나는 조금 파고를했고, 그 구글이 특별한 OS 이미지가 만든다 / SYS / 읽기 전용 경로를 사용하여 발견했다. 데비안 7을 기반으로 또 다른 이미지는 흥분 저 모두를 가지고 있지만 결국 나는 정확히 같은 문제가있다.

그래서 어떻게 구글 컨테이너 엔진 THP에 영향을받지에서 레디 스를 중지합니까?

내가 여기에 독특한 무언가를하고 있어요하지 같다. 용기에 데이터베이스를 실행하는 것은 아주 정상입니다. THP을 사용하는 경우 그리고 그것은 고장 데이터베이스에 대해 아주 정상입니다. 그래서 ... 나는 여기에 무엇을 놓치고?

해결법

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

    1.귀하의 명령이 약간 잘못 : 루트로 실행 에코 있지만 / SYS / 쓸 수 있도록 재 자체가 (>) 사용자로 실행합니다.

    귀하의 명령이 약간 잘못 : 루트로 실행 에코 있지만 / SYS / 쓸 수 있도록 재 자체가 (>) 사용자로 실행합니다.

    다음 명령은 (기반 크롬) 미세 용기-VM (데비안 기반) 및 GCI에서 모두 작동합니다 :

    sudo sh -c 'echo never > /sys/kernel/mm/transparent_hugepage/enabled'
    

    에은 / etc / 기본 / 애벌레 (이후 sudo는 업데이트 - GRUB와 sudo는 재부팅을 실행하는 것을 잊지 마세요)이 커널 명령 줄 매개 변수를 추가합니다 :

    GRUB_CMDLINE_LINUX="... transparent_hugepage=never"
    

    클라우드 콘솔을 사용하여 먼저, 노드 풀에서 사용되는 인스턴스 템플릿을 복사합니다.

    둘째로는, 메타 데이터에 따라 유저 데이터의 값을 변경

    #cloud-config
    
    write_files:
      - path: /etc/systemd/system/hugepage.service
        permissions: 0644
        owner: root
        content: |
          [Unit]
          Description=Disable THP
    
          [Service]
          Type=oneshot
          ExecStart=/bin/sh -c "echo never > /sys/kernel/mm/transparent_hugepage/enabled"
    
          [Install]
          WantedBy=kubernetes.target
    ...
    runcmd:
     - ...
     - systemctl enable hugepage.service
     - systemctl start kubernetes.target
    

    셋째, 새로 만든 하나의 인스턴스 템플릿을 변경 :

    gcloud compute instance-groups managed set-instance-template \
      gke-YOUCLUSTER-YOURPOOL-grp \
      --template=YOURNEWTEMPLATENAME \
      --zone=...
    

    넷째, 인스턴스 (들)을 만들 :

    gcloud compute instance-groups managed recreate-instances \
       gke-YOUCLUSTER-YOURPOOL-grp \
       --zone=... \
       --instances=...
    

    인스턴스는 모든 데이터를 잃어 장애인 THP와 함께 올 것이다. 모든 새로운 인스턴스는 THP (이 노드 풀에)뿐만 아니라 사용할 것입니다.

  2. from https://stackoverflow.com/questions/43032406/gke-cant-disable-transparent-huge-pages-permission-denied by cc-by-sa and MIT license