当前位置: 首页 > news >正文

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特性,

相关文章:

KVM Vcpu概述

KVM Vcpu概述 Intel VTSMP系统CPU过载使用CPU模型CPU绑定和亲和性CPU优化 Intel VT Intel的硬件虚拟化技术大致分为3类: 1、VT-x技术:是指Intel处理器中的一些虚拟化技术支持,包括CPU中最基础的VMX技术,也包括内存虚拟化的硬件支…...

linux服务器ftp部署

1、ftp服务安装 # 检查是否安装 1、查询安装列表 sudo systemctl list-unit-files --typeservice | grep ftp 2、查询ftp服务状态 sudo service vsftpd status 或者 sudo systemctl status vsftpd # yum安装,一般yum仓库都有ftp安装包 sudo yum install vsftpd # 启…...

NSIS 安装windows 安装包(包括QT和MFC)

NSIS(Nullsoft Scriptable Install System)是一个开源的 Windows 系统下安装程序制作程序。它提供了安装、卸载、系统设置、文件解压缩等功能。 基本概念 区段 是对应某种安装/卸载选项的处理逻辑,该段代码仅当用户选择相应的选项才被执行…...

K8S----PVPVCSC

一、简介 1、PV(persistent volume)–持久卷 PV是集群中的一块存储,可以由管理员事先静态(static)制备, 也可以使用存储类(Storage Class)来动态(dynamic)制备。 持久卷是集群资源,就像节点也是集群资源一样。PV 持久卷和普通的 Volume 一样, 也是使用卷插件(volume p…...

RSIC-V“一芯”学习笔记(一)——概述

考研的文章和资料之后想写的时候再写怕趴 文章目录 一、阶段设计二、环境、开发语言和工具三、最重要的两个观念四、处理器芯片设计五、处理器芯片设计包含很多软件问题六、处理器芯片的评价指标七、复杂系统的构建和维护八、专业世界观九,提问的艺术(提问模板)十、…...

MATLAB读取图片并转换为二进制数据格式

文章目录 前言一、MATLAB 文件读取方法1、文本文件读取2、二进制文件读取3、 图像文件读取4、其他文件读取 二、常用的图像处理标准图片链接三、MATLAB读取图片并转换为二进制数据格式1、matlab 源码2、运行结果 前言 本文记录使用 MATLAB 读取图片并转换为二进制数据格式的方…...

时序数据库

SELECT *,max(lp_index) FROM lp.tdm_lp_original_data where ts > 2023-12-28 18:11:33.521 and ts < 2023-12-29 19:03:12.148 INTERVAL(2s) FILL(PREV) 在时间序列数据库TDengine中&#xff0c;FILL函数与GROUP BY子句结合使用&#xff0c;提供了对于在指定间隔内…...

【第一次使用finalshell连接虚拟机内的centos】小白处理方式

第一次使用finalshell连接centos7的时候&#xff0c;因为都是新环境什么都没有配置&#xff0c;所以就需要安装finalshell和对新的centos7 进行一些配置。 安装finalshel&#xff0c;默认不安装d盘&#xff0c;就需要对安装路径做一下调整&#xff0c;其余都是下一步默认安装的…...

Pinia 踩坑记录

1、子store中如何使用router 以user.ts 这个store为例 错误写法 // 说明&#xff1a;不能使用插件实例化router&#xff0c;否则获取不到router的函数 // 错误写法如下&#xff1a;import { useRouter } from "vue-router"actions:{login(){const router useRout…...

在ASP.NET MVC中使用JQuery提供的弹出窗口(模态窗口)

在ASP.NET MVC中使用JQuery提供的弹出窗口&#xff08;模态窗口&#xff09; 原理 使用<div>图层灵活显示在浏览器的任何位置。默认情况下指定<div>不可见 引用 样式表 在JQuery的官方网站可以下载对应的css样式表。打开官网的样例页。 找到样式表引用路径 …...

基本工具配置

github加速 github.ur1.fun java # ubuntu20.04 安装 openjdk-17-jdk sudo apt install openjdk-17-jdk java -version javac -version which java参考 openjdk gradle换源 修改gradle-wrapper.properties distributionBaseGRADLE_USER_HOME distributionPathwrapper/dis…...

计算机网络——应用层(3)

计算机网络——应用层&#xff08;3&#xff09; 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU) 点对点&#xff08;P2P&#xff09;P2P网络一般用途优点缺点总结 套接字编程基本步骤UDP套接字TCP套接字基本步骤 二者对比 小程一言 我的计算机网络专栏&#xff0c;是自…...

配置ssh实现互相免密登陆

一、实验要求 通过两台linux主机 配置ssh 实现互相免密登陆 的操作 二、实验思路 免密登录我们可以理解为使用公钥登录&#xff0c;这里分别使用两台主机&#xff08;client&#xff09;和&#xff08;server&#xff09;作为实验主机。 首先让client免密登录server&#x…...

【UEFI基础】EDK网络框架(ARP)

ARP ARP协议说明 从这里开始涉及到的网络协议都是比较通用的了&#xff0c;在一般的TCP/IP四层模型中都能够看到这些内容&#xff0c;不过这里主要介绍的还是其在BIOS下的实现&#xff0c;但是在此之前还是需要先说明ARP的作用。 ARP的全称是Address Resolution Protocol&am…...

Linux进阶课:目录(文件夹)与文件操作

1、ls与cat的区别是是什么&#xff1f; 答&#xff1a;ls命令的含义是list&#xff0c;显示当前目录中内容。不加参数时它显示当前目录中除隐藏文件外的所有文件及目录的名字。 cat命令是linux下的一个文本输出命令&#xff0c;通常是用于查看某个文件的内容的。 2、[abc]这个…...

Flink自定义Source模拟数据流

maven依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.…...

[易语言]使用易语言部署工业级人脸检测模型

【框架地址】 https://github.com/ShiqiYu/libfacedetection 【算法介绍】 Libfacedetection是一个开源的计算机视觉库&#xff0c;主要用于实时的人脸检测。它利用深度学习技术&#xff0c;特别是卷积神经网络&#xff08;CNN&#xff09;&#xff0c;实现了高精度的脸部定位…...

2024年海外推广怎么做?

要说如何做海外推广&#xff0c;绝大多数的外贸小伙伴都能说上一些&#xff0c;但是大部分人对于推广系统知识略知一二&#xff0c;没有构建一个系统化的知识框架。 海外推广的几大步骤 1.定策略 做海外推广前&#xff0c;我们需要制定一套营销策略&#xff0c;需要去定义一…...

Redis分布式锁--java实现

文章目录 Redis分布式锁方案&#xff1a;SETNX EXPIRE基本原理比较好的实现会产生四个问题 几种解决原子性的方案方案&#xff1a;SETNX value值是&#xff08;系统时间过期时间&#xff09;方案&#xff1a;使用Lua脚本(包含SETNX EXPIRE两条指令)方案&#xff1a;SET的扩展…...

好消息,Linux Kernel 6.7正式发布!

据有关资料显示&#xff0c;该版本是有史以来合并数最多的版本之一&#xff0c;包含 17k 个非合并 commit&#xff0c;实际合并的超过1K个。 那么该版本主要有哪边变化呢&#xff1f;下面我来一一列举一下&#xff1a; Bcachefs文件系统已被合并到主线内核&#xff0c;这是一款…...

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇&#xff0c;在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下&#xff1a; 【Note】&#xff1a;如果你已经完成安装等操作&#xff0c;可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作&#xff0c;重…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python&#xff5c;GIF 解析与构建&#xff08;5&#xff09;&#xff1a;手搓截屏和帧率控制 一、引言 二、技术实现&#xff1a;手搓截屏模块 2.1 核心原理 2.2 代码解析&#xff1a;ScreenshotData类 2.2.1 截图函数&#xff1a;capture_screen 三、技术实现&…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

【力扣数据库知识手册笔记】索引

索引 索引的优缺点 优点1. 通过创建唯一性索引&#xff0c;可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度&#xff08;创建索引的主要原因&#xff09;。3. 可以加速表和表之间的连接&#xff0c;实现数据的参考完整性。4. 可以在查询过程中&#xff0c;…...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码&#xff0c;写上注释 当然可以&#xff01;这段代码是 Qt …...

c++ 面试题(1)-----深度优先搜索(DFS)实现

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 地上有一个 m 行 n 列的方格&#xff0c;从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子&#xff0c;但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit&#xff08;传感器服务&#xff09;# 前言 在运动类应用中&#xff0c;运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据&#xff0c;如配速、距离、卡路里消耗等&#xff0c;用户可以更清晰…...

OD 算法题 B卷【正整数到Excel编号之间的转换】

文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的&#xff1a;a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...

深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向

在人工智能技术呈指数级发展的当下&#xff0c;大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性&#xff0c;吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型&#xff0c;成为释放其巨大潜力的关键所在&…...