虚拟化之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的

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

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

相关文章

CTP-API开发系列之四:接口对接准备

CTP-API开发系列之四:接口对接准备 CTP-API开发系列之四:接口对接准备CTP-API文件清单CTP-API通用规则命名规则Spi与Api CTP-API通讯模式开发语言选择 CTP-API开发系列之四:接口对接准备 CTP-API文件清单 文件名说明ThostFtdcTraderApi.h交…

微前端之什么是微前端

什么是微前端 微前端分类 基于路由的微前端:组件化微前端:iframe嵌入式微前端: 优点缺点 动态加载/懒加载微前端:微应用容器化方案: 微前端解决方案 single-spa阿里巴巴 Cloud Alfaiframe 方案Web ComponentsModule Fe…

kafka消费端消息去重方案

背景 我们在日常工作中,消费kafka消息是一个最常见的操作,不过由于kafka队列中经常包含重复的消息,并且消息量巨大,所以我们消费端总是需要先把消息进行去重后在消费,以减少消费端的压力,那么日常中我们一…

Android视角看鸿蒙第一课(工程目录)

Android视角看鸿蒙第一课(工程目录) 导读 鸿蒙马上就来了,这个工作很有可能落到Android开发的头上,既是机遇也是挑战,希望能跟上时代的浪潮,迫不得已开始学习鸿蒙开发,顺带分享记录下 我的学…

四、神经网络语言模型(NNLM)

神经网络(Neural Network,NN)主要由输入层、隐藏层、输出层构成,输入层的的节点数等于待处理数据中输入变量的个数(每一个变量代表了一个特征),输出层的节点数等于与每个输入变量关联的输出的数…

docker mysql主从复制

新建主服务器容器实例3301 mysql 主 3301 docker run -p 3301:3306 --name mysql-master \ -v /mydata/mysql-master/log:/var/log/mysql \ -v /mydata/mysql-master/data:/var/lib/mysql \ -v /mydata/mysql-master/conf:/etc/mysql \ -v /home/mysql/mysql-files:/var/lib/…

微信小程序开发学习笔记《18》uni-app框架-网络请求与轮播图

微信小程序开发学习笔记《18》uni-app框架-网络请求 博主正在学习微信小程序开发,希望记录自己学习过程同时与广大网友共同学习讨论。建议仔细阅读uni-app对应官方文档 一、下载网络请求包 这个包是以前黑马程序员老师写的一个包,跟着课程学习&#x…

【仿真总结】基于matlab的传递函数计算与绘图

前言 在DC-DC电路控制算法中,PID控制是最常见且实用的,但实现前提有二,一是需要手算电路传递函数,二是需要将实际电路元件数值代入计算,第一步无法避免,但是在进行第二步时,存在大量基础、细致的…

Qt入门(一)Qt概述

Qt是什么? Qt是一个跨平台应用开发框架。 Qt既包括了一系列的Qt库,还包括诸多配套的开发工具如QtCreater,GUI Designer。Qt本身是由C开发的,但是也提供了其他编程语言的接口。 Qt的定位以及同类 学一种技术,最重要的是…

蓝桥杯-Set

目录 HashSet类常用方法 1 add(Object obj)方法 2 size() 方法 3 remove(Object obj)方法 4 contains()方法 5 clear() 方法 例题实战 set 一个不允许出现重复的元素,并且无序的集合,主要有HashSet实现类。 在判断重复元素的时候,Set集…

基于Python实现银行卡识别

在本文中将介绍如何使用Python和深度学习技术来实现银行卡识别功能。银行卡识别是一个在金融、安全等领域具有重要应用的问题,将使用深度学习模型来实现银行卡图像的识别和分类。 目录 引言数据集准备预处理和特征提取模型选择与训练模型评估与性能优化部署与应用 引…

第三百八十六回

文章目录 概念介绍使用方法示例代码 我们在上一章回中介绍了Snackbar Widget相关的内容,本章回中将介绍TimePickerDialog Widget.闲话休提,让我们一起Talk Flutter吧。 概念介绍 我们在这里说的TimePickerDialog是一种弹出窗口,只不过窗口的内容固定显示…

[Redis]——数据一致性,先操作数据库,还是先更新缓存?

目录 一、操作缓存和数据库时有三个问题需要考虑: 1.删除缓存还是更新缓存? 2.如何保证缓存与数据库的操作同时成功或失效 3.先操作缓存还是先操作数据库(多线程并发问题) 二、 缓存更新的最佳策略 一、操作缓存和数据库时有…

heic怎么转换成jpg?3个方法帮你一键批量转换

heic怎么转换成jpg?在日常生活中,将HEIC转换为JPG可以为我们带来诸多便利。JPG格式作为一种广泛被接受的图片格式,不仅兼容性更强,还能在各种设备和平台上顺畅显示。这意味着,无论是上传到社交媒体,还是发送…

观其大略之HybridCLR学习笔记

问题背景 1 现有热更方案的开发效率、性能没有到达极限,还有提升的空间 2 ios多平台政策导致热更新受限问题,ios禁止jit。根据我查找的资料,ios的代码段启动的时候就确定了,不能增加新的代码段。IOS封了内存(或者堆&…

MySQL基础-----SQL语句之DDL数据定义语句

目录 前言 开启登录数据库 一、数据库操作 1.查询所有数据库 2.切换使用数据库 3.查询当前使用的数据库 4.创建数据库 创建一个hello数据库, 使用数据库默认的字符集。 创建一个itheima数据库,并且指定字符集 5.删除数据库 二、表操作 1.查询当前数据库所有…

html样式排版

<template><div class"box"><div class"header">头部</div><div class"main"><div class"left">菜单</div><div class"right"><div class"right-contentr"&g…

可调恒定电流稳压器NSI50150ADT4G车规级LED驱动器 提供专业的汽车级照明解决方案

NSI50150ADT4G产品概述&#xff1a; NSI50150ADT4G可调恒定电流稳压器 (CCR) &#xff0c;是一款简单、经济和耐用的器件&#xff0c;适用于为 LED 中的调节电流提供成本高效的方案&#xff08;与恒定电流二极管 CCD 类似&#xff09;。该 (CCR) 基于自偏置晶体管 (SBT) 技术&…

thinkphp学习12-数据库的时间查询

传统方式 可以使用>、<、>、<来筛选匹配时间的数据&#xff1b; public function index() {$res Db::name(user)->where(create_time, >, 2018-1-1)->select();dump($res); }可以使用 between 关键字来设置时间的区间&#xff1b; public function in…

【vue】ant-design弹出框无法关闭和runtimecore提示isFucntion is not function的问题修复

【vue】ant-design弹出框无法关闭和runtimecore提示isFucntion is not function的问题修复&#xff0c;初步分析是vue发布3.4版本以后引起的兼容性问题。 问题截图&#xff1a; 1.isFucntion is not function&#xff0c;是由于vue升级后众多插件版本不匹配造成的问题 2.弹框…