KVM Vcpu概述

KVM Vcpu概述

    • Intel VT
    • SMP系统
    • CPU过载使用
    • CPU模型
    • CPU绑定和亲和性
    • CPU优化

Intel VT

Intel的硬件虚拟化技术大致分为3类:
1、VT-x技术:是指Intel处理器中的一些虚拟化技术支持,包括CPU中最基础的VMX技术,也包括内存虚拟化的硬件支持EPT、VPID等。
2、VT-d技术:是指Intel的芯片组的虚拟化技术支持,通过Intel IOMMU可实现对设备直接分配的支持。
3、VT-c技术:是指Intel的I/O设备相关的虚拟化技术支持,主要包含两个技术:一个是借助虚拟机设备队列(VMDq)最大限度提高I/O吞吐率,VMDq由Intel网卡中的专用硬件来完成;另一个是借助虚拟机直接互连(VMDc)大幅提升虚拟化性能,VMDc主要就是基于SR-IOV标准将单个Intel网卡产生多个VF设备,用来直接分配给客户机。
注:在x86-64架构的处理器中,KVM需要的硬件虚拟化扩展分别为Intel的虚拟化技术(Intel VT)和AMD的AMD-V技术。

# 查看cpu是否开启VT,flags字段将会记录
[root@node ~]# grep -E "svm|vmx" /proc/cpuinfo

在 BIOS中,VT的选项通过“Advanced > Processor Configuration”来查看和设置,它的标识通常为“Intel® Virtualization Technology”或“Intel VT”等类似的文字说明。
除了支持必需的处理器虚拟化扩展以外,如果服务器芯片还支持 VT-d (VirtualizationTechnology for Directed I/O),建议在 BIOS 中将其打开,因为后面一些相对高级的设备的直接分配功能会需要硬件 VT-d 技术的支持。VT-d是对设备I/O 的虚拟化硬件支持,在BIOS中的位置可能为“Adanced > Processor Confguration”或“Advanced > System Agent(SA) Configuration”,它在 BIOS 中的标志一般为“ Intel® VT for Directed I/O”或“Intel VT-d”。

SMP系统

SMP(Symmetric multiprocessing)对称多处理器系统,是一种多处理器的电脑硬件架构,指在一个计算机上汇集了一组处理器(多CPU),各CPU之间共享内存子系统以及总线结构。多个进程可以并行执行,而且单个进程的多个线程也可以得到并行执行。
QEMU在给客户机模拟CPU时,也提供对SMP系统的支持。配置客户机SMP参数如下:

-smp [cpus=] n [,maxcpus=cpus] [, cores=cores] [, threads=threads] [ , sockets=sockets)
n:用于设置客户机中使用的逻辑 CPU 数量(默认值是 1)。
maxcpus:用于设置客户机中最大可能被使用的CPU数量,包括启动时处于下线(ofline)状态的 CPU数量 (可用于热插拔 hot-plug 加人 CPU,但不能超过 maxcpus这个上限)。
cores:用于设置每个 CPU 的 core 数量(默认值是 1)。
threads:用于设置每个 core 上的线程数(默认值是 1)。
sockets:用于设置客户机中看到的总的 CPU socket 数量。
# 查看是否支持SMP系统
[root@node ~]# uname -v
#1 SMP Tue Oct 17 15:42:21 UTC 2023
# 开启irqbalance服务,该服务能够把压力均匀的分配到各个CPU核心上,对提升性能有很大的帮助,但在某些情况下,可能会导致网络、IO等性能问题。
[root@node ~]# service irqbalance start

CPU过载使用

KVM允许客户机过载使用物理资源,即允许为客户机分配多余物理上实际存在的cpu和内存数量。但在实际使用过程中,不推荐让某一个客户机的vCPU数量超过物理系统上存在的CPU数量。比如:在拥有4个逻辑CPU的宿主机中,每个客户机的vCPU数量多于4个。

CPU模型

每一种虚拟机管理程序 ( Virtual Machine Monitor,简称 VMM或Hypervisor)都会定义自己的策略,让客户机看起来有一个默认的 CPU 类型。有的 Hypervisor 会简单地将宿主机中CPU的类型和特性直接传递给客户机使用,而 QEMU/KVM 在默认情况下会向客户机提供一个名为qemu64 或qemu32 的基本 CPU模型。QEMU/KVM 的这种策略会带来一些好处,如可以对CPU 特性提供一些高级的过滤功能,还可以将物理平台根据提供的基本 CPU模型进行分组(如将几台 IvyBridge 和 Sandybridge 硬件平台分为一组,都提供相互兼容的SandyBridge 或qemu64的CPU模型),从而使客户机在同一组硬件平台上的动态迁移更加平滑和安全。
通过如下的命令行可以查看当前的 QEMU 支持的所有 CPU 模型。

# 查看当前的 QEMU 支持的所有 CPU 模型
[root@node -]# qemu-system-x86 64 -cpu ?
# 指定使用Broadwell模型
[root@node -]# qemu-system-x86 rhel7.img -cpu Broadwell -smp 8 -m 16G -enable-kvm
# -enable-kvm 这个参数用来开启KVM硬件加速功能

CPU绑定和亲和性

通常在SMP系统中,Linux内核的进程调度器根据自有的调度策略将系统中的一个进程调度到某个CPU上执行。那么在不同的时间片上,进程的执行可能会在不同的CPU上运行,这样就会带来缓存命中失效,导致性能下降。但从另一方面来看,设置CPU亲和性之后,由于进程的运行固定到某个CPU上,会破坏各CPU的负载均衡,SMP的调度效率也会有所降低。

# 可以先查看QEMU pid和psr(运行在几号CPU上)
[root@node ~]# ps -eLo psr,ruser,pid,args | grep qemu
# 上面命令带参数不易记的话,也可以先ps查pid,然后pidstat -p 进程号,查运行CPU号
# 然后将进程绑定到指定CPU上,这里指定3号CPU
[root@node -]# taskset -pc 3 72260

CPU优化

AVX/AVX2/AVX512(Advanced Vector Extensions,高级矢量扩展)指令集。
XSAVE指令集,用于保存和恢复处理器扩展状态,动态迁移保存处理器状态,然后在迁移后恢复处理器的执行状态。
AES(Advanced Encryption Standard,高级加密标准)指令集,用于对电子数据进行加密。
注:以上不作太多解释,具体可以参考相关资料。

# 查看CPU是否支持
[root@node ~]# cat /proc/cpuinfo | grep -E "avx|xsave|aes"

在这里插入图片描述
创建客户机时可以使用 “-cpu qemu64,+aes” 来添加新特性。也可以通过 “-cpu host” 参数来完全暴露宿主机的CPU特性,

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【LangChain学习之旅】—(7) 调用模型:使用OpenAI API还是微调开源Llama2/ChatGLM?

【LangChain学习之旅】—(7) 调用模型:使用OpenAI API还是微调开源Llama2/ChatGLM? 大语言模型发展史预训练 微调的模式用 HuggingFace 跑开源模型申请使用 Meta 的 Llama2 模型通过 HuggingFace 调用 LlamaLangChain 和 Hugging…

PHP代码审计基础知识

前言 本文章主要是PHP代码审计的一些基础知识,包括函数的用法,漏洞点,偏向基础部分,个人能力有限,部分可能会出现错误或者遗漏,读者可自行补充。 代码执行 代码执行是代码审计当中较为严重的漏洞&…

关于LwRB环形缓冲区开源库的纯C++版本支持原子操作

1、LwRB环形缓冲区开源库: GitHub - MaJerle/lwrb: Lightweight generic ring buffer manager libraryLightweight generic ring buffer manager library. Contribute to MaJerle/lwrb development by creating an account on GitHub.https://github.com/MaJerle/l…

【Linux】Linux基础之权限

目录 一、Linux中的用户1.1 用户之间的身份切换1.2 指令提权 二、权限管理2.1 文件权限2.2 权限操作2.3 chown和chgrp 三、文件类型四、目录文件的权限操作五、权限掩码六、粘滞位 一、Linux中的用户 Linux中主要有两种用户: root,超级用户非root&…

AI智能创作软件,颠覆你的写作体验

你是否想过,有一天,文字创作不再受限于人的思维和表达能力?AI智能文章创作就是这样一个神奇的存在。它运用先进的自然语言处理技术,通过对大量数据的深度学习,根据需要自动生成文章。你只需输入关键词或主题&#xff0…

Vue3-完成任意组件之间的传值

一、props(只限于父子之间,不嫌麻烦可以不断传) 父给子传值,子接收defineProps 父给子传事件,子接收defineProps,并触发事件的时候传值,然后父通过事件的回调函数拿到子传的值 二、mitt&#…

R语言将list转变为dataframe(常用)

在R语言使用中常常遇到list文件需要转变为dataframe格式文件处理。这是需要写循环来进行转换。IOBR查看其收录的相关基因集(自备)_iobr_deg-CSDN博客 示例文件 list文件&#xff1a; 循环转换为dataframe data <- signature_tme dat <- as.data.frame(t(sapply(data, …

【AI的未来 - AI Agent系列】【MetaGPT】0. 你的第一个MetaGPT程序

《MetaGPT智能体开发入门》开课&#xff0c;跟着课程&#xff0c;学习MetaGPT智能体开发。 0. 安装MetaGPT 请确保你的系统已安装Python 3.9。你可以通过以下命令进行检查&#xff1a; python3 --version下面是具体的安装命令&#xff1a; 安装命令 pip install metagpt如…

完美解决报错Please verify that the package.json has a valid “main“ entry处理方法

出现下图中的错误 &#xff0c;说明缺少main入口 解决方法&#xff1a; 1.删除 node_modules 和 package-lock.json这两个文件 2.命令行输入npm i 会重新下载包 3.重新执行检查没有报错

Centos安装RocketMQ之双主双从模式(同步双写方式)

目录 前言 一、总体架构 二、环境准备 1、文件准备 2、服务器换环境 3、防火墙配置 4、创建消息存储路径 三、配置文件修改 1、master1配置修改 2、slave2配置修改 3、master2配置修改 4、slave1配置修改 四、启动脚本修改 五、启动服务 1、启动NameServe集群 ​编…

阿里云高性能云服务器_云主机_云服务器详解

阿里云高性能云服务器60%单实例最大性能提升&#xff0c;35Gbps内网带宽&#xff0c;网络增强&通用型云服务器、本地SSD型云服务器、大数据型云服务器、GPU异构型云服务器&#xff0c;阿里云百科aliyunbaike.com分享阿里云高性能云服务器&#xff1a; 阿里云高性能云服务器…

【simple-admin】FMS模块如何快速接入阿里云oss 腾讯云cos 服务 实现快速上传文件功能落地

让我们一起支持群主维护simple-admin 社群吧!!! 不能加入星球的朋友记得来点个Star!! https://github.com/suyuan32/simple-admin-core 一、前提准备 1、goctls版本 goctls官方git:https://github.com/suyuan32/goctls 确保 goctls是最新版本 v1.6.19 goctls -v goct…

(十一)IIC总线-AT24C02-EEPROM

文章目录 IIC总线篇AT24C02-EEPROM篇主要特性引脚说明AT24Cxx用几位数据地址随机寻址的(存储器组织)AT24C02设备操作AT24CXX设备寻址EEPROM写操作的种类EEPROM读操作的种类实现单字节写实现任意读读写应用 IIC总线篇 前面介绍过了&#xff0c;请参考 (十)IIC总线-PCF8591-ADC/…

手把手教你用 Stable Diffusion 写好提示词

Stable Diffusion 技术把 AI 图像生成提高到了一个全新高度&#xff0c;文生图 Text to image 生成质量很大程度上取决于你的提示词 Prompt 好不好。 前面文章写了一篇文章&#xff1a;一份保姆级的 Stable Diffusion 部署教程&#xff0c;开启你的炼丹之路 本文从“如何写好…

前端基础知识

一、脚本script 定义&#xff1a;脚本简单地说就是一条条的文字命令&#xff0c;这些文字命令是可以看到的&#xff0c;脚本程序在执行时&#xff0c;是由系统的一个解释器&#xff0c;将其一条条的翻译成机器可识别的指令&#xff0c;并按程序顺序执行 作用&#xff1a;可以…

element:日历 / 使用记录

一、预期效果 Element - The worlds most popular Vue UI framework element默认样式 目标样式 二、Calendar 属性 参数说明类型可选值默认值value / v-model绑定值Date/string/number——range时间范围&#xff0c;包括开始时间与结束时间。开始时间必须是周一&#xff0c;…

【HuggingFace Transformer库学习笔记】基础组件学习:Evaluate

基础组件学习——Evaluate Evaluate使用指南 查看支持的评估函数 # include_community&#xff1a;是否添加社区实现的部分 # with_details&#xff1a;是否展示更多细节 evaluate.list_evaluation_modules(include_communityFalse, with_detailsTrue)加载评估函数 accuracy…

Linux终端常见用法总结

熟悉Linux终端的基础用法和常见技巧可以极大提高运维及开发人员的工作效率&#xff0c;笔者结合自身学习实践&#xff0c;总结以下终端用法供同行交流学习。 常 见 用 法 &#x1f3af; 1&#xff1a;快捷键 1.1 Alt . 在光标位置插入上一次执行命令的最后一个参数。 1.2 Ct…

图片特效/增强GUI程序

程序下载地址&#xff1a;mendianyu/pictureConvert: 图片特效/增强GUI程序&#xff0c;借助百度接口实现人像动漫化&#xff0c;模糊图片变清晰等等功能 (github.com) 图片特效/增强GUI程序 借助百度接口实现人像动漫化&#xff0c;模糊图片变清晰等等功能 程序介绍 运行Ima…

码牛课堂首推——鸿蒙南北双向开发学习路线图标准版~

鸿蒙&#xff01;鸿蒙&#xff01;鸿蒙&#xff01; 要说2023-2024年IT圈最火爆的名词&#xff0c;一定是鸿蒙&#xff01; 2023年9月25日&#xff0c;华为发布会正式宣布2024年第一季度将推出HarmonyOS NEXT版本&#xff0c;这意味着鸿蒙原生应用开发将彻底摆脱Android手机系…