linux hugepages

使用HugePages的优点:

HugePages是Linux内核的一个特性,使用hugepage可以用更大的内存页来取代传统的4K页面。使用HugePage主要带来以下好处:

1. HugePages 会在系统启动时,直接分配并保留对应大小的内存区域。

2. HugePages 在开机之后,如果没有管理员的介入,是不会释放和改变的。

3. 大大提高了CPU cache中存放的page table所覆盖的内存大小,从而提高了TLB命中率。

4. 没有swap,永远常驻在内存中,所以也减少了内存页交换的额外开销。

5. 降低walk page table的长度: 由于大页的页表级数(PGD PUD PMD)比普通页面级数(PGD PUD PMD PTE)小1,所以在走表时会高效一些。(以普通页面是四级页表为例)。

使用HugePages的缺点:

使用hurgepages的内存不能被其他的进程使用,所以,一定要合理设置这个值,避免造成浪费。使用超过8G物理内存的系统,有人推荐使用HugePage。

1、可能需要对应用程序进行改造:对于传统巨页,必须使用特定的方式使用。详情参考巨页内存的类型及使用方式。

2、可能导致内存浪费:如果程序使用内存小,却申请了大页内存,会造成内存浪费,因为内存分配最小单位是页。

查看hurgepages的信息:

通过执行:cat /proc/meminfo | grep Huge

HugePages_Total:    1024
HugePages_Free:     1024
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB

这些字段的意思如下。
(1)HugePages_Total:巨型页池的大小。
(2)HugePages_Free:巨型页池中没有分配的巨型页的数量。
(3)HugePages_Rsvd:“Rsvd”是“Reserved”的缩写,意思是“预留的”,是已经承诺从巨型页池中分配但是还没有分配的巨型页的数量。预留的巨型页保证应用程序在发生缺页异常的时候能够从巨型页池中分配一个巨型页。
(4)HugePages_Surp:“Surp”是“Surplus”的缩写,意思是“多余的”,是巨型页池中临时巨型页(临时分配的)的数量。临时巨型页的最大数量由“/proc/sys/vm/nr_overcommit_hugepages”控制。
(5)Hugepagesize:巨型页的大小。

kubernetes通过kubectl查看node的hugepages情况:

kubectl get node multinode-demo-m02 -o yaml

Capacity:
  cpu:                ...
  ephemeral-storage:  ...
  hugepages-1Gi:      2Gi
  hugepages-2Mi:      1Gi
  memory:             ...
  pods:               ...
Allocatable:
  cpu:                ...
  ephemeral-storage:  ...
  hugepages-1Gi:      2Gi
  hugepages-2Mi:      1Gi
  memory:             ...
  pods:               ...

禁用hurgepages:

#禁用大页缓存

vi /etc/sysctl.conf

vm.nr_hugepages = 0

vm.nr_hugepages_mempolicy = 0

# 生效

sysctl -p

排查内存占用情况:

#查看内存过高的进程
ps -aux | sort -k4nr | head -n 5

#查看进程内存占用情况
ps aux --sort=-%mem

#查看是否存在未被释放的进程
sudo lsof | grep deleted

------

引用:

页表缓存(TLB)和巨型页的实现_tlb 超页-CSDN博客

HugePage简介和KVM中使用HugePage_kvm启用hugepage-CSDN博客


管理巨页(HugePage) | Kubernetes

坑爹的大页内存 - XGogo - 博客园

--end--

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值