CN104951396B - 基于虚拟机创建软件性能测试环境的方法和装置 - Google Patents

基于虚拟机创建软件性能测试环境的方法和装置 Download PDF

Info

Publication number
CN104951396B
CN104951396B CN201410127561.8A CN201410127561A CN104951396B CN 104951396 B CN104951396 B CN 104951396B CN 201410127561 A CN201410127561 A CN 201410127561A CN 104951396 B CN104951396 B CN 104951396B
Authority
CN
China
Prior art keywords
cpu
disk read
write
virtual
consumed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410127561.8A
Other languages
English (en)
Other versions
CN104951396A (zh
Inventor
胡国强
朱俊
程鑫豪
严骏驰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN201410127561.8A priority Critical patent/CN104951396B/zh
Priority to US14/674,619 priority patent/US9519572B2/en
Priority to US14/747,703 priority patent/US9519573B2/en
Publication of CN104951396A publication Critical patent/CN104951396A/zh
Priority to US15/264,204 priority patent/US9921940B2/en
Priority to US15/264,162 priority patent/US9921939B2/en
Application granted granted Critical
Publication of CN104951396B publication Critical patent/CN104951396B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/301Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3485Performance evaluation by tracing or monitoring for I/O devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及虚拟机,其公开了一种基于虚拟机创建软件性能测试环境的方法的方法和装置,该方法包括:响应于获取到虚拟机的虚拟CPU触发的硬盘读写请求,通知虚拟CPU调度器记录所述虚拟CPU在当前CPU调度周期中已消耗的CPU时间额度t1;响应于检测到对应于所述硬盘读写请求的硬盘读写处理完成,预测目标环境中对应于该硬盘读写请求的硬盘读写时延t;通知虚拟CPU调度器根据记录的所述CPU时间额度t1和所述硬盘读写时延t确定当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度;根据确定的当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度调整所述虚拟机的系统时钟。根据本发明实施例的方法能够在创建的软件性能测试环境中测出与目标环境的高配置服务器下一致的软件性能测试结果。

Description

基于虚拟机创建软件性能测试环境的方法和装置
技术领域
本发明涉及虚拟机,更具体地,涉及一种基于虚拟机创建软件性能测试环境的方法和装置。
背景技术
软件性能测试是软件质量控制的重要环节。在标准的软件开发流程中,每个软件版本在发布或交付给客户之前都需要经过多轮性能测试,以保证软件交付以后在运营环境中的正常运行。可靠的软件性能测试要求测试的硬件环境同软件最终部署运营的硬件环境相一致。然而,在大多数情况下,软件产品的目标硬件配置相对比较高,软件开发者(或软件交付方)已有的软件测试平台的硬件环境往往达不到这样的要求,而购买新的硬件设备则受到资金和采购时间的双重制约。在软件性能测试的实践中,主要通过综合使用实测和预测的方法来解决以上问题。即在已有的配置较低的硬件环境中进行细致的软件性能测试,以得出的测试结果为基础推测出高配置的目标硬件环境下的软件性能。然而,这种方法有以下三方面的缺点:1.实测所需的测试用例更多;2.预测的质量特别依赖测试人员的经验和专业知识;3.考虑到预测本身的天然不确定性,在性能预测中往往采用保守的性能估计,形成不准确的性能评估,导致额外的软件开发成本或软件营运成本。
近年来,在计算机应用领域掀起了虚拟机及虚拟化技术高潮,对应于虚拟机而言,虚拟化技术就是设计虚拟计算机的技术总成。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。例如,CPU的虚拟化技术可以单CPU模拟多CPU并行,允许1个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。现有的虚拟机技术可以在低配置的服务器上模拟出形式上的高配置的服务器。但这样的虚拟机并不具备真实高配置服务器的运行性能,无法用于软件性能测试,考虑到运行虚拟环境的额外系统开销,实现软件性能测试需要高于目标环境下的硬件环境,然而针对不同的目标硬件环境购买不同的高配置硬件设备进行软件性能测试会导致额外的软件开发成本。
因此,需要基于虚拟机创建用于软件性能测试环境的方法。
发明内容
根据本发明的一个方面,提供了一种基于虚拟机创建软件性能测试环境的方法,包括:响应于获取到虚拟机的虚拟CPU触发的硬盘读写请求,通知虚拟CPU调度器记录所述虚拟CPU在当前CPU调度周期中已消耗的CPU时间额度t1;响应于检测到对应于所述硬盘读写请求的硬盘读写处理完成,预测目标环境中对应于该硬盘读写请求的硬盘读写时延t;通知虚拟CPU调度器根据记录的所述CPU时间额度t1和所述硬盘读写时延t确定当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度;根据确定的当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度调整所述虚拟机的系统时钟。
根据本发明的另一个方面,提供了一种基于虚拟机创建软件性能测试环境的装置,包括:记录模块,被配置为响应于从磁盘管理器获取硬盘读写请求,通知虚拟CPU调度器记录发出所述硬盘读写请求的虚拟机的虚拟CPU在当前CPU调度周期中已消耗的CPU时间额度t1;预测模块,被配置为响应于检测到对应于所述硬盘读写请求的硬盘读写处理完成,预测目标环境中对应于该硬盘读写请求的硬盘读写时延t;确定模块,被配置为通知虚拟CPU调度器根据记录的所述CPU时间额度t1和所述硬盘读写时延t确定当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度;以及调整模块,被配置为根据确定的当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度调整所述虚拟机的系统时钟。
根据本发明实施例的基于虚拟机创建软件性能测试环境的方法和装置,能够在基于虚拟机创建的软件性能测试环境中测出与目标环境的高配置服务器下相一致的软件性能测试结果。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图;
图2示出根据本发明实施例的虚拟机系统的示意图;
图3示出根据本发明实施例的基于虚拟机创建软件性能测试环境的方法;
图4示出根据本发明实施例确定硬盘读写请求属于目标环境不会发生的硬盘读写请求的流程图;
图5示出根据本发明一个实施例的基于虚拟机创建软件性能测试环境的流程图;
图6示出根据本发明又一个实施例的基于虚拟机创建软件性能测试环境的流程图;
图7示出根据本发明实施例的基于虚拟机创建软件性能测试环境的装置700。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
图2示出根据本发明实施例的虚拟机系统的示意图,该虚拟机系统包括物理机、虚拟机管理器(Hypervisor)和多个虚拟机,其中虚拟机是一种严密隔离的软件容器,它包括多个客户机操作系统(guest OS)以及运行在每个客户机操作系统上的多个应用程序,可具有不同操作系统的多个虚拟机在同一物理机上独立并行运行,从而在多台虚拟机之间实现单台物理机的资源共享。虚拟机管理器(hypervisor)是提供底层机器虚拟化的软件层,其运行在物理硬件之上,在底层上实现对虚拟机的管理和支持,以动态和透明方式向虚拟机分配硬件资源。本发明的实施例的虚拟机可以运行在被Java标准规范定义的Java虚拟机(JVM)运行环境内,也可以是任何类型的独立于平台的虚拟机,例如C#、Smalltalk、Ruby、D语言、nuva,而不限于JaVa虚拟机。根据本发明的实施例,在虚拟机系统的物理机上模拟多CPU并行的目标硬件环境,在多个虚拟机上同时运行多个客户机操作系统,在每个客户机操作系统上运行多个应用程序。在虚拟机系统上创建软件性能测试环境,以保证软件交付后在目标环境中能够正常运行。
现在参看图3,图3示出根据本发明实施例的一种基于虚拟机创建软件性能测试环境的方法,包括:在步骤S301,响应于获取到虚拟机的虚拟CPU触发的硬盘读写请求,通知虚拟CPU调度器(vCPU scheduler)记录所述虚拟CPU在当前CPU调度周期中已消耗的CPU时间额度t1;在步骤S302,响应于检测到对应于所述硬盘读写请求的硬盘读写处理完成,预测目标环境中对应于该硬盘读写请求的硬盘读写时延t;在步骤S303,通知虚拟CPU调度器根据记录的所述CPU时间额度t1和所述硬盘读写时延t确定当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度;以及在步骤S304,根据确定的当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度调整所述虚拟机的系统时钟。
根据本发明一个实施例,响应于检测到对应于所述硬盘读写请求的硬盘读写处理完成,预测目标环境中对应于该硬盘读写请求的硬盘读写时延t包括:确定所述硬盘读写请求属于目标环境不会发生的硬盘读写请求,预测目标环境中对应于该硬盘读写请求的硬盘读写时延t等于0。
根据本发明一个实施例,响应于检测到对应于所述硬盘读写请求的硬盘读写处理完成,预测目标环境中对应于该硬盘读写请求的硬盘读写时延t包括:确定所述硬盘读写请求属于目标环境会发生的硬盘读写请求,根据所述硬盘读写处理完成的时间预测目标环境中对应于该硬盘读写请求的硬盘读写时延t,具体地,可以在步骤S301,记录获取硬盘读写请求的时间Ta,在步骤S302,记录硬盘读写处理完成的时间Tb,获取目标环境的服务器的硬盘读写速度与虚拟机所在的当前物理机的硬盘读写速度的比值k,从而预测出目标环境中对应于该硬盘读写请求的硬盘读写时延t=(Tb-Ta)/k。
图4示出根据本发明实施例确定硬盘读写请求属于目标环境不会发生的硬盘读写请求的流程图。在步骤S401,获取虚拟机的内存访问请求;在步骤S402,确定该内存访问请求需要虚拟机的物理机进行硬盘读写操作,具体地,从内存访问请求中解析出要访问内容的虚拟内存地址,并在内存管理器维护的虚拟内存地址映射表中查询虚拟内存地址是否映射到虚拟机系统的物理内存地址,如果虚拟内存地址未映射到虚拟机系统的物理内存地址,则确定该内存访问请求需要虚拟机的物理机进行硬盘读写操作;在步骤S403,响应于确定该内存访问请求在目标环境不需要进行硬盘读写操作,对该内存访问请求在该虚拟机的物理机中所触发的硬盘读写请求进行标记。具体地,在虚拟机管理器中维护目标环境的虚拟内存地址映射表,在目标环境的虚拟内存地址映射表中查询虚拟内存地址是否映射到目标环境的物理内存地址,如果虚拟内存地址未映射到目标环境的物理内存地址,则确定该内存访问请求在目标环境不需要进行硬盘读写操作。除了以上标记的由内存访问请求触发的硬盘读写请求,其它未做标记的硬盘读写请求,一方面可能来自于内存访问请求在虚拟机的物理机所触发的硬盘读写请求中在目标环境也需要进行硬盘读写操作的硬盘读写请求,另一方面可能直接来自于虚拟机上的应用程序的硬盘读写请求,在此不做区分,只要没有标记的硬盘读写请求,就归类为属于在目标环境会发生的硬盘读写请求。
图5示出根据本发明一个实施例的基于虚拟机创建软件性能测试环境的流程图,在步骤S501,获取到虚拟机的虚拟CPU触发的硬盘读写请求;在步骤S502,通知虚拟CPU调度器记录虚拟CPU在当前CPU调度周期中已消耗的CPU时间额度t1并让所述虚拟CPU暂停工作;在步骤S503,检测到对应于所述硬盘读写请求的硬盘读写处理完成;在步骤S504,判断该硬盘读写请求是否属于目标环境不会发生的硬盘读写请求;如果判断结果为“是”,则在步骤S505,将目标环境中对应于该硬盘读写请求的硬盘读写时延设置等于0;在步骤S506,通知虚拟CPU调度器让暂停工作的虚拟CPU继续工作;在步骤S507,通知虚拟CPU调度器将当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度记录为t1;在步骤S508,将虚拟机的系统时钟向前调整t1。流程结束。如果判断结果为“否”,则在步骤S509,预测目标环境中对应于该硬盘读写请求的硬盘读写时延t,具体实现可以参照之前的描述,在此不再赘述;步骤S510,通知虚拟CPU调度器让暂停工作的虚拟CPU继续工作;在步骤S511,通知虚拟CPU调度器将当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度记录为t1+t;在步骤S512,将虚拟机的系统时钟向前调整t1+t,流程结束。其中步骤S504的判断步骤的执行顺序不是固定不变的,可以在步骤S501之后步骤S502之前进行,还可以在步骤S502之后步骤S503之前进行。
图6示出根据本发明又一个实施例的基于虚拟机创建用于软件性能测试环境的流程图,在步骤S601,获取到虚拟机的虚拟CPU触发的硬盘读写请求;在步骤S602,通知虚拟CPU调度器记录所述虚拟CPU在当前CPU调度周期中已消耗的CPU时间额度t1;在步骤S603,检测到对应于所述硬盘读写请求的硬盘读写处理完成并记录该虚拟CPU在当前CPU调度周期中已消耗的CPU时间额度t2;在步骤S604,判断该硬盘读写请求是否属于目标环境不会发生的硬盘读写请求;如果判断结果为“是”,则在步骤S605,将目标环境中对应于该硬盘读写请求的硬盘读写时延t设置等于0;在步骤S606,通知虚拟CPU调度器将当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度记录为t2;在步骤S607,将虚拟机的系统时钟向前调整t2,流程结束。如果判断结果为“否”,则在步骤S608,预测目标环境中对应于该硬盘读写请求的硬盘读写时延t,具体实现可以参照之前的描述,在此不再赘述;在步骤S609,判断t是否小于或者等于(t2-t1)?如果判断结果为“是”,则前进到步骤S606;如果判断结果为“否”,即,t大于(t2-t1),则在步骤S610,虚拟CPU调度器将当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度记录为t1+t,在步骤S611,将虚拟机的系统时钟向前调整t1+t,流程结束。其中步骤S604的判断步骤的执行顺序不是固定不变的,可以在步骤S601之后步骤S602之前进行,还可以在步骤S602之后步骤S603之前进行。
对于图5和图6中的调整系统时钟的步骤S508,S512,S608和S612,其中系统时钟调整的时间点可以根据具体实现来确定,在此不做限制,例如,可以在两个CPU调度周期的间隔来调整系统时钟,也可以在CPU调度周期中的某个时间点来调整。
由于软件性能测试指标与任务处理时延紧密相关,合理控制虚拟机的系统时钟,能够在创建的低配置的软件测试环境中测出与目标环境的高配置服务器下一致的软件性能测试结果,节省了软件测试的成本。图5的实施例实现逻辑简单,图6的实施例测试结果更为精准。
前面已经参考附图描述了实现本发明的方法的各个实施例。本领域技术人员可以理解的是,上述方法可以在虚拟机管理器中以软件方式实现,也可以在虚拟机管理器中以硬件方式实现,或者通过软件与硬件相结合的方式实现。并且,本领域技术人员可以理解,通过以软件、硬件或者软硬件相结合的方式实现上述方法中的各个步骤,可以提供一种基于虚拟机创建软件性能测试环境的装置。即使该装置在硬件结构上与通用处理设备相同,由于其中所包含的软件的作用,使得该装置表现出区别于通用处理设备的特性,从而形成本发明的各个实施例的装置。
基于同一发明构思,本发明还提出一种基于虚拟机创建软件性能测试环境的装置,图7示出根据本发明实施例的基于虚拟机创建软件性能测试环境的装置700,包括:记录模块701,被配置为响应于从磁盘管理器获取硬盘读写请求,通知虚拟CPU调度器记录发出所述硬盘读写请求的虚拟机的虚拟CPU在当前CPU调度周期中已消耗的CPU时间额度t1;预测模块702,被配置为响应于检测到对应于所述硬盘读写请求的硬盘读写处理完成,预测目标环境中对应于该硬盘读写请求的硬盘读写时延t;确定模块703,被配置为通知虚拟CPU调度器根据记录的所述CPU时间额度t1和所述硬盘读写时延t确定当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度;以及调整模块704,被配置为根据确定的当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度调整所述虚拟机的系统时钟。
根据本发明一个实施例,其中所述预测模块702进一步被配置为:确定所述硬盘读写请求属于目标环境不会发生的硬盘读写请求,预测目标环境中对应于该硬盘读写请求的硬盘读写时延t等于0。
根据本发明一个实施例,其中所述记录模块701进一步被配置为:通知所述虚拟CPU调度器让所述虚拟CPU暂停工作;所述预测模块进一步被配置为:让暂停工作的虚拟CPU继续工作;所述确定模块进一步被配置为:通知虚拟CPU调度器将当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度设置为t1。
根据本发明一个实施例,其中所述预测模块702进一步被配置为:确定所述硬盘读写请求属于目标环境会发生的硬盘读写请求,根据所述硬盘读写处理完成的时间预测目标环境中对应于该硬盘读写请求的硬盘读写时延t。
根据本发明一个实施例,其中所述预测模块702进一步被配置为:将所述硬盘读写时延t通知给虚拟CPU调度器并通知虚拟CPU调度器让暂停工作的虚拟CPU继续工作;所述确定模块进一步被配置为:将当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度设置为t+t1。
根据本发明一个实施例,其中所述预测模块702进一步被配置为:记录所述虚拟CPU在当前CPU调度周期中已消耗的CPU时间额度t2;确定所述硬盘读写请求属于目标环境不会发生的硬盘读写请求;预测目标环境中对应于该硬盘读写请求的硬盘读写时延t等于0;所述确定模块进一步被配置为:通知虚拟CPU调度器根据记录的在CPU调度周期中所述虚拟CPU已消耗的CPU时间额度t1、t2和所述硬盘读写时延t等于0确定当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度。根据本发明一个实施例,其中所述确定模块703进一步被配置为:通知虚拟CPU调度器将当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度设置为t2。
根据本发明一个实施例,其中所述预测模块702进一步被配置为:记录所述虚拟CPU在当前CPU调度周期中已消耗的CPU时间额度t2;确定所述硬盘读写请求属于目标环境会发生的硬盘读写请求,根据所述硬盘读写处理完成的时间预测目标环境中对应于该硬盘读写请求的硬盘读写时延t;所述确定模块703进一步被配置为:通知虚拟CPU调度器根据记录的所述虚拟CPU已消耗的CPU时间额度t1、t2和所述硬盘读写时延t确定当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度。根据本发明一个实施例,其中所述确定模块703进一步被配置为:响应于t小于或等于(t2-t1),将当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度设置为t2;响应于t大于(t2-t1),将当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度设置为t1+t。
根据本发明一个实施例,其中所述确定所述硬盘读写请求属于目标环境不会发生的硬盘读写请求是按照如下方式确定的:获取所述虚拟机的内存访问请求;确定该内存访问请求需要所述虚拟机的物理机进行硬盘读写操作;响应于确定该内存访问请求在目标环境需要进行硬盘读写操作,对该内存访问请求在所述虚拟机的物理机触发的硬盘读写请求进行标记。
上述每个模块的具体实现方法参照根据本发明实施例的基于虚拟机创建软件性能测试环境的方法中的详细描述,在此不一一赘述。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是--但不限于--电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言-诸如Smalltalk、C++等,以及常规的过程式编程语言-诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络-包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (16)

1.一种基于虚拟机创建软件性能测试环境的方法,包括:
响应于获取到虚拟机的虚拟CPU触发的硬盘读写请求,通知虚拟CPU调度器记录所述虚拟CPU在当前CPU调度周期中已消耗的CPU时间额度t1;
响应于检测到对应于所述硬盘读写请求的硬盘读写处理完成,预测目标环境中对应于该硬盘读写请求的硬盘读写时延t;
通知虚拟CPU调度器根据记录的所述CPU时间额度t1和所述硬盘读写时延t确定当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度;
根据确定的当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度调整所述虚拟机的系统时钟,
其中所述响应于检测到对应于所述硬盘读写请求的硬盘读写处理完成,预测目标环境中对应于该硬盘读写请求的硬盘读写时延t包括:确定所述硬盘读写请求属于目标环境不会发生的硬盘读写请求,预测目标环境中对应于该硬盘读写请求的硬盘读写时延t等于0,
其中所述响应于获取到虚拟机的虚拟CPU触发的硬盘读写请求,通知虚拟CPU调度器记录所述虚拟CPU在当前CPU调度周期中已消耗的CPU时间额度t1还包括:通知虚拟CPU调度器让所述虚拟CPU暂停工作;
其中所述确定所述硬盘读写请求属于目标环境不会发生的硬盘读写请求,预测目标环境中对应于该硬盘读写请求的硬盘读写时延t等于0还包括:通知虚拟CPU调度器让暂停工作的虚拟CPU继续工作;
其中所述通知虚拟CPU调度器根据记录的所述CPU时间额度t1和所述硬盘读写时延t确定当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度包括:通知虚拟CPU调度器将当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度设置为t1。
2.根据权利要求1所述的方法,其中所述响应于检测到对应于所述硬盘读写请求的硬盘读写处理完成,预测目标环境中对应于该硬盘读写请求的硬盘读写时延t包括:确定所述硬盘读写请求属于目标环境会发生的硬盘读写请求,根据所述硬盘读写处理完成的时间预测目标环境中对应于该硬盘读写请求的硬盘读写时延t。
3.根据权利要求2所述的方法,其中所述确定所述硬盘读写请求属于目标环境会发生的硬盘读写请求,根据所述硬盘读写处理完成的时间预测目标环境中对应于该硬盘读写请求的硬盘读写时延t还包括:将所述硬盘读写时延t通知给CPU调度器并通知虚拟CPU调度器让暂停工作的虚拟CPU继续工作;
其中所述根据记录的所述CPU时间额度t1和所述硬盘读写时延t确定当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度包括:将当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度设置为t+t1。
4.根据权利要求1所述的方法,其中所述响应于检测到对应于所述硬盘读写请求的硬盘读写处理完成,预测目标环境中对应于该硬盘读写请求的硬盘读写时延t包括:记录所述虚拟CPU在当前CPU调度周期中已消耗的CPU时间额度t2;确定所述硬盘读写请求属于目标环境不会发生的硬盘读写请求,预测目标环境中对应于该硬盘读写请求的硬盘读写时延t等于0;
其中所述通知虚拟CPU调度器根据记录的所述CPU时间额度t1和所述硬盘读写时延t确定当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度包括:通知虚拟CPU调度器根据记录的在CPU调度周期中所述虚拟CPU已消耗的CPU时间额度t1、t2和所述硬盘读写时延t等于0确定当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度。
5.根据权利要求4所述的方法,其中所述通知虚拟CPU调度器根据记录的在CPU调度周期中所述虚拟CPU已消耗的CPU时间额度t1、t2和所述硬盘读写时延t等于0确定当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度包括:通知虚拟CPU调度器将当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度设置为t2。
6.根据权利要求2所述的方法,其中所述响应于检测到对应于所述硬盘读写请求的硬盘读写处理完成,预测目标环境中对应于该硬盘读写请求的硬盘读写时延t包括:记录所述虚拟CPU在当前CPU调度周期中已消耗的CPU时间额度t2;确定所述硬盘读写请求属于目标环境会发生的硬盘读写请求,根据所述硬盘读写处理完成的时间预测目标环境中对应于该硬盘读写请求的硬盘读写时延t;
其中所述通知虚拟CPU调度器根据记录的在CPU调度周期中所述虚拟CPU已消耗的CPU时间额度t1和所述硬盘读写时延t确定当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度包括:通知虚拟CPU调度器根据记录的所述虚拟CPU已消耗的所述CPU时间额度t1、t2和所述硬盘读写时延t确定当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度。
7.根据权利要求6所述的方法,其中所述根据记录的所述虚拟CPU已消耗的CPU时间额度t1、t2和所述硬盘读写时延t确定当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度包括:
响应于t小于或等于(t2-t1),将当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度设置为t2;
响应于t大于(t2-t1),将当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度设置为t1+t。
8.根据权利要求1所述的方法,其中所述确定所述硬盘读写请求属于目标环境不会发生的硬盘读写请求是按照如下方式确定的:获取所述虚拟机的内存访问请求;确定该内存访问请求需要所述虚拟机的物理机进行硬盘读写操作;响应于确定该内存访问请求在目标环境需要进行硬盘读写操作,对该内存访问请求在所述虚拟机的物理机中触发的硬盘读写请求进行标记。
9.一种基于虚拟机创建软件性能测试环境的装置,包括:
记录模块,被配置为响应于获取到虚拟机的虚拟CPU触发的硬盘读写请求,通知虚拟CPU调度器记录所述虚拟CPU在当前CPU调度周期中已消耗的CPU时间额度t1;
预测模块,被配置为响应于检测到对应于所述硬盘读写请求的硬盘读写处理完成,预测目标环境中对应于该硬盘读写请求的硬盘读写时延t;
确定模块,被配置为通知虚拟CPU调度器根据记录的所述CPU时间额度t1和所述硬盘读写时延t确定当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度;以及
调整模块,被配置为根据确定的当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度调整所述虚拟机的系统时钟,
其中所述预测模块进一步被配置为:确定所述硬盘读写请求属于目标环境不会发生的硬盘读写请求,预测目标环境中对应于该硬盘读写请求的硬盘读写时延t等于0,
其中所述记录模块进一步被配置为:通知虚拟CPU调度器让所述虚拟CPU暂停工作;
所述预测模块进一步被配置为:通知虚拟CPU调度器让暂停工作的虚拟CPU继续工作;
所述确定模块进一步被配置为:通知虚拟CPU调度器将当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度设置为t1。
10.根据权利要求9所述的装置,其中所述预测模块进一步被配置为:确定所述硬盘读写请求属于目标环境会发生的硬盘读写请求,根据所述硬盘读写处理完成的时间预测目标环境中对应于该硬盘读写请求的硬盘读写时延t。
11.根据权利要求10所述的装置,其中所述预测模块进一步被配置为:将所述硬盘读写时延t通知给虚拟CPU调度器并通知虚拟CPU调度器让暂停工作的虚拟CPU继续工作;
所述确定模块进一步被配置为:将当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度设置为t+t1。
12.根据权利要求9所述的装置,其中所述预测模块进一步被配置为:记录所述虚拟CPU在当前CPU调度周期中已消耗的CPU时间额度t2;确定所述硬盘读写请求属于目标环境不会发生的硬盘读写请求,预测目标环境中对应于该硬盘读写请求的硬盘读写时延t等于0;
所述确定模块进一步被配置为:通知虚拟CPU调度器根据记录的在CPU调度周期中所述虚拟CPU已消耗的CPU时间额度t1、t2和所述硬盘读写时延t等于0确定当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度。
13.根据权利要求12所述的装置,其中所述确定模块进一步被配置为:通知虚拟CPU调度器将当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度设置为t2。
14.根据权利要求10所述的装置,其中所述预测模块进一步被配置为:记录所述虚拟CPU在当前CPU调度周期中已消耗的CPU时间额度t2;确定所述硬盘读写请求属于目标环境会发生的硬盘读写请求,根据所述硬盘读写处理完成的时间预测目标环境中对应于该硬盘读写请求的硬盘读写时延t;
所述确定模块进一步被配置为:通知虚拟CPU调度器根据记录的所述虚拟CPU已消耗的CPU时间额度t1、t2和所述硬盘读写时延t确定当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度。
15.根据权利要求14所述的装置,其中所述确定模块进一步被配置为:
响应于t小于或等于(t2-t1),将当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度设置为t2;
响应于t大于(t2-t1),将当前CPU调度周期中所述虚拟CPU已消耗的CPU时间额度设置为t1+t。
16.根据权利要求9所述的装置,其中所述确定所述硬盘读写请求属于目标环境不会发生的硬盘读写请求是按照如下方式确定的:获取所述虚拟机的内存访问请求;确定该内存访问请求需要所述虚拟机的物理机进行硬盘读写操作;响应于确定该内存访问请求在目标环境需要进行硬盘读写操作,对该内存访问请求在所述虚拟机的物理机中触发的硬盘读写请求进行标记。
CN201410127561.8A 2014-03-31 2014-03-31 基于虚拟机创建软件性能测试环境的方法和装置 Active CN104951396B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201410127561.8A CN104951396B (zh) 2014-03-31 2014-03-31 基于虚拟机创建软件性能测试环境的方法和装置
US14/674,619 US9519572B2 (en) 2014-03-31 2015-03-31 Creating a software performance testing environment on a virtual machine system
US14/747,703 US9519573B2 (en) 2014-03-31 2015-06-23 Creating a software performance testing environment on a virtual machine system
US15/264,204 US9921940B2 (en) 2014-03-31 2016-09-13 Creating a software performance testing environment on a virtual machine system
US15/264,162 US9921939B2 (en) 2014-03-31 2016-09-13 Creating a software performance testing environment on a virtual machine system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410127561.8A CN104951396B (zh) 2014-03-31 2014-03-31 基于虚拟机创建软件性能测试环境的方法和装置

Publications (2)

Publication Number Publication Date
CN104951396A CN104951396A (zh) 2015-09-30
CN104951396B true CN104951396B (zh) 2018-01-30

Family

ID=54166063

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410127561.8A Active CN104951396B (zh) 2014-03-31 2014-03-31 基于虚拟机创建软件性能测试环境的方法和装置

Country Status (2)

Country Link
US (4) US9519572B2 (zh)
CN (1) CN104951396B (zh)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10007440B2 (en) * 2015-11-22 2018-06-26 Cisco Technology, Inc. Method of reordering a queue of write requests
JP6227841B1 (ja) * 2016-02-17 2017-11-08 株式会社日立製作所 データ処理システム及びデータ処理方法
US10216377B2 (en) * 2016-03-22 2019-02-26 Microsoft Technology Licensing, Llc Visual regression analysis
KR101707552B1 (ko) * 2016-07-27 2017-02-16 주식회사 티맥스 소프트 클라우드 환경에서 사용자로 하여금 애플리케이션을 체험할 수 있도록 체험 환경을 제공하는 방법 및 이를 이용한 서버
CN107045432A (zh) * 2017-04-05 2017-08-15 何龙 多屏显示协同处理控制方法和系统
CN107145420B (zh) * 2017-05-03 2020-02-07 郑州云海信息技术有限公司 基于OpenPower架构自动化磁盘测试方法
CN107943686A (zh) * 2017-10-30 2018-04-20 北京奇虎科技有限公司 一种测试调度方法、装置、服务器及存储介质
US10956563B2 (en) * 2017-11-22 2021-03-23 Aqua Security Software, Ltd. System for securing software containers with embedded agent
US10810334B2 (en) 2017-11-22 2020-10-20 General Electric Company Application store test environment
CN108345529A (zh) * 2018-01-04 2018-07-31 浪潮软件股份有限公司 一种系统性能检测方法和检测装置
US10997283B2 (en) * 2018-01-08 2021-05-04 Aqua Security Software, Ltd. System for securing software containers with encryption and embedded agent
US11550708B1 (en) * 2018-05-17 2023-01-10 Konark Research, Inc. System, method and apparatus for selection of hardware and software for optimal implementation of one or more functionality or algorithm
CN111124868A (zh) * 2018-10-30 2020-05-08 广州汽车集团股份有限公司 流畅度确定方法、装置、电子设备和存储介质
CN109542701B (zh) * 2018-11-19 2022-02-18 郑州云海信息技术有限公司 一种磁盘性能测试方法及装置
CN109800113A (zh) * 2018-12-29 2019-05-24 北京奇安信科技有限公司 一种基于虚拟化平台性能测试方法、系统、设备和介质
CN111506383A (zh) * 2019-01-30 2020-08-07 广州泰迪智能科技有限公司 一种基于固态硬盘的大数据与人工智能教学实训环境和资源集成方法
US11487646B2 (en) * 2019-03-01 2022-11-01 Red Hat, Inc. Dynamic test case timers
CN111831502A (zh) * 2019-04-15 2020-10-27 中国信息通信研究院 一种企业级硬盘能效比测试方法和系统
CN111858268A (zh) * 2019-04-24 2020-10-30 中国信息通信研究院 一种基于能耗测试确定能效等级的方法
CN112131095B (zh) * 2019-06-25 2023-09-01 北京京东振世信息技术有限公司 压力测试方法和装置
CN111063387B (zh) * 2019-12-29 2021-08-31 苏州浪潮智能科技有限公司 一种固态硬盘性能测试方法、装置、设备及存储介质
CN111324547A (zh) * 2020-03-26 2020-06-23 陕西工业职业技术学院 一种计算机软件分析系统
CN111639029B (zh) * 2020-05-28 2024-04-26 东莞市锐易电子科技有限公司 一种软ac产品的可靠性测试方法及测试系统
CN111813673A (zh) * 2020-07-06 2020-10-23 珠海西山居移动游戏科技有限公司 硬盘填充测试方法及系统
CN112000574A (zh) * 2020-08-18 2020-11-27 中国建设银行股份有限公司 一种压力测试方法、装置、设备和存储介质
CN112162925A (zh) * 2020-09-29 2021-01-01 新华三大数据技术有限公司 一种基于服务虚拟化的测试方法和系统
CN112306804B (zh) * 2020-10-30 2023-05-23 联想(北京)有限公司 一种处理方法及处理装置
CN113625949B (zh) * 2021-06-29 2023-08-15 苏州浪潮智能科技有限公司 一种固态硬盘的性能一致性优化方法、系统、设备及介质
CN113703914B (zh) * 2021-08-06 2024-02-23 长江存储科技有限责任公司 测试方法和测试系统
CN113778831A (zh) * 2021-09-27 2021-12-10 广州文远知行科技有限公司 一种数据应用性能分析方法、装置、设备和介质
CN115061886A (zh) * 2022-05-20 2022-09-16 北京百度网讯科技有限公司 一种性能数据处理方法、装置、设备及存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7356736B2 (en) 2001-09-25 2008-04-08 Norman Asa Simulated computer system for monitoring of software performance
JP4702127B2 (ja) * 2006-03-22 2011-06-15 日本電気株式会社 仮想計算機システム及びその物理リソース再構成方法並びにプログラム
US10013268B2 (en) 2006-08-29 2018-07-03 Prometric Inc. Performance-based testing system and method employing emulation and virtualization
US7996113B2 (en) 2007-09-28 2011-08-09 GM Global Technology Operations LLC Methods of integrating real and virtual world using virtual sensor/actuator
CN102479096B (zh) * 2010-11-30 2014-08-27 国际商业机器公司 虚拟机部署规划方法及相关设备
US9262196B2 (en) 2010-11-30 2016-02-16 International Business Machines Corporation Virtual machine deployment planning method and associated apparatus
CN102053858B (zh) * 2010-12-28 2013-05-22 华中科技大学 一种虚拟cpu调度方法
US8793535B2 (en) 2011-07-21 2014-07-29 Microsoft Corporation Optimizing system usage when running quality tests in a virtual machine environment
US9329968B2 (en) 2011-08-29 2016-05-03 Red Hat, Inc. Testing application performance using virtual machines created from the same image on different hardware platforms
US9363154B2 (en) * 2012-09-26 2016-06-07 International Business Machines Corporaion Prediction-based provisioning planning for cloud environments

Also Published As

Publication number Publication date
US9519573B2 (en) 2016-12-13
CN104951396A (zh) 2015-09-30
US20170004062A1 (en) 2017-01-05
US9519572B2 (en) 2016-12-13
US20150293836A1 (en) 2015-10-15
US20150278079A1 (en) 2015-10-01
US9921939B2 (en) 2018-03-20
US9921940B2 (en) 2018-03-20
US20160378643A1 (en) 2016-12-29

Similar Documents

Publication Publication Date Title
CN104951396B (zh) 基于虚拟机创建软件性能测试环境的方法和装置
CN107924323B (zh) 基于依赖的容器部署
CN103814358B (zh) 服务器群内的虚拟机放置
JP6019139B2 (ja) クラウドサービス間の転送時のアプリケーション性能の維持
US9323561B2 (en) Calibrating cloud computing environments
US10235480B2 (en) Simulation of internet of things environment
JP5284791B2 (ja) 処理能力のリアル・タイム・ベンチマーキングに基づきソフトウェア製品の使用量を測定する方法、システムおよびコンピュータ・プログラム
EP3374864B1 (en) Performance monitoring in a distributed storage system
US11144839B2 (en) Processing data for use in a cognitive insights platform
WO2009108344A1 (en) Method, system and apparatus for managing, modeling, predicting, allocating and utilizing resources and bottlenecks in a computer network
CN102759979A (zh) 一种虚拟机能耗估计方法及装置
CN104335180A (zh) 虚拟化i/o处理延迟的实时测量
CN107533503A (zh) 在部署期间选择虚拟化环境的方法和装置
US10862774B2 (en) Utilizing machine learning to proactively scale cloud instances in a cloud computing environment
Park et al. Romano: autonomous storage management using performance prediction in multi-tenant datacenters
TW200917129A (en) Scheduling tasks across multiple processor units of differing capacity
TWI663548B (zh) 用於時間配量儀器之電腦程式產品、電腦系統及方法
US20160154874A1 (en) Method for determining condition of category division of key performance indicator, and computer and computer program therefor
JP2015141552A (ja) 性能予測装置および性能モデル生成方法
CN104424525B (zh) 辅助确定项目范围的方法和装置
TWI729678B (zh) 用於移動資料及設定儲存金鑰指令之電腦程式產品、電腦系統及電腦實施方法
US20170031625A1 (en) Data collection in a multi-threaded processor
CN111258705B (zh) 用于检测云硬盘输入输出io邻位干扰的方法和装置
WO2024072412A1 (en) System, method, device, and program for enhanced graph-based node classification
KR20230092174A (ko) 딥러닝을 이용한 프로파일 예측하는 컴퓨팅 장치, 및 그것의 동작 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant