虚拟机 全局代理 主机代理_比较虚拟代理与真实代理的性能

article/2025/8/19 20:23:16

云计算的关键基础是虚拟化。 面向云的设计人员,开发人员和管理员需要问自己的一个问题是:“虚拟化组件的性能水平如何与其“真实”物理对应物相提并论?” “如果存在负面差距,我该如何克服呢?”

本文介绍了在虚拟机(VM)上运行的IBM®Rational®Performance Tester代理上进行的一系列实验的结果,并提供了有关虚拟与“真实”参数的一些基本见解。

实验背后

我们解释了一系列实验,其中Rational Performance Tester代理在虚拟机上运行,​​并将这些结果与在非虚拟化硬件上运行相同的测试进行比较。 在检查我们使用的虚拟化环境之前,让我们从使用的术语,使用的方法和结果摘要开始。

术语

简而言之,您将可以通过了解以下术语来进行实验:

Rational Performance Tester代理
模拟成千上万向服务器发出请求的用户的软件。
Vuser
虚拟用户。 每个虚拟用户在测试过程中会模拟许多用户。 正在运行的vuser首先以具有唯一用户身份的脚本执行。 脚本完成后,vuser将选择另一个唯一的用户标识,并作为该新的唯一用户标识再次执行脚本。 只要vuser正在运行,vuser就会重复此过程,以选择新的用户身份并执行脚本。
真正的代理商
在非虚拟硬件上运行的RPT代理。
虚拟机
虚拟机。 虚拟代理是在VM上运行的RPT代理。
vMotion
VM管理器将VM映像从一台物理机移动到另一台物理机时。
高原
表示测试期间处于活动状态的相同数量的vuser的时间段。
TPS
每秒事务数。 TPS和PPS(每秒页面数)可互换使用,以衡量吞吐量。
半虚拟化
一种虚拟化技术,向虚拟机提供软件接口,该软件接口与基础硬件的接口相似但不相同。

方法

使用真实的RPT代理和虚拟的RPT代理多次运行相同的性能测试。

性能基准涉及由不同的模拟用户执行的许多不同的HTTP请求。 基准测试和测试中的系统不是本文的重点。 本文的重点是生成模拟负载的RPT代理。

每个测试包含三个模拟2,000个vuser的5分钟运行和三个模拟2,500个vuser的5分钟运行。 每个测试使用真实代理运行两次,使用虚拟代理运行两次。

在每个测试中,有五台运行RPT代理的计算机。 其中一台机器是一台真正的机器,仅运行100个vuser。 那台机器被用作比较点。 它永远不会承受足以导致其资源争用的负载。 但是,它确实运行了足够多的vuser来生成可用的样本量。 这使我们能够将轻负载的真实计算机与重负载的VM和真实计算机进行比较。

在5分钟的运行中进行分析。 3次5分钟的跑步也与15分钟的平稳期相结合。 较长的运行可为每个间隔提供更多的数据点。 数据点越多,平均值的稳定性越高。

我们还进行了一项实验,其中在负载测试期间将虚拟代理从一台物理机移动到另一台物理机。 我们称该过程为vMotion。

总体结果摘要

在最初的一组测试中,虚拟代理报告的响应时间和吞吐量比真实代理报告的响应时间变化更大。 对于具有响应时间标准的基准,这种差异会引起问题。 随后的分析和实验导致VM网络优化设置减少了响应时间的变化。 进行适当的调整后,VM可以充当RPT代理。

迁移虚拟代理(vMotion)的实验显示,在VM移动过程中,报告的响应时间达到峰值。 结论是,VM迁移一定是罕见的。 分析人员必须知道它何时发生,因为它可能会影响测试结果。

现在让我们看一下虚拟化环境。

虚拟化环境的描述

在IT领域,解决给定问题总是有不止一种方法。 在设计良好的虚拟化基础架构领域中,尤其是其中的可能性几乎是无限的。 重要的是要了解,此处描述的基础结构设计不是“推荐的最佳实践”或“模型环境”,而是试图创建一种适用于为其提供托管的实验室环境的解决方案的尝试。

任何虚拟化基础架构都包含三个主要部分:服务器,存储和网络。 这些测试所使用的环境:

  • 服务器。 这些服务器由IBM System x3850 X5组成。 这些服务器均装有四个Intel Xeon X7560 CPU和512GB RAM。 服务器在物理上和逻辑上都分为八台计算机的群集。 稍后将详细介绍这种机器集群。
  • 存储基础架构。 这些服务器的存储由冗余光纤通道SAN结构组成。 通过服务器上的双端口主机总线适配器和冗余的机架顶SAN交换机,可以使光纤网冗余。 然后,将这些交换机连接到一个较大的结构中,该结构由到多个IBM DS5300存储连接网络(SAN)的多个上行链路组成。 每套八个服务器放置在一个主机组中,该主机组只能访问SAN上的某些逻辑单元号(LUN)。 主机组中的每个主机只能看到该主机组可用的存储。
  • 网络基础设施。 这些服务器的网络由一个100MB管理链路和四个1GB链路组成,每个服务器总共有五个以太网连接。
    • 100MB管理链接用于与板载集成管理模块进行通信,该模块可实现对服务器的远程控制台访问以及监视硬件状态的能力。
    • 四个1GB链接分为两组,每组两个连接:
      • 第一组用于虚拟机的数据通信。
      • 第二组用于管理到主机服务器的通信。

管理流量保持与私有内部网络隔离,而数据流量则允许进入更大的公共网络。 这样做是为了减少数据网络上的通信量,并确保管理通信的安全性。 每组链接进一步分为活动链接和备用链接。 活动和备用链接的这种组合可确保冗余。

为了能够连接多个专用和公用网络,使用了VLAN标记。 从任何给定虚拟机离开的每个数据包都标记有适当的VLAN号。 这样可以访问整个环境中的大量子网。 它还使虚拟机通过称为迁移的过程从一个计算机群集迁移到另一个群集。

图1描绘了虚拟化环境。

图1.虚拟化环境
虚拟化环境

真正的代理在具有两个2.8GHz处理器和2GB RAM的Intel®Xeon®计算机上运行。 这些机器有1GB以太网卡。

虚拟代理运行RedHatLinux®。 真正的代理运行Windows®Server2003。如果虚拟代理和真正的代理在相同的硬件和软件上运行会更好,但这不是一个选择。 我们确实还有其他证据表明,运行在Linux上的真实代理在两次运行之间的吞吐量变化小于1%。 这与我们在真实的Windows代理中看到的相似。

我们用作控制真实计算机的计算机是运行Windows Server 2003的Intel Xeon。它具有两个3.2GHz处理器。 启用了超线程。 有3.5GB的RAM。 它有一个100MB的以太网卡。 它仅运行100个vuser。 它不需要像其他代理一样强大。

说明结果

现在,我们将向您展示一些图表,这些图表说明了我们得出的结论背后的数字。 我们将向您显示在应用网络调整之前和之后的吞吐量和响应时间。

未调整网络的吞吐量和响应时间

第一张图(图2)显示了在应用网络调整之前虚拟化代理报告的吞吐量和响应时间。 可以将其与第二张图(图3)进行比较,第二张图显示了与真实代理相同的信息。 这些图来自2,500个vuser工作量平稳期。

图2.虚拟代理,未调整的网络,2,500个vuser
虚拟代理,未调整的网络,2,500个vuser
图3.真实代理,未调整的网络,2,500个vuser
真实代理,未调整的网络,2,500个vuser

这些图说明,虚拟代理的响应时间和吞吐量报告比实际代理变化更大:

  • 虚拟代理报告的响应时间从188.6ms到104.5ms不等。 那是48.1毫秒的范围。
  • 真实代理报告的响应时间从148.4ms到120.6ms不等; 那是27.8毫秒的范围

VM代理报告的页面命中率范围为215.9 PPS至219 PPS。 虚拟代理的差异为3.1 PPS。 真实代理商报告的范围为218.5 PPS至219.3 PPS。 两者相差0.8 PPS。 再次,这说明虚拟代理在其报告的数据中显示出比真实代理更高的方差。

调整虚拟机上的网络适配器后

在第一组测试显示虚拟代理报告的响应时间有很大差异之后,我们更改了计算机使用的虚拟网络适配器的类型。

您可以将其视为关闭物理系统的以太网适配器。

最初,虚拟机被配置为使用“灵活”适配器,这基本上是VMware允许根据系统需求选择适配器的方式。 这些适配器在理论上非常有效,而在实践中却不太理想。 VMware放弃了它们,而使用VMXNet3或VMXNet2适配器。 还可以选择使用E1000虚拟网络适配器,该适配器基本上是模拟的E1000英特尔网卡。

我们切换了灵活适配器,转而使用VMXNet3适配器。 这为系统的所有网络流量提供了性能提升。 从技术上说,VMXNet3适配器是半虚拟网络适配器。 准虚拟硬件基于将任务从主机CPU卸载到系统物理资源的想法。 对于这些半虚拟以太网适配器,工作负载是由主机而不是主机CPU上的实际Intel和Broadcom物理以太网适配器处理的。 这导致改善的响应时间和吞吐量。

除了对硬件进行此更改之外,还对来宾操作系统及其用于与适配器进行通信的驱动程序进行了更改。 这类似于在安装新的网络适配器之后在物理计算机上安装新的驱动程序。 在虚拟机上必须执行相同的操作。

图4显示,在应用VMXNet3适配器后,响应时间比以前要短。 实际上,使用VMXNet3适配器的结果低于所有其他测试。 报告的PPS也略高。

图4.比较实际代理,具有/不具有VMXNet3适配器的VM
比较真实代理,具有/不具有VMXNet3适配器的VM

此图表中未显示的是,使用VMXNet3适配器报告的响应时间变化也较小。 这对于能够一次又一次地再现结果非常重要。

结论是,通过正确的网络设置,虚拟化代理程序可以像真实代理程序一样可靠地报告响应时间和吞吐量。

群集和vMotion

vMotion是VMware技术,使虚拟机可以在服务器之间实时迁移。 通常出于负载平衡的原因进行此操作。 在我们的实验中,我们在5分钟的平稳期之一内强制迁移其中一个VM。 我们这样做是为了确定将对虚拟化代理报告的数据产生的影响。

每个服务器群集具有一些特征。 八个服务器的每个组共享相同的硬件类型。 集群中每台计算机上的CPU,内存,磁盘和适配器都相同。 这种共同性是vMotioning正常运行的关键。

机器集群还共享配置特征,例如高可用性和动态资源调度:

  • 高可用性是虚拟机保持运行以最大程度地减少发生硬件故障时的停机时间的过程。 如果群集中的一台服务器发生故障,则该服务器中的虚拟机将立即在该群集中的另一台服务器上恢复联机。 这样可以最大程度地减少由于服务中断而导致的停机时间。
  • 动态资源调度是一个过程,通过该过程,虚拟机将根据虚拟机的资源需求和可供其使用的资源可用性在集群中的服务器之间动态移动。 如果虚拟机在可用资源很少的主机上需要CPU资源,则该虚拟机将迁移到具有可用CPU资源的其他主机上。 或者,通常会将资源较少的虚拟机迁移出去,以便为需要消耗更多资源的虚拟机腾出空间。

vMotioning的过程通过将处于当前运行状态的虚拟机从群集中的一台主机迁移到另一台主机来工作。 在此过程进行期间,虚拟机将保持运行,因此,虚拟机几乎不会受到干扰。

在我们的测试中,我们观察到最终用户在最坏的情况下会经历短暂的挂断,这与网络传输故障丢失一两个数据包没有什么不同。 对于执行集成,可用性,功能和其他类型的测试,这是可以接受的中断,但对于单个丢弃的数据包可能使结果失真的性能测试,则不是可接受的中断。 在具有严格服务级别协议的生产环境中,频繁的vMotion也可能是一个问题。

动态资源调度和高可用性都可以使用vMotion进程将一台主机上运行的虚拟机迁移到另一台主机上,以提供故障保护或满足虚拟机的即时资源需求。 图5显示了正在进行vMotion迁移的虚拟化环境。

图5.虚拟环境中的vMotion迁移
虚拟环境中的vMotion迁移

在正常情况下,vMotion不会经常发生。 我们认为一个现实的实验是迁移测试中使用的四个VM之一。 我们还拥有第五个运行100个vuser的真实代理。 我们使用该代理作为控件,以了解某个代理报告的响应时间,该响应时间应不受vMotion的影响。

VM迁移的效果显而易见。 效果持续了大约一分钟。 以下几张图说明了这一点。

图6显示了迁移期间来自一个VM代理的报告。 这是在2,000个vuser高原上进行的。

图6.迁移期间的页面响应时间; 穗差
迁移期间的页面响应时间;穗差

发生vMotion的响应时间峰值明显。 在性能测试运行期间,由虚拟化基础结构引起的这种峰值是不可接受的。

接下来,将vMotion分析为15分钟的平稳期(图7)。

图7.更长的平稳期使平均数更稳定
更长的高原使得平均值更稳定

较长的平稳期提供了更稳定的平均值,并使VM迁移的影响最小化。 但是,您仍然可以看到vMotion导致在虚拟代理上报告的响应时间更长。 该图报告了总体平均响应时间与一个运行100个vuser的真实代理的响应时间相比。

图7图显示了一个VM迁移对报告的平均响应时间有影响。 即使四个VM中的三个未迁移,迁移的VM报告的较高响应时间也导致平均响应时间高于对照组实际代理报告的平均响应时间。

在图7中看不到,迁移VM的影响确实影响了所有代理报告的响应时间。 大概是由于被测服务器的瓶颈导致无法完成由迁移的VM发起的请求,直到该VM完成迁移为止。

通常,最好在虚拟代理上禁用vMotion。 在运行性能测试时,任何不受控制的方差来源都是一个问题。

如果您不能禁用它,那么确定测试期间是否已发生vMotion非常重要。 虚拟化基础架构确实提供了可以检查以确定已发生迁移的日志。 屏幕快照(图8)是从虚拟基础架构客户端软件内部的视图执行的,其中该任务和事件是在其中执行迁移过程的VM的任务和事件。 日志清楚地表明,已执行迁移任务以及发起任务的人员以及任务的完成时间。

图8.日志作为确定vMotion是否发生的来源(如果无法禁用它)
记录日志以确定vMotion是否发生(如果无法将其禁用)

( 查看图8的大图。 )

如果系统已根据负载动态移动虚拟机,则该任务将由系统而不是用户(在本例中为VISRTP / marshall)启动。 还可以使用VMware的API和脚本实用程序以编程方式收集或检查此日志信息。

重要的是要注意,可以在给定的环境中为某些虚拟机禁用动态资源调度。 这确实增加了基于主机中断而影响虚拟机正常运行时间的风险,但是对于性能团队而言,保持稳定的性能比中断的可能性更为重要。

结论

虚拟化Rational Performance Tester代理是可行的配置。 但是,确保正确调整虚拟化环境非常重要。 在我们的环境中,网卡的设置至关重要。

为了进行比较评估,最好让非虚拟化代理运行与虚拟化代理等效的硬件和操作系统。 但是,对于问题确定而言,优良作法是拥有一组真实的代理,最好运行与虚拟化的代理不同的操作系统。 当出现问题或瓶颈时,我们发现真正的代理商是一个有用的对照组。 通过对真实代理进行测试,我们可以排除VM是造成问题的原因。

如果在测试过程中发生了VM迁移,那么分析师必须意识到这一点很重要。 最好对VM进行自动监视。 最好的选择是在托管RPT代理的服务器上禁用vMotion。


翻译自: https://www.ibm.com/developerworks/cloud/library/cl-agentperformance/index.html


http://chatgpt.dhexx.cn/article/qN3ZZg7E.shtml

相关文章

设计模式——代理模式(虚拟代理)

代理模式的类型分为: (1)虚拟代理 (2)远程代理 (3)智能指引 (4)保护代理 这一篇主要讲虚拟代理,想要知道其他类型讲解的小伙伴可以去我其他博客翻一翻哦。 首先来理解一波虚拟代理,啥叫虚拟代理? 举个很常见也很通俗的例子,咱们平时抽奖的时候,是不是都想要抽个…

[转载]虚拟代理模式(Virtualnbsp;Proxy)

虚拟代理模式(Virtualnbsp;Proxy) 第25章 虚拟代理模式(Virtual Proxy) 描述: 虚拟代理模式 (Virtual Proxy)是一种节省内存的技术,它建议创建那些占用大量内存或处理复杂的对象时,把创建这类对象推迟到使用它的时候。在特定的应用 中&#x…

代理模式——虚拟代理(二)

代理模式定义 为另一个对象提供一个替身或占位符以控制对这个对象的访问。使用代理模式创建代表对象,让代表对象控制对某对象的访问,被代理的对象可是远程的对象、创建开销大的对象或需要安全控制的对象。 代理分三种: 1.远程代理&#xff…

SQL语法与数据库快速入门(1)

目录 数据库简介数据库分类常用数据库简介使用场景MySql 的安装与配置数据库客户端工具MySql 介绍SQL 简介DDL 数据库操作-创建DDL 数据库操作-查看DDL 数据库操作-修改DDL 数据库操作-删除DDL 数据库表操作简介DDL 数据库表操作-创建DDL 数据库表操作-查看DDL 数据库表操作-修…

SQL语法与数据库快速入门(2)

目录: 多表简介SQL 约束-外键约束多表关系简介多表查询多表查询-内连接查询多表查询-外连接查询子查询简介子查询实战数据库进阶redis 内存数据库mongodb nosql 数据库neo4j 图数据库 1.多表简介 多表及使用场景介绍: 多表顾名思义就是在数据库设计中…

【数据库】MYSQL轻松入门

文章目录 MYSQL入门一、MYSQL概述1. 数据库相关概念1.1 数据库,数据库管理系统与SQL1.2 数据库种类以及主流数据库管理系统排名1.2.1 数据库的种类1.2.2 数据库主流排名 1.3 MySQL数据库安装1.3.1 下载1.3.2 修改密码 1.4 数据模型 二、SQL2.1 通用语法与注释2.2 SQ…

Java连接mysql数据库的五分钟快速入门教程

总体流程:数据库->Java 总体步骤: 1.创建数据库并新建表 2.创建一个Java项目,在项目下新建文件夹lib,类型为Directory 3.将下载好mysql-connector-java-8.0.27.jar放到lib目录下 4.将lib下的依赖添加到Java项目中 5.编写代码连…

数据库快速入门教程--视频

数据库快速入门教程--视频 下载地址:http://v.51work6.com/courseInfoRedirect.do?actioncourseInfo&courseId240579本课程是这个课程体系的核心之一,为软件开发人员所需数据库知识的学习教材,而不是培训一个DBA(数据库管理员…

Docker 安装与操作 Mysql 数据库快速入门

目录 演示环境说明 Mysql 镜像检索 Mysql 镜像下载 Mysql 容器运行 错误运行方式 正确运行方式 端口映射 连接测试 高级命令指定编码运行 演示环境说明 1、《 Docker 镜像操作 常用命令》中说明了如何从 Docker Hub 上下载镜像,《 Docker 容器操作 常用命…

数据库(MySQL)基础快速入门!

前言:这篇送给那些想要学会数据库,但又不想花太多时间的同学们。看了这篇数据库知识,轻轻松松搞定它!用不同的工具操作数据库命令可能会有小小的不同,我用的是系统自带的cmd。(凡是数据库名称,数…

MySQL数据库1——数据库快速入门

MySQL数据库——数据库基础 (一)为什么使用数据库 数据库用来存储海量数据数据库利于数据查询和管理数据库相对于文件安全性更高数据库相对于文件利于控制 (二)MySQL的基本使用 安装好MySQL数据库以后,连接服务器。…

mysql快捷创建数据库_mysql数据库快速入门(1)

1、数据库操作 1.1、连接mysql服务器 mysql -u root( 用户名 ) -p 1.2、退出mysql命令提示窗 exit 1.3、查看版本 SELECT VERSION(); 1.4、列出数据库列表 SHOW DATABASES; 1.5、创建数据库 CREATE DATABASE IF NOT EXISTS [database] DEFAULT CHARSET UTF8; 1.6、选择要操作的…

SQLite3数据库的快速入门菜鸟教程

SQLite3是一个轻量级嵌入式数据库,其主要有以下的特点: 1、零配置无需安装和管理配置; 2、储存在单一磁盘文件中; 3、数据库文件可在不同字节序的机器自由共享; 4、比目前流行的大多数数据库对数据的操作要快&…

MySQL数据库快速入门

MySQL基础 1、数据库相关概念 以前我们做系统,数据持久化的存储采用的是文件存储。存储到文件中可以达到系统关闭数据不会丢失的效果,当然文件存储也有它的弊端。假设在文件中存储以下的数据: 姓名 年龄 性别 住址 张三 23 男 北京西三旗…

MySQL数据库快速入门到精通(超详细保姆级,建议收藏)这可能是目前最适合你的教程,从基础语法到实例演示。

前言 此文章旨在为需要掌握快速开发和复习MySQL的同学所准备,您完全可以把此文章当作参考文档来使用,本文将尽量精简,使您快速的理解和掌握语法。 关于MySQL MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,…

超经典两万字,MySQL数据库快速入门。

「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「专栏简介」:此文章已录入专栏《MySQL数据库快速入门》 MySQL快速入门 一、环境准备1. MySQL下载及安装2. MySQL启动3. MySQL客…

SQL数据库快速入门基础

SQL(Structure Query Language,结构化查询语言)语言是国际标准化组织(ISO)采纳的标准数据库语言。 数据库就是一幢大楼,我们要先盖楼,然后再招住户(住户当然就是数据库对象,)。我们盖得大楼的基本格局设计师们已经为我们设计好,我们在创建数据库过程中,系统(设计师)…

数据库快速入门

数据库快速入门 目录 数据库快速入门 1. 数据库基础知识入门 2. Postgre数据库介绍 3. 数据库入门操作 3.1常用命令 3.2 数值类型 3.3 数据运算符 4. 常用函数介绍 4.1 常用函数介绍 4.2 自定义函数 5 数据库索引和视图介绍 5.1 数据库索引介绍 5.2 数据库视图介…

计算机类书籍大全

空降百度网盘: 链接:https://pan.baidu.com/s/1yG198vf_xxBUKW2q-aYm4A 提取码:sll1

爬虫之 爬取京东计算机书籍

爬取京东的计算机类书籍 1. 工具: requests, pycharm, scrapy, mongodb 2. 网页提取工具: xpath 1. 分析京东网页: 打开京东网站 查看源码发现不是动态网页,而且都是列表, 说明了很好处理;开始分析; 我们只要提取书名,书的链…