虚拟化之CPU

一 cpu

1 如何查看内核版本:uname -r

2 如何查看操作系统的发行版本:cat /etc/redhat-release

3 计算机系统子的系统

  1. cpu处理器
  2. memory内存
  3. storage存储
  4. network 网络
  5. Display显示

4 进程模式

  1. 用户模式(user mode)主要处理I/O的模拟和管理,由QEMU实现.
  2. 内核模式(kernel mode)主要处理高性能和高安全的指令.
  3. 客户模式(guest mode)主要执行Guest的大部分命令.

如图为vcpu在kvmz中的三种执行模式:如果想要对虚拟机执行shutdown操作就需要空间的转换,用户空间输入交互命令virsh 来执行”shutdown“--调用libvirtd服务--交换到内核空间,调用内核空间的kvm--由kvm对虚拟机shutdown操作--返回用户空间

5  虚拟机对于物理主机来说就相当于物理主机的一个进程(虚拟机的一个cpu会生成一个进程号)

  1. 用ps命令来查看到开机状态的所有虚拟机(显示qemu为虚拟机进程)

  1. 如果虚拟机远程连接不上,则可以用kill命令将虚拟机关机

6 CMP、SMP、NUMP

1)CMP: 多核心,也指单芯片多处理器(Chip multiprocessors,简称CMP),其思想是将大规模并行处理器中的SMP(对称多处理器)集成到同一芯片内,各个处理器并行执行不同的进程

2)SMP: (Symmetric Multi-Processing),对称多处理结构的简称,是指在一个计算机上汇集了一组处理器(多CPU),各CPU之间共享内存子系统以及总线结构。在这种技术的支持下,一个服务器系统可以同时运行多个处理器,并共享内存和其他的主机资源

3)NUMA:NUMA即非一致访问分布共享存储技术,它是由若干通过高速专用网络连接起来的独立节点构成的系统,各个节点可以是单个的CPU或是SMP系统。在NUMA中,Cache 的一致性有多种解决方案,需要操作系统和特殊软件的支持。

7 查看自己cpu属于哪种架构

1)在虚拟机中#lscpu

  1. 或者在物理主机上查看虚拟机的配置文件*.xml

找到文件:find / -name *.xml |grep qemu |grep libvirt

  1. 查看制定虚拟机的.xml文件内容:     

#more /etc/libvirt/qemu/centos7.0-zx01.xml

8 如果想要修改cpu可以有多种方式修改,但都需要对虚拟机进行shutdown之后再修改才可以生效

(1)在虚拟机中修改:点击显示硬件详情--进行修改

(2)虚拟机端手动部署

(3)物理机查看配置文件,发现也修改了

(4)也可以通过修改配置文件来修改cpu的架构,但是需要进入到virsh edit centos7.0-zx01中修改(改错保存不了,可以及时发现错误,最好不要在/etc/libvirt/qemu/centos7.0-zx01.xm中修改,容易导致虚拟机重启失败)

去虚拟机端查看cpu架构:

二 CPU模型:VMM自定义策略的CPU类型,可以提供一些高级的过滤功能,同一组硬件平台上的动态迁移更加平滑和安全(注意:如果是模型cpu是需要在关机状态下进行的)

(cpu模型:在要做虚拟机迁移的两台主机上的cpu寻找相同的指令集,然后从下列图选中你想要模拟cpu品牌,可以更好的实现vmotion,但是如果选择的是host-passthrough 则会对vmotion有很大影响,需要迁移的主机也是与物理cpu相同品牌的)

三 cpu亲核

1 概念:即CPU的绑定设置,是指将进程绑定到特定的一个或多个CPU上去执行,而不允许将进程调度到其他的CPU上。

步骤:①:先要在物理机上开启透传功能

echo -e "options  kvm_intelnested=1" >/etc/modprobe.d/kvm-nested.conf  

cat  /sys/module/kvm_intel/parameters/nested

modprobe -r kvm_intel

modprobe kvm_intel

去虚拟机端查看是否开启成功:#lscpu |grep vmx(有显示则表示开启成功)

与物理主机建立连接

把镜像从物理主机导过来

创建挂载点cdrom1,进行挂载

创建本地yum源

下载软件:tigervnc-server

是否支持VT-x,是否挂载kvm

下载安装所需的命令和服务:

yum install  qemu-kvm*  virt-*  libvirt*

重启libvirtd服务:systemctl restart libvirtd

验证安装:virsh -c qemu:///system list

安装虚拟机:重启按e 进入grub 如图:linux16段尾加isolcpus=1,2            ctrl+x

qemu-img create -f qcow2  /var/lib/libvirt/images/mmmq.qco

通过安装字符界面的脚本安装虚拟机:

virt-install \

--connect  qemu:///system  \链接多个libvirtd(可省略)

--name  mmmq \取名

--memory  512 \内存(Mb)

--cpu host \

--cpu host-passthrough \(用这行)

--vcpus  4,maxvcpus=8,sockets=2,cores=1,threads=2  \

--disk  size=8  \

--disk  path=/var/lib/libvirt/images/mmmq.qcow2  \

--disk  /var/lib/libvirt/images/ac260t73.qcow2,size=260,format=qcow2,bus=virtio,sparse  \

--cdrom  CentOS-7-x86_64-Minimal-1708.iso  \

--location  /var/lib/libvirt/images/CentOS-7-x86_64-DVD-1611.iso  \

--location  http://example.com/path/to/os  \

--os-type linux \(类型)

--os-variant rhel7 \(架构;rhel7:redhat 企业版linux7)

--accelerate \(提高性能优化)

--network  bridge=virbr0  \

--network  bridge=br0  \

--graphics none \(关闭图像)

--console  pty,target_type=serial  \(链接控制台;pty:从网络链接过来,伪装用户;tty:用键盘鼠标链接通过ALT+f1234来切换用户,在控制台,用who)

--extra-args  'console=ttyS0,115200n8  serial'

红色阴影部分为写入脚本部分

安装过程:

设置虚拟机语言,时区,分区,root密码

进入二层虚拟机

在一层虚拟机上开启二层虚拟机

ps aux查看虚拟机进程号为:11615

查看各个号cpu上运行进程数

查看开始虚拟机进程在0号cpu上:

ps -eLo ruser,pid,ppid,lwp,psr,args | awk '{if($5==0) print $0}'

psr 处理器编号 lwp 线程ID ruser 运行进程的用户 pid进程ID ppid 父进程ID args 运行的命令和参数-e 显示所有进程 -L 显示LWP light weight process -o 自定义输出
用于处理workqueues ksoftirqd 用于调度CPU软中断的进程

将进程号为11615号的虚拟机转移到1号cpu上

查看1号cpu 上存在进程号为11615的进程

再查看0号cpu发现没有进程号为11615的进程了

但是发现3号cpu上有一个线程为11645的

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

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

相关文章

2024年【G1工业锅炉司炉】考试报名及G1工业锅炉司炉模拟考试

题库来源:安全生产模拟考试一点通公众号小程序 G1工业锅炉司炉考试报名是安全生产模拟考试一点通生成的,G1工业锅炉司炉证模拟考试题库是根据G1工业锅炉司炉最新版教材汇编出G1工业锅炉司炉仿真模拟考试。2024年【G1工业锅炉司炉】考试报名及G1工业锅炉…

HarmonyOS 获取位置信息

1. HarmonyOS 获取位置信息 1.1. 官方文档 权限申请 位置服务 1.2. 权限申请 1.2.1. 配置位置权限信息 "requestPermissions": [//API9之前只申请这个就可以米级定位{name: ohos.permission.LOCATION},//API9之前申请的权限//API9后两个权限同时申请才可以获取米…

链路负载均衡之DNS透明代理

一、DNS透明代理 一般来说,企业的客户端上都只能配置一个运营商的DNS服务器地址,DNS服务器通常会将域名解析成自己所在ISP内的Web服务器地址,这将导致内网用户的上网流量都集中在一个ISP的链路上转发,最终可能会造成链路拥塞&…

C++之智能指针

为什么会有智能指针 前面我们知道使用异常可能会导致部分资源没有被正常释放, 因为异常抛出之后会直接跳转到捕获异常的地方从而跳过了一些很重要的的代码, 比如说下面的情况: int div() {int a, b;cin >> a >> b;if (b 0)throw invalid_argument(&q…

windows下的反调试探究——原理

原理 我们在前面介绍了一些反调试的手段,基本上都是通过对内核的某个标志进行修改来达到反调试的效果,但是这里有一个问题就是,如果分析人员对我们的样本的API进行了hook,那么我们的反调试手段都将作废,也就是说我们还…

【LeetCode】升级打怪之路 Day 13:优先级队列的应用

今日题目: 23. 合并 K 个升序链表 | LeetCode378. 有序矩阵中第 K 小的元素 | LeetCode373. 查找和最小的 K 对数字 | LeetCode703. 数据流中的第 K 大元素 | LeetCode347. 前 K 个高频元素 | LeetCode 目录 Problem 1:合并多个有序链表 【classic】LC 2…

2核4G服务器支持多少人在线?腾讯云全访问测试

腾讯云轻量应用服务器2核4G5M配置一年优惠价165元、252元15个月、三年756元,100%CPU性能,5M带宽下载速度640KB/秒,60GB SSD系统盘,月流量500GB,折合每天16.6GB流量,超出月流量包的流量按照0.8元每GB的价格支…

WSL2安装Ubuntu18.04到指定路径(非C盘)

1 系统设置开启WSL 1.1 在搜索框搜索“启动或关闭Windows功能”或在“控制面板”->“程序”->“启用或关闭 windows 功能” 开启 Windows 虚拟化和 Linux 子系统(WSL2)以及Hyper-V 按照提示重启计算机,开启WSL。 2 将WSL2 设置为默认版本 wsl --se…

Mysql删除重复项:力扣196. 删除重复的电子邮箱

题目链接:196. 删除重复的电子邮箱 - 力扣(LeetCode) 题目描述 sql语句 # Write your MySQL query statement below delete a from person as a inner join person as b where a.email b.email and a.id > b.id 思路:内连接…

MySQL NDB Cluster 分布式架构搭建 自定义启动、重启和关闭集群Shell脚本

此次NDB Cluster使用三台虚拟机进行搭建,一台作为管理节点;而对于另外两台服务器,每一台都充当着数据节点和SQL节点的角色。注意不是MGR主从复制架构,而是分布式MySQL架构。 创建 /var/lib/mysql-cluster/config.ini Cluster全局…

uipath调用python代码获取网站验证码

用uipath自带的ocr读验证码不是很准确,选择调用python读验证码,需要导入ddddocr(3.8以下版本支持ddddocr) 用uipath程序将验证码图片保存到本地(也可以直接用python处理图片,保存到本地比较简单&#xff0…

xss.haozi.me:0X0D

alert(1) -> 记住要回车一下-->是js的一个注释符但是只能用在最前面前面有一个空格都不行

C++:String的模拟实现

模拟实现的节奏比较快,大家可以先去看看博主的关于string的使用,然后再来看这里的模拟实现过程 C:String类的使用-CSDN博客 String模拟实现大致框架迭代器以及迭代器的获取(public定义,要有可读可写的也要有可读不可写…

基于springboot+vue的医院药品管理系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

【Android】源码解析 Activity 的构成

本文是基于 Android 14 的源码解析。 当我们写 Activity 时会调用 setContentView() 方法来加载布局。现在来看看 setContentView() 方法是怎么实现的,源码如下所示: 路径:/frameworks/base/core/java/android/app/Activity.javapublic void…

Linux中服务端开发

1 创建socket,返回一个文件描述符lfd---socket(); 2 将lfd和IP,PROT进行绑定---bind(); 3 将lfd由主动变成被动监听---listen(); 4 接收一个新的连接,得到一个的文件描述符cfd--accept() --该文件描述符用于与客户端通信 5 while(1) { 接受数据&a…

【扩散模型系列3】DiT开源项目

文章目录 DiT原始项目Fast-DiT readmeSamplingTraining训练之前的准备训练DiTPyTorch 训练结果改进训练效果 Evaluation (FID, Inception Score, etc.) 总结 DiT原始项目 该项目仅针对DiT训练,并未包含VAE 的训练 项目地址 论文主页 Fast-DiT readme 该项目仅针…

性能优化篇(七) UI优化注意事项以及使用Sprite Atlas打包精灵图集

UI优化注意事项 1.尽量避免使用IMGUI(OnGUI)来做游戏时的UI,因为IMGUI的开销比较大。 2.如果一个UGUI的控件不需要进行射线检测,则可以取消勾选Raycast Target 3.尽量避免使用完全透明的图片和UI控件。因为即使完全透明,我们看不见它&#xf…

论文笔记:Code Llama: Open Foundation Models for Code

导语 Code Llama是开源模型Llama 2在代码领域的一个专有模型,作者通过在代码数据集上进行进一步训练得到了了适用于该领域的专有模型,并在测试基准中超过了同等参数规模的其他公开模型。 链接:https://arxiv.org/abs/2308.12950机构&#x…

[cg] Games 202 - NPR 非真实感渲染

NPR特性(基于真实感渲染) 真实感--》翻译成非真实感的过程 NPR风格 需要转换为渲染中的操作 1.描边 B-->普通边界(不是下面几种的) C-->折痕 M-->材质边界 S-->需要在物体外面一圈上,并且是多个面共享…