1 、KSM
其实对于虚拟化KSM的原理,了解一下就好,ppt里面有原理。有空可以粘过来
承载KSM服务的有两个,ksm服务和ksmtuned服务,需要两个服务同时开启,才能够保证KSM的正常使用
systemctl status ksm
systemctl status ksmtuned
关闭KSM服务
systemctl stop ksm # 停止服务 systemctl disble ksm #禁止服务开机启动 systemctl stop ksmtuned systemctl disable ksmtuned
KSM功能可以在线开启,在KSM功能关闭的情况下,如果虚拟运行出现内存不足,可以开启KSM服务和KSMTUNED服务,(start),宿主机会逐渐合并内存页,不影响虚拟业务的正常运行
KSM会消耗一定量的计算机资源进行内存扫描,而且可能使系统频繁使用swap空间,导致虚机性能下降,因此建议仅将其应用测试环境,作为内存资源不足时的辅助功能,在生产环境中则最好将其关闭
2、内存气球
3、巨型页
巨型页指的是内存中的巨型页面,做X86系统中,默认的内存页面大小是4KB,而巨型页的大写会远超过这个值,达到2M甚至1GB的容量
巨型页的原理涉及操作系统的虚拟地址到物理地址的转化过程,操作系统为了运行多个进程,会为每个进程提供一个虚拟的进程空间。在32位操作系统上,该进程的空间为4GB,在64位的操作系统上,该进程空间的大小为2的64次方B
1、查看巨型页
cat /proc/meminfo | grep HugePages
2、设置巨型页数量
sysctl -w vm.nr_hugepages=30
设置完成后,当前系统巨型页的数量变为30,设置永久有效,如果重启系统,该值保持不变
3、挂载巨型页
mount -t hugetlbfs hugetlbfs /dev/hugepages
其中,参数-t 指定的是设备的文件系统类型,本例为hugetlbfs,,参数hugetlbfs 为挂载设备的名称,/dev/hugepages 为挂载点
4、关闭巨型页
sysctl vm.nr_hugepages=0
umount hugetlbfs
5、在虚机上使用巨型页
如果某虚机要使用宿主机的巨型页,需要进行以下操作
1、重启libvirt服务
2、在虚拟机上开启巨型页功能
3、关闭虚机,然后编辑虚拟机的配置文件,设置该虚机可以使用宿主机巨型页的数量