关于性能测试中使用物理机和虚拟机的区别

关于性能测试中使用物理机和虚拟机的区别

需要说明的情况,以下对比表格主要针对性能测试

  举例的物理机和虚拟机的数值

  CPU  2Ghz
  内存 4GB
  网卡 100M
  硬盘 200G

  虚拟机所在的物理机器称之为“宿主机”,单独的物理机和虚拟机是在数值等同的情况下进行以下比对:

关于性能测试中使用物理机和虚拟机的区别_第1张图片

  其他:

  VM实现:

  VMware 虚拟化的工作原理是,直接在计算机硬件或主机操作系统上面插入一个精简的软件层,用软件模拟计算机软硬件环境,占用物理机本身的资源,将这部分资源“硬件化”--划分了一个特定的可以格式化的分区,在其中包含cpu的应用资源、内存、硬盘、网络资源等等,建立完整的运行环境。

  1、虚拟机的CPU实现:

  由于虚拟机是基于一个软件层实现的,CPU的处理能力实际上是物理机进程调度虚拟机组件来实现的,虚拟机的CPU取决于宿主机的CPU分配。

  2、虚拟机的内存分配:

  无论怎样分配,推荐的内存的大小值不能超过所在的物理宿主机的内存,而且物理机的内存动态调整会直接影响到虚拟机的内存使用率;如果内存值大于宿主机的物理内存值,最终还是会导致宿主机本身在内存和硬盘间调度。

  同时,虚拟机的内存实际使用率低于虚拟机的内存分配值,仍有一部分用于虚拟机的运作-以上两个原因决定了虚拟机的内存值是一个时刻变动的动态值,并且在物理机内存恶化的情况下,表现更糟糕。

  3,虚拟机的网络使用:

  1、桥接Bridge

  bridge方式里面,就是利用网卡的这种功能为每一个VM分配一个外网的IP;每个VM在网络上的地位与宿主机是对等的。可认为每一个VM都是一个网络上的物理机。

关于性能测试中使用物理机和虚拟机的区别_第2张图片


 2、Host only

  第3种的NAT方式实际上是在这种方式上加了一个功能而已(增加一项NAT服务)。host only 用的是vmnet1,它包括两个组件,一个虚拟的网卡(Host Virtual Adapter),一个网拟的交换机(Virtual Switch),虚拟的网卡自动连到这个交换机上。Host Virtual Adapter和各个虚拟机的网卡一起已经组成了一个局域网,而且Host Virtual Adapter所在的宿主机还有一个网卡(物理网卡)连接着外网—不过这个宿主机上的两个网卡间不能通信。虚拟网卡不能和物理网卡通讯,导致了VM不能访问外网,但通过Host Virtual Adapter,VM们可以访问host,所以叫做 host only。

  另外,让VM们能够访问外网的方法:

  把host 配置成一个简单的NAT服务器:在Windows XP 下使用的方法:打开网络连接,右击物理网卡的连接,属性,高级,找到 Internet Connection Sharing(ICS),勾选,VMware默认装了两个网卡:vmnet1和。确定vmnet1共享物理网卡的IP,XP会弹出一个对话框,提示再用共享文件--使用ICS后,不能在局域网里共享文件---系统会将vmnet1上的 Host Virtual Adapter的IP设为 192.168.0.1,未提供DHCP,将VM的IP静态地设为192.168.0.x,网关设成Host Virtual Adapter(192.168.0.1),VM们的DNS也要设置成静态的,最好设置成宿主机的DNS。

关于性能测试中使用物理机和虚拟机的区别_第3张图片

  3、NAT

  增加一项NAT服务,而这个NAT服务并不连接 Host Virtual Adapter与物理网卡, 它相当于又虚拟出来一个网卡--默认情况下,这个未命名的网卡插到mnet8的交换机的第二个插槽上。VMware虚拟机配置的网络号192.168.221.0,那么这个无名网卡就是192.168.221.2,而Host Virtual Adapter是192.168.221.1,你的VM们的网络连接的配置要设成自动获取IP和DNS,这是因为这个NAT服务还提供了DHCP服务,DHCP服务除了给VM们提供IP外,还可以给它们提供DNS服务器的IP。NAT方式中,Host Virtual Adapter并没有提供特殊的作用,Host Virtual Adapter在各种配置中都起了一个相同的作用,就是与主机进行通信。

关于性能测试中使用物理机和虚拟机的区别_第4张图片

  4、虚拟机应用程序的运行:

  这个涉及到虚拟机的硬盘、内存和CPU,由于虚拟机是一个“特殊”的应用程序,本身就运行在物理机的抽象层上,除硬盘的访问方式/速度完全一致外,VM访问CPU和内存、网络这几大块,都是离不开宿主机的分配和影响的,特别是在性能测试中,多个因素的综合影响,会导致资源的争用,而无法具体分析在哪一个环节出现了瓶颈:如访问数据库或是中间件,只知道反应缓慢,请求超时,而无法确实是因为CPU的处理速度跟不上还是因为网络拥塞导致,抑或是内存紧张而调度失败,在VM中宿主机的动态对VM这组进程的调整,更是无法掌控和预测的。

  由此,可以看到,确保性能测试能顺利有效的进行,选择物理机的实体测试,可以宿主机对其上运行VM的干扰及影响,提升性能测试的有效性。

你可能感兴趣的:(关于性能测试中使用物理机和虚拟机的区别)