Docker与虚拟化

Docker与虚拟化

1虚拟化

1.1虚拟化概述

通过虚拟化技术将一台计算机虚拟为多台逻辑计算机,在一台计算机上同时运行多个逻辑计算机,同时每个逻辑计算机可运行不同的操作系统。应用程序都可以在相互独立的空间内运行而互相不影响,从而提高计算机的工作效率。

①在一个操作系统中(win10)模拟多个操作系统(centos、win10、suse),同时每个操作系统可以跑不同的服务(ngint tomcat),从而实现一台宿主机搭建一个集群(从整体)

②通过软件/应用程序的方式,来实现物理硬件的功能(ensp)

以软件形式实现物理设备的功能(二层交换机、路由器、三层交换机等)

虚拟化将应用程序和系统内核资源进行解耦,以操作系统级别进行隔离,目的是提高资源利用率、

1.2cpu时间分片

正常每个任务以轮询的方式去处理,这个时候一个CPU一个整体。
以下是针对的CPU单位时间内的一个资源。按时间划分,1秒划分成10个0.1秒,每个0.1秒可以全力处理10单位的任务。在1秒内,都在全力工作。
cpu 1s全力运转的性能——》逻辑分割成分成了10份,可以理解为在单位时间内可以处理10个任务,每一个0.1s cpu是满的。原先分片前100M以下的任务一次只可以处理1个,现在100M的任务一次可以处理10个。这就是时间分片的一个概念。
虚拟化作用——》缓解/解决了资源利用率的问题

1.3CPU虚拟化瓶颈

cpu分片后每个任务处理性能会打对折。

如果是50m及50m以下的任务的话,虚拟化后的,1s模拟10个cpu,可以处理10个。虚拟化后的性能更高。
如果是50+m的任务的话,物理硬件的性能就会比虚拟化的性能高了。虚拟化的cpu会卡顿。所以在极度吃资源的情况下,例如mysql高并发这种,就不适合用虚拟化。

1.4 虚拟化工作原理

image-20220905085627972

两大核心组件:QEMU、KVM

QEMU:

①可以理解为队列,核心目的是调用资源内核中的资源,需要把KVM逻辑分割出来的资源运输给QEMU,再给虚拟机。

②QEMU它并不是直接调用,而是用I/O方式调用,QEMU把资源调用来的过程借用ioctl,QEMU借助libvirt这个工具调用ioctl,再通过接口,给虚拟机应用程序。

KVM:

①用来逻辑分割物理资源,抽象化为虚拟化资源,根据VMM里的配置,会逻辑分割出多少G,给应用程序,去进行虚拟化。

②只接受来自QEMU的请求指令。对于应用程序直接过来的敏感指令会拦截,然后通过接口发给QEMU,让QEMU判断是否需要执行,可以的话,再下来,不可以的话,打回去,不执行该敏感指令。

对于workstation而言——》硬件辅助虚拟化,表现形式在处理器里面有一个虚拟化引擎,可以勾取硬件辅助虚拟化,看到虚拟接口/dev/kvm,可以加强

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值