禁用来自Kubernetes的透明巨大页面
我通过Kubernetes部署Redis容器并获得以下警告:
警告您在内核中启用了透明巨大页面(THP)支持。 这将导致Redis的延迟和内存使用问题。 要解决这个问题,请以超级用户身份运行“echo never> / sys / kernel / mm / transparent_hugepage / enabled”命令,并将其添加到/etc/rc.local中,以便在重新启动后保留设置。 在THP禁用后,必须重新启动Redis
是否可以通过Kubernetes禁用THP? 也许通过init容器?
是的,使用init-containers非常简单:
apiVersion: v1 kind: Pod metadata: name: thp-test spec: restartPolicy: Never terminationGracePeriodSeconds: 1 volumes: - name: host-sys hostPath: path: /sys initContainers: - name: disable-thp image: busybox volumeMounts: - name: host-sys mountPath: /host-sys command: ["sh", "-c", "echo never >/host-sys/kernel/mm/transparent_hugepage/enabled"] containers: - name: busybox image: busybox command: ["cat", "/sys/kernel/mm/transparent_hugepage/enabled"]
演示(请注意,这是一个系统范围设置):
$ ssh THATNODE cat /sys/kernel/mm/transparent_hugepage/enabled always [madvise] never $ kubectl create -f thp-test.yaml pod "thp-test" created $ kubectl logs thp-test always madvise [never] $ kubectl delete pod thp-test pod "thp-test" deleted $ ssh THATNODE cat /sys/kernel/mm/transparent_hugepage/enabled always madvise [never]
- SONARQUBE DOCKER集装箱将不会由于Backlite JAR而开始如何去除它?
- 然后通过ansible-playbook:“containerd:container not started”
- 从IFrame中删除边框
- IE6上的JSON(IE7)
- getElementsByClassName()在IE6,IE7,IE8等旧Internet Explorer中不起作用
- Bang IE7 – 这是什么意思?
- 在同一台机器上运行Internet Explorer 6,Internet Explorer 7和Internet Explorer 8
- 如何拉dashDB泊坞窗图像
- 无法连接到码头主机以外的码头容器