2.1 虚拟化技术

  虚拟机Virtual Machine与容器化技术(代表Docker)都是虚拟化技术,两者的区别在于虚拟化的程度不同。

  Docker为代表的容器化技术并不是虚拟机。

  虚拟机是在物理资源层面实现的隔离,相对于虚拟机,Docker是你APP层面实现的隔离,并且省去了虚拟机操作系统(Guest OS)),从而节省了一部分的系统资源;Docker守护进程可以直接与主操作系统进行通信,为各个Docker容器分配资源;它还可以将容器与主操作系统隔离,并将各个容器互相隔离。虚拟机启动需要数分钟,而Docker容器可以在数毫秒内启动。由于没有臃肿的从操作系统,Docker可以节省大量的磁盘空间以及其他系统资源。

  虚拟机与容器docker的区别,在于vm多了一层guest OS,虚拟机的Hypervisor会对硬件资源也进行虚拟化,而容器Docker会直接使用宿主机的硬件资源。

下面我们采用形象的比喻区分两者的隔离级别:

  服务器:比作一个大型的仓管基地,包含场地与零散的货物——相当于各种服务器资源。

  虚拟机技术:比作仓库,拥有独立的空间堆放各种货物或集装箱,仓库之间完全独立——仓库相当于各种系统,独立的应用系统和操作系统。

  Docker:比作集装箱,操作各种货物的打包——将各种应用程序和他们所依赖的运行环境打包成标准的容器,容器之间隔离。

2.2 虚拟技术对比

隔离性

  在于隔离性上面,由于vm对操作系统也进行了虚拟化,隔离的更加彻底。而Docker共享宿主机的操作系统,隔离性较差。

运行效率

  由于vm的隔离操作,导致生成虚拟机的速率大大低于容器Docker生成的速度,因为Docker直接利用宿主机的系统内核。比如openstack能够以10台/min的速度创建虚拟机,而docker可以做到在几秒钟之内创建大量容器,它们的启动速度是在数量级上的差距。

  因为虚拟机增加了一层虚拟硬件层,运行在虚拟机上的应用程序在进行数值计算时是运行在Hypervisor虚拟的CPU上的;另外一方面是由于计算程序本身的特性导致的差异。虚拟机虚拟的cpu架构不同于实际cpu架构,数值计算程序一般针对特定的cpu架构有一定的优化措施,虚拟化使这些措施作废,甚至起到反效果。

资源利用率

  在资源利用率上虚拟机由于隔离更彻底,因此利用率也会相对较低。

  因为虚拟机增加了一层虚拟硬件层,运行在虚拟机上的应用程序在进行数值计算时是运行在Hypervisor虚拟的CPU上的;另外一方面是由于计算程序本身的特性导致的差异。虚拟机虚拟的cpu架构不同于实际cpu架构,数值计算程序一般针对特定的cpu架构有一定的优化措施,虚拟化使这些措施作废,甚至起到反效果。比如对于本次实验的平台,实际的CPU架构是2块物理CPU。

最新文章

  1. git的配置
  2. 第15章 使用Postfix与Dovecot收发电子邮件
  3. zookeeper源码学习一——zookeeper启动
  4. jquery不熟悉的方法
  5. 【转】Android开发中Handler的使用
  6. dreamweaver中用正则表达式查找替换批量删除 tppabs标签的方法
  7. Spring与Struts2整合
  8. MVC5-Scaffolder
  9. Mysql 技巧
  10. 改变radio默认样式
  11. [刷题]Codeforces 785D - Anton and School - 2
  12. LAMP环境的搭建(一)----Apache安装
  13. java中的二叉树排序问题
  14. 终端(命令行)连接MySQL
  15. HighCharts使用更多图表HighChartsMore
  16. Mybatis:Eclipse引入dtd约束文件使得xml文件有提示
  17. nginx php上传大文件的设置(php-fpm)
  18. Linux中查看各文件夹大小(扫盘)
  19. 《DSP using MATLAB》Problem 4.3
  20. 系统批量运维管理器pexpect的使用

热门文章

  1. python 书籍推荐 二
  2. ajax readyState=4并且status=200时,还进error方法
  3. mysql-10临时表、复制表
  4. php通过COM类调用组件的实现代码
  5. Mysql插入数据报错java.sql.SQLException: Incorrect string value: '\xF0\x9F\x93\x8D\xE6\x88...'
  6. canvas设置阴影
  7. 常规Java工具,算法,加密,数据库,面试题,源代码分析,解决方案
  8. django-中间件,流量统计实例
  9. PHP环境 PDOException PDOException: could not find driver
  10. MS SQL 流程控制语句