zoukankan      html  css  js  c++  java
  • Kubernetes 使用大页

    什么是大页面?

    当一个进程使用一些内存时,CPU标记该进程使用的RAM。为了 高效,CPU接4K字节按块分配(许多平台默认)。这些块成为页面。由于进程地址空间是虚拟的,因此CPU和OS必须记住那个页面属于哪个进程,使用了更多的内存,需要管理更多的页面。为了避免对页面进行繁重的调度,大多数当前的CPU体系结构都支持大于4KB的页面,在Linux上,它称为巨大页面。

    Kubernetes

    如今,我们处于容器化领域,Kubernetes用一个基于自动化的部署,扩展和管理的开源容器编排系统。但是在我们的例子中,某些需要巨大页面能力的应用程序就是DPDK。

    那么我们可以在kubernetes中使用大页面吗?

    根据官方描述,如果kubernetes版本>=1.10,则默认启动HugePages,否则你必须自己启用它。

    登录到你的Kubernetes节点机器。打开并编辑/etc/default/kubelet此文件,找到--feature-gates=这些文本,添加一些文本以使其看起来像--feature-gates=HugePages=true

    systemctl daemon-reload
    systemctl restart kubelet
    

    然后进行下一步

    mkdir -p /mnt/huge
    mount -t hugetlbfs nodev /mnt/huge
    # 1024 is the total number of hugepages, you can using others value as you need
    echo 1024 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
    

    现在登录master,并使用kubectl describe nodes检查是否启用了大页面。你可能会看到类似下面的内容

    apiVersion: v1
    kind: Node
    metadata:
      name: node1
    # ignore...
    status:
      capacity:
        memory: 10Gi
        hugepages-2Mi: 1Gi
      allocatable:
        memory: 9Gi
        hugepages-2Mi: 1Gi
    # ignore...  
    

    一个示例Pod

    apiVersion: v1
    kind: Pod
    metadata:
      name: example
    spec:
      containers:
    # use the image you like
        volumeMounts:
        - mountPath: /hugepages
          name: hugepage
        resources:
          requests:
            hugepages-2Mi: 1Gi
          limits:
            hugepages-2Mi: 1Gi
      volumes:
      - name: hugepage
        emptyDir:
          medium: HugePages
    
  • 相关阅读:
    软件质量保证体系是什么 国家标准中与质量保证管理相关的几个标准是什么?他们的编号和全称是什么?
    软件测试分为几个阶段 各阶段的测试策略和要求是什么?
    BUG管理工具的跟踪过程(用BugZilla为例子)
    多线程
    设计模式
    一个简单的layui登陆界面
    反射技术
    Win10繁体——简体
    Vue学习—组件的学习
    IDEA 相关问题
  • 原文地址:https://www.cnblogs.com/Bjwf125/p/14633112.html
Copyright © 2011-2022 走看看