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.mzph.cn/news/619057.shtml

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

相关文章

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

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

USB_CH340一键下载电路

目录标题 1、CH340概述2、CH340芯片特点3、CH340系列芯片4、CH340引脚定义5、CH340传统的一键下载电路5.1、Stm32串口下载5.2、ESP32串口下载5.3、注意 6、免外围电路下载 1、CH340概述 CH340是一个USB总线的转接芯片&#xff0c;可实现USB转串口或者USB转打印口。 2、CH340芯…

OFBiz RCE漏洞复现(CVE-2023-51467)

漏洞名称 Apache OFBiz 鉴权绕过导致命令执行 漏洞描述 Apache OFBiz是一个非常著名的电子商务平台&#xff0c;是一个非常著名的开源项目&#xff0c;提供了创建基于最新J2EE/XML规范和技术标准&#xff0c;构建大中型企业级、跨平台、跨数据库、跨应用服务器的多层、分布式…

腾讯云优惠券(代金券)领取方法及最新优惠活动汇总

腾讯云作为国内领先的云计算服务提供商&#xff0c;一直致力于为用户提供优质、高效、安全可靠的云计算服务。为了回馈广大用户&#xff0c;腾讯云会不定期地推出各种优惠活动&#xff0c;其中包括优惠券的发放。本文将分享腾讯云优惠券的领取方法并汇总最新优惠活动&#xff0…

DNS 域名解析 后续(二)-----主从复制、分离解析

&#xff08;软件名 bind , 服务名 named&#xff09; bind主包 yum install bind bind-utils -y 主软件 和 配置包管理软件&#xff08;工具包&#xff09; rpm -q bind #检查是否安装dns服务 yum install bind bind-utils -y #安装dns服务,安装bind软件包 &#xff0…

函数的秘密

1. 函数的概念 在数学中我们学习过函数&#xff0c;而在C语言中其有着与数学不同的概念&#xff1a; 在C语言中&#xff0c;函数是指一组执行特定任务的语句&#xff0c;这些语句可以重复使用&#xff0c;并且可以在程序的不同部分调用。通过使用函数&#xff0c;程序员可以将…

《ARM Linux内核源码剖析》读书笔记——0号进程(init_task)的创建时机

最近在读《ARM Linux内核源码剖析》&#xff0c;一直没有看到0号进程&#xff08;init_task进程)在哪里创建的。直到看到下面这篇文章才发现书中漏掉了set_task_stack_end_magic(&init_task)这行代码。 下面这篇文章提到&#xff1a;start_kernel()上来就会运行 set_task_…

怎么取消开机密码?4个必备方法!

“每次我开机都要输入密码&#xff0c;感觉有点麻烦&#xff0c;有什么方可以快速取消开机密码的吗&#xff1f;快给我推荐推荐吧&#xff01;” 为电脑设置开机密码&#xff0c;可以更好地保护电脑中的重要数据。但是用户需要在每次开机时都输入密码。这对于部分用户来说可能是…

Python数据结构——列表

目录 一、认识Python数据结构 二、列表概述 三、列表切片 &#xff08;一&#xff09;概述 &#xff08;二&#xff09;常见形式 &#xff08;三&#xff09;特别说明 四、列表的基本操作 &#xff08;一&#xff09;创建列表 &#xff08;二&#xff09;列表元素增加…

全新加密叙事,以Solmash为代表的 LaunchPad 平台如何为用户赋能?

铭文市场的火爆带来“Fair Launch”这种全新的代币启动方式&#xff0c;Fair Launch 的特点在于其为所有人参与 Launch 带来了公平的机会&#xff0c;所有链上玩家们都需要通过先到先得的方式 Mint 资产&#xff0c;VC 在 Fair Launch 中几乎没有话语权&#xff0c;不同的投资者…

CSS伪类:为网页增添交互和样式

CSS伪类是一项强大的特性&#xff0c;它允许开发者根据不同的状态、位置和结构选择器来选择和样式化HTML元素。通过使用CSS伪类&#xff0c;我们可以为网页增添交互性、响应性和样式化效果。本文将深入探讨CSS伪类的概念、常见用法和一些实用示例。 CSS伪类是什么 CSS伪类是一…

【AI的未来 - AI Agent系列】【MetaGPT】1. AI Agent如何重构世界

上篇文章我们跑起来了第一个MetaGPT程序。本文主要学习了一下理论&#xff0c;什么是智能体&#xff0c;以及智能体如何重构世界。 0. 什么是智能体 智能体 LLM观察思考行动记忆 多智能体 智能体环境SOP评审路由订阅经济 用人话说&#xff0c;我理解的Agent&#xff1a; 智…

C#MQTT编程01--MQTT介绍

1、前言 近年来物联网的发展如火如荼已经渗透到我们生活的方方面面。从智能家居到工业自动化从智慧城市到智慧农业物联网&#xff0c;正在以前所未有的速度改变着我们的生活。 大家现在可能已经习惯了通过手机控制家里的灯光、空调和电视&#xff0c;这就是物联网在智能家居领域…

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

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

01循环算法

1.求小数点的某一位&#xff0c;且超出float和double的精度问题 【题目描述】 分数a/b化为小数后&#xff0c;小数点后第n位的数字是多少&#xff1f; 【输入】 三个正整数a&#xff0c;b&#xff0c;n&#xff0c;相邻两个数之间用单个空格隔开。0<a<b<100&#…

【微信小程序独立开发2】授权登录 上

前言&#xff1a;这一节设想完成的功能为进入小程序后请求授权信息&#xff0c;用户授权登录后&#xff0c;弹出宠物登记页面&#xff0c;并根据宠物类型播放背景音乐 小程序昵称头像在之前的版本获取规则为触发后弹出用户授权弹窗&#xff0c;授权后可直接获取用户头像和昵称&…

使用 CMake 和 Ninja 构建 C/C++ 项目的教程

使用 CMake 和 Ninja 构建 C/C 项目的教程 CMake 是一个跨平台的开源构建工具&#xff0c;它简化了项目的构建过程。而 Ninja 是一个快速、轻量级的构建系统&#xff0c;与 CMake 配合使用可以提高项目的构建效率。本教程将向你介绍如何使用 CMake 和 Ninja 来构建你的 C/C 项…

金融科技革命:数字化如何塑造未来经济_光点科技

当今世界&#xff0c;数字化不仅是一种趋势&#xff0c;更是深刻重塑经济和金融领域的关键力量。在这个过程中&#xff0c;金融科技&#xff08;FinTech&#xff09;崭露头角&#xff0c;成为革命性变化的代名词。以下是数字化技术在经济和金融领域的几个关键应用&#xff0c;它…

YOLOv5独家原创改进:多层次特征融合(SDI)结合PConv、DualConv、GSConv,实现二次创新 | UNet v2最新论文

💡💡💡本文独家改进:多层次特征融合(SDI)高效结合DualConv、PConv、GSConv等实现二次创新 1)替代原始的Concat; 收录 YOLOv5原创自研 https://blog.csdn.net/m0_63774211/category_12511931.html 💡💡💡全网独家首发创新(原创),适合paper !!! 💡�…

高度自适应scroll-view,uniapp项目

中间粉红的区域高度自适应,不管换什么机型&#xff0c;高度都自适应 <template><!-- 合同-待确认 --><view class"viewport"><!-- 上 --><view class"top-box"><!-- tab --><view class"tabs"><te…