重学kvm之七(KSM 内核同页合并技术)

KSM 介绍

# 1、KSM的全称:Kernel Samepage Merging:内核同页合并
# 2、KSM的原理:一种节约内存的重复数据删除技术,
    原理是COW(copy on write)写时复制的共享页

# 3、kvm是如何提供ksm的(通过qemu-kvm-common)
    # centos8是默认启用
 [root@node139 ~]# rpm -ql qemu-kvm-common | grep ksm
/etc/ksmtuned.conf
/etc/sysconfig/ksm
/usr/lib/systemd/system/ksm.service
/usr/lib/systemd/system/ksmtuned.service
/usr/libexec/ksmctl
/usr/sbin/ksmtuned

[root@node100 ~]# cat /boot/config-5.4.166-1.el7.elrepo.x86_64 | grep KSM
CONFIG_KSM=y

# 4、如何停用|启用KSM
    systemctl stop ksm.service
    systemctl stop ksmtuned.service

    systemctl disable ksm.service
    systemctl disable ksmtuned.service

# 5、查看KSM服务状态
    systemctl status ksm
    systemctl status ksmtuned

KSM是一项内核技术,可以使用ksmtuned进行管理

# 如下是ksmtuned 配置文件介绍

[root@node118 ksm]# cat /usr/local/zjmf/conf/ksmtuned.conf
KSM_THRES_COEF=20       # 内存合并阈值系数(单位百分比),若系统内存8G,合并阈值为8 GB * 20% = 1.6 GB,当系统中的冗余页面占用的内存超过合并阈值时,KSM 将启动页面合并操作
KSM_SLEEP_MSEC=30       # 控制了扫描页面的间隔时间(单位毫秒),较低的值会提升合并效果,但是会增加cpu开销
USE_ZERO_PAGES=1        # 控制是否将零页面纳入内存回收的范围。为0时,KSM只会处理非零页面,即那些具有实际内容的页面;为1时,KSM会处理零页面和非零页面,为1时cpu负载会高些

ksm运行目录相关值介绍

[root@node118 ksm]# pwd
/sys/kernel/mm/ksm

[root@node118 ksm]# tree
.
|-- full_scans              # 文件表明已经执行的全区域扫描的次数。
|-- max_page_sharing        # 每个分页能运行共享的次数
|-- merge_across_nodes
|-- pages_shared            # KSM 正在使用的不可交换的内核页面的数量。
|-- pages_sharing           # 一个内存存储指示。 多少节点被共享并且多少被保存。
|-- pages_to_scan           # (ksmd睡眠前)一个扫描周期被扫描的内存页数,(范围是1-65536之间的整数)(4096 = 16MB)
|-- pages_unshared
|-- pages_volatile          # 频繁改变的页面的数量
|-- run
|-- sleep_millisecs         # ksmd进程的休眠时间(单位毫秒)
|-- stable_node_chains
|-- stable_node_chains_prune_millisecs
|-- stable_node_dups
`-- use_zero_pages          # 控制是否将零页面纳入内存回收的范围。为0时,KSM只会处理非零页面,即那些具有实际内容的页面;为1时,KSM会处理零页面和非零页面

若是发现ksm内存回收效果不明显时,尝试解决办法

1、确保 USE_ZERO_PAGES=1 

2、增大/sys/kernel/mm/ksm/pages_to_scan的值
    #先查看默认的值
    [root@node118 ksm]# cat /sys/kernel/mm/ksm/pages_to_scan
    1250

    #手动执行该命令后,再行观察内存可用率(需root执行)
    echo 65535 > /sys/kernel/mm/ksm/pages_to_scan
声明:本文为原创,作者为 辣条①号,转载时请保留本声明及附带文章链接:https://boke.wsfnk.com/archives/1160.html
谢谢你请我吃辣条谢谢你请我吃辣条

如果文章对你有帮助,欢迎点击上方按钮打赏作者

最后编辑于:2023/7/2作者: 辣条①号

现在在做什么? 接下来打算做什么? 你的目标什么? 期限还有多少? 进度如何? 不负遇见,不谈亏欠!

暂无评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

arrow grin ! ? cool roll eek evil razz mrgreen smile oops lol mad twisted wink idea cry shock neutral sad ???

文章目录