虚拟化之内存(Memory)

news2024/11/25 22:43:23

一 内存的查看方式

  • free -k/m/h   
  • cat /proc/meminfo
  • dmesg |grep memory

free命令的实质是根据meminfo中的文件来提取信息

内存虚拟化

1.概念:由于物理MMU只能通过Host机的物理地址进行寻址,所以实现内存虚拟化,关键是需要将Guest机的虚拟地址GVA转换为HPA

2.内存虚拟化的作用:

  1. 提供给虚拟机一个从0地址开始的连续物理内存空间GPA
  2. 实现虚拟机之间有效隔离、调度及共享资源

3.术语介绍

  • GVA(Guest Virtual Address):客户机/虚拟机虚拟地址
  • GPA(Guest Physical Address):客户机/虚拟机物理地址
  • HPA(Host Physical Address):物理机物理地址

工作方式:GVA--GPA->HPA的转换,KVM引入一层新的地址空间GPA,该地址空间并不是真正的物理地址空间,它只是HOST主机虚拟地址空间在Guest地址空间上的一个映射

  1. 新的两种内存虚拟化方式
  • 影子页表  <软件实现:GVA到HPA的映射>,每个虚机都有一个影子页表
  • EPT/NPT   <硬件实现,产生出的EPT表>  

影子页表与传统的转换过程对比图:

EPT:intel的二代硬件虚拟化技术,针对内存管理单元MMU的虚拟化扩展。相比影子页面提高了内存虚拟化的性能。NPT是AMD的。

一个EPT页表=N个影子页表

  1. VPID和TLB
  • VPID虚拟处理器标识,提升实时迁移的效率,节省迁移开销,提高速度,降低延迟(就是标识某块物理内存属于哪台虚拟机
  • TLB旁路转换缓冲/页表缓冲,里面存放着页表文件(EPT表)

常用命令:

grep ept /proc/cpuinfo   查看cpu是否支持EPT

grep vpid /proc/cpuinfo  查看cpu是否支持vpid

cat /sys/module/kvm_intel/parameters/ept  显示Y则ept已开启

cat /sys/module/kvm_intel/parameters/vpid 显示Y则vpid已开启

modprobe kvm_intel ept=0,vpid=0  关闭ept/vpid  1为开启

  1. 其他
  • Linux中的格式化-->制作文件系统(i节点、block块4K)
  • 内存调用磁盘中的数据到自己的文件系统RAMFS中
  • 内存页是管理内存的单元,其大小4K

查看默认内存页大小:

getconf PAGESIZE ===> 4096(字节)=4K

三 内存技术--大页Huge Page

  1. 大页:将其设为2M则称为大页
  2. 内核2.6以上支持大页
  3. 对大页的管理方式为管理个数,因为每个页的大小固定为2M
  4. 大页的优势
  • 内存页的数量减少,节约页表所占用的空间,减少地址转换,提高内存访问性能
  • 地址转换信息一般保存在CPU缓存中,地址转换信息减少,CPU负载降低
  1. 大页的劣势
  • 不能Swap out
  • 不能使用ballooning 方式增长
  1. 为虚拟机开启大页

①查看当前系统的大页

cat /proc/meminfo |grep Huge

②开启大页<方式待商榷>

在主机中找到虚拟机的配置文件xml,添加hugepages=yes

③挂载hugetlbfs文件系统<默认系统已挂载>

如果未挂载,则需挂载:

mount  -t hugetlbfs hugetlbfs /dev/hugepages

④设置大页的数量

sysctl vm.nr_hugepages=500

⑤查看大页

四 内存超配

  1. 超配方式
  • 内存交换:用swap空间来弥补
  • 气球ballooning:通过virio_balloon驱动来实现宿主机Hypersion和客户机之间的协作
  • 页共享:通过KSM合并多个客户机进程使用的相同内存页

注:如果使用swap,就要对swap进行监控,最大使用率30%

  1. swap大小的设定
  • 2倍于真实内存,适用于内存小于2G的情况
  • 真实机大于2G的情况,内存大小+2G
  • Redhat官方给的方案:当内存超过16G,swap给8G,当swap不够再继续添加
  1. Swap的使用
  • 创建swap空间的对象:磁盘、分区、lv、dd出的文件
  • mkswap、swap on/off

五 Virsh常用的命令

virsh是KVM的管理工具,通过调用libvirt API来管理

  1. virt-manager图形化管理工具
  2. virt-top :top界面<只显示虚拟机所属进程>
  3. virsh list :查看运行的虚拟机
  4. virsh list --all : 查看所有的虚机
  5. virsh console 虚机名 :连接虚机
  6. Ctrl +]  退出虚机
  7. define xx.xml  声明虚拟机
  8. virsh start/stop/reboot 虚机名 :开启/关闭/重启虚机
  9. virsh suspend/resume 虚机名:挂起/恢复虚机

10.virsh autostart 虚机名 :子机随母机启动而启动

11. virsh destroy 虚机名 :删除虚机(在列表中删除)

 virsh undefine 虚机名:解除标记

执行上面两步才算彻底删除虚机

命令较多,此处就不一一列出,可help进行查看!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1493205.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Unity性能优化篇(二) 静态合批步骤与所有注意事项\游戏运行时使用代码启动静态合批

静态合批步骤: 1.开启Project Settings —>Player–>Other Setting里勾选Static Batching选项(一般情况下unity都是默认勾选状态) 2.勾选需要合批的静态物体上的Batching Static项,勾选后此物体下的所有子物体都默认参与静态合批(勾选后物体不能进行移动/旋转/缩放操作,…

C#,入门教程(06)——解决方案资源管理器,代码文件与文件夹的管理工具

上一篇&#xff1a; C#&#xff0c;入门教程(05)——Visual Studio 2022源程序&#xff08;源代码&#xff09;自动排版的功能动画图示https://blog.csdn.net/beijinghorn/article/details/124675293 大家平时都怎么管理源代码与文件夹呢&#xff1f;世界上最好的集成开发环境…

TinyEMU编译与使用(一)

TinyEMU编译与使用&#xff08;一&#xff09; 1 介绍2 准备工作3 编译TinyEMU3.1 安装依赖库3.2 编译 4 运行TinyEMU4.1 在线运行4.2 离线运行 5 共享目录5.1 修改root_9p-riscv64.cfg5.2 启动TinyEMU5.3 执行挂载命令 6 TinyEMU命令帮助 1 介绍 原名为riscvemu&#xff0c;于…

Oracle 的同义词(Synonym) 作用

Oracle 同义词(Synonym) 是数据库对象的一个别名&#xff0c;Oracle 可以为表、视图、序列、过程、函数、程序包等指定一个别名。同义词有两种类型&#xff1a; 私有同义词&#xff1a;拥有 CREATE SYNONYM 权限的用户(包括非管理员用户)即可创建私有同义词&#xff0c;创建的…

43. 【Linux教程】创建分区

前面小节介绍了文件系统&#xff0c;本小节介绍如何创建分区&#xff0c;创建分区之后就可以用来容纳文件系统。 1. 硬盘分区介绍 Linux 磁盘分区主要分为基本分区&#xff08;primary partion&#xff09;和扩充分区 (extension partion) 两种&#xff0c;基本分区和扩充分区…

Web-Check网站检查工具

Web-Check是一款网站检查工具&#xff0c;通过该工具&#xff0c;能够查看网站的各种关键数据&#xff0c;包括 DNS 记录、服务器位置、SSL 证书等方面的信息 开源地址 https://github.com/Lissy93/web-check 部署 docker run -d --name web-check -p 3000:3000 lissy93/web…

嵌入式系统是什么?Linux应用开发是开发什么的?

第一篇&#xff1a; 原文链接&#xff1a;https://www.zhihu.com/question/464205608/answer/3358027187 一、什么是嵌入式系统 嵌入式系统是以应用为中心&#xff0c;以计算机技术为基础&#xff0c;软硬件可裁剪&#xff0c;适用于应用系统&#xff0c;对功能、可靠性、…

比较 2 名无人机驾驶员:借助分析飞得更高

近年来&#xff0c;越来越多的政府和执法机构使用无人机从空中鸟瞰。为了高效执行任务&#xff0c;无人机必须能够快速机动到预定目标。快速机动使它们能够在复杂的环境中航行&#xff0c;并高效地完成任务。成为认证的无人机驾驶员的要求因国家/地区而异&#xff0c;但都要求您…

Web组态可视化编辑器 快速绘制组态

随着工业智能制造的发展&#xff0c;工业企业对设备可视化、远程运维的需求日趋强烈&#xff0c;传统的单机版组态软件已经不能满足越来越复杂的控制需求&#xff0c;那么实现Web组态可视化界面成为了主要的技术路径。 行业痛点 对于软件服务商来说&#xff0c;将单机版软件转变…

易经智慧解码数字化转型:象数理视角下的未来探索

在数字化浪潮席卷全球的今天&#xff0c;我们不禁思考&#xff1a;国学《易经》的智慧如何与现代的数字化转型相结合&#xff0c;为我们提供独特的洞见和启示&#xff1f;今天我们从易经的象、数、理三个层面&#xff0c;浅析数字化转型的内在逻辑和发展趋势。 象&#xff1a;数…

Python打发无聊时光:14.用PyQt创建一个简易的串口调试助手

第一步&#xff1a;装pyqt5和pyserial库 pip install pyqt5 pyserial 第二步&#xff1a;完整代码 import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QVBoxLayout, QWidget, QLabel, QComboBox, \QGridLayout, QLineEdit, QTextEdit from P…

酷开科技以酷开系统为媒介,打造欢乐生活场景

家人相聚在一起的时光总是那么美好&#xff0c;在欢聚的日子里&#xff0c;我们也总是希望能够让时间变得慢一点&#xff0c;再慢一点&#xff0c;但是随着春节假期的结束&#xff0c;很多人已经开始了新一年的忙碌&#xff0c;大家纷纷回到工作、学习岗位&#xff0c;回归之前…

Java面试题【必知必会】Mybatis常见面试题(2024)

近期一直在准备面试&#xff0c;所以为了巩固知识&#xff0c;也为了梳理&#xff0c;整理了一些java的基础面试题&#xff01;同时也希望各位英雄和女侠能够补充&#xff01;不胜荣幸&#xff01;&#xff01;&#xff01; 1.MyBatis是什么&#xff1f;他的优缺点&#xff1f;…

第八篇 - 预测受众(Predictive audience)技术是如何赋能数字化营销生态的?- 我为什么要翻译介绍美国人工智能科技巨头IAB公司

IAB平台&#xff0c;使命和功能 IAB成立于1996年&#xff0c;总部位于纽约市。 作为美国的人工智能科技巨头社会媒体和营销专业平台公司&#xff0c;互动广告局&#xff08;IAB- the Interactive Advertising Bureau&#xff09;自1996年成立以来&#xff0c;先后为700多家媒…

快递通cps小程序源码

源码介绍&#xff1a; 快递代发快递代寄寄件小程序可以对接易达云洋一级总代快递小程序&#xff0c;接入云洋/易达物流接口&#xff0c;支持选择快递公司&#xff0c;三通一达&#xff0c;极兔&#xff0c;德邦等&#xff0c;功能成熟 如何收益: 1.对接第三方平台成本大约4元…

HTML表单标签,web前端开发新技术

1、ant-design的使用总结及常用组件和他们的基本用法? ant-design为React&#xff0c;Angular和Vue都提供了组件&#xff0c;同时为PC和移动端提供了常用的基础组件。ant-design提供的demo非常的丰富并且样式能够基本的覆盖开发需求。antd的Demo因为是多人编写的&#xff0c;…

从零学习Linux操作系统 第三十二部分 ansible中剧本的应用

一、什么是playbook及playbook的组成 1.Playbook的功能 playbook 是由一个或多个play组成的列表 Playboot 文件使用YAML来写的 play就是一个个模块用列表的方式体现出来 playbook的语法是用YAML的预防进行书写的 2.YAML 简介 是一种表达资料序列的格式&#xff0c;类似XM…

Maven对项目构建过程中的每个步骤的详细介绍

1. 概述 Maven除了管理项目的依赖以外&#xff0c;还能对项目的构建过程进行管理。除了使用命令行以外&#xff0c;我们平时经常用IDEA图形化界面进行操作&#xff0c;如图所示&#xff1a; 本文将详细描述Maven对项目构建过程中的每一个阶段。 2. 构建过程 注意&#xff1…

183基于matlab的非线性调频模态分解(VNCMD)

基于matlab的非线性调频模态分解(VNCMD)&#xff0c;一种基于变分方法的信号分解技术&#xff0c;它将信号分解为多个模式。能够处理非线性调频信号&#xff0c;且对噪声具有较好的鲁棒性。VNCMD的基本原理是通过最小化信号与模式之间的差异来实现信号的分解。程序已调通&#…

YOLOV9论文解读

代码&#xff1a;https://github.com/WongKinYiu/yolov9论文&#xff1a;https://arxiv.org/abs/2402.1361本文提出可编程梯度信息(PGI)和基于梯度路径规划的通用高效层聚合网络(GELAN)&#xff0c;最终铸成YOLOv9目标检测全新工作&#xff01;性能表现SOTA&#xff01;在各个方…