CN103116517B - 虚拟化平台下i/o通道的调整方法和调整装置 - Google Patents

虚拟化平台下i/o通道的调整方法和调整装置 Download PDF

Info

Publication number
CN103116517B
CN103116517B CN201310027312.7A CN201310027312A CN103116517B CN 103116517 B CN103116517 B CN 103116517B CN 201310027312 A CN201310027312 A CN 201310027312A CN 103116517 B CN103116517 B CN 103116517B
Authority
CN
China
Prior art keywords
worker thread
rear end
equipment
processing
host
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
CN201310027312.7A
Other languages
English (en)
Other versions
CN103116517A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201310027312.7A priority Critical patent/CN103116517B/zh
Publication of CN103116517A publication Critical patent/CN103116517A/zh
Priority to EP13802520.0A priority patent/EP2772854B1/en
Priority to JP2014557993A priority patent/JP5923627B2/ja
Priority to PCT/CN2013/080837 priority patent/WO2014114072A1/zh
Priority to AU2013273688A priority patent/AU2013273688B2/en
Priority to KR1020137034172A priority patent/KR101559097B1/ko
Priority to RU2013158942/08A priority patent/RU2573733C1/ru
Priority to US14/108,804 priority patent/US8819685B2/en
Application granted granted Critical
Publication of CN103116517B publication Critical patent/CN103116517B/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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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/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/45579I/O management, e.g. providing access to device drivers or storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Bus Control (AREA)
  • General Factory Administration (AREA)

Abstract

本发明提供了虚拟化平台下I/O通道的调整方法和调整装置,应用于虚拟化技术领域,I/O通道的调整方法包括:宿主机HOS统计运行在该HOST上的多个虚拟机VM当前时刻的平均I/O吞吐量;该HOST根据当前时刻的平均I/O吞吐量在该多个VM的前端设备和后端设备之间增加或减少用于处理VM的工作线程;该HOST调整该多个VM的前端设备和后端设备中的队列与用于处理VM的工作线程的对应关系。应用本发明,根据运行在HOST上多个VM的I/O吞吐量动态调整该多个VM的前端设备和后端设备之间的I/O通道所占用的I/O通道资源,在I/O吞吐量下降时,释放空闲的I/O通道资源,避免I/O通道资源浪费;在I/O吞吐量增加时,增加I/O通道资源,提高I/O通道的数据传输能力。

Description

虚拟化平台下I/O通道的调整方法和调整装置
技术领域
本发明涉及虚拟化技术领域,尤其涉及虚拟化平台下I/O通道的调整方法和调整装置。
背景技术
虚拟化是将计算机物理资源如服务器、网络、内存及存储等予以抽象、转换后呈现出来,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部分是不受现有资源的架设方式,地域或物理组态所限制。物理存在的宿主机HOST运行多个虚拟机(Virtual Machine,简称为VM),HOST管理所有的物理硬件设备及资源,将一个独占设备虚拟成多个虚拟设备,供多个用户线程同时使用,每个用户能够看到的设备就是虚拟设备,物理硬件设备对用户透明。
虚拟化环境下,VM并不能直接访问硬件设备,HOST为VM提供连通硬件设备的数据通路,即I/O通道。本发明中,通道包括VM的前端设备FrontDevice和VM的后端设备Back Device之间的数据通道、以及VM的后端设备和HOST的本地设备Native Device之间的数据通道;其中,VM的前端设备是虚拟机中看到的设备,实际是HOST为VM模拟的设备;VM的后端设备是HOST操作系统中与VM的前端设备相对接的软件模拟设备;HOST的本地设备Native Device是HOST的物理设备。
图1描述了现有技术中一种虚拟化平台下简单多I/O通道技术,图1中以两个虚拟机VM1和VM2为例,VM的前端设备和后端设备之间有多个I/O通道(图1中以两个I/O通道为例),数据处理模块是VM的前端设备和后端设备之间的桥梁,用于数据拷贝、数据过滤或是其他数据处理业务,包括多个工作线程(图1中以两个工作线程为例),工作线程的个数和VM的前端设备和后端设备之间I/O通道的个数相同,且其中每个I/O通道对应一个工作线程,VM的后端设备与网桥Bridge之间以及网桥Bridge与本地设备NativeDevice之间是单通道,VM的后端设备通过该单通道实现与本地设备NativeDevice之间的数据传输。
发明人发现上述现有技术至少存在如下技术问题:VM的前端设备和后端设备之间的I/O通道个数是在创建VM的时候确定,VM整个生命周期中该I/O通道个数不能改变,因此VM的前端设备和后端设备之间的I/O通道所占用的通道资源也不能改变,当VM的前端设备和后端设备之间的I/O吞吐量发生变化时,无法调整I/O通道资源,在I/O吞吐量下降时,无法释放空闲的I/O通道资源,造成I/O通道资源浪费;在I/O吞吐量增加时,无法增加I/O通道资源,I/O通道数据传输能力无法提高,系统性能下降。
发明内容
本发明实施例提供虚拟化平台下I/O通道的调整方法和HOST调整装置,以实现动态地调整多个VM的前端设备和后端设备之间I/O通道资源的分配,从而提高系统性能。
第一方面,本发明提供了一种虚拟化平台下I/O通道的调整方法,包括:
宿主机HOST统计运行在所述HOST上的多个虚拟机VM当前时刻的平均I/O吞吐量;在当前时刻的平均I/O吞吐量大于第一阈值时,所述HOST在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的所述多个VM的平均I/O吞吐量小于第一阈值;或者,在当前时刻的平均I/O吞吐量小于第二阈值时,所述HOST在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的所述多个VM的平均I/O吞吐量大于第二阈值;其中,所述第一阈值大于所述第二阈值;所述HOST根据增加或减少后的用于处理VM的工作线程,分别调整所述多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和所述多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系,以便于在所述多个VM的前端设备和所述多个VM的后端设备之间形成多个数据传输通道。
在第一种可能的实现方式中,结合第一方面,如果当前时刻的平均I/O吞吐量大于第一阈值,所述HOST在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程的步骤之前,进一步包括:
所述HOST将在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程所带来的CPU利用率的增长和所带来的I/O吞吐量的增长进行比较;如果所述I/O吞吐量的增长大于CPU利用率的增长,则执行所述HOST在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程的步骤。
在第二种可能的实现方式中,结合第一方面,如果当前时刻的平均I/O吞吐量小于第二阈值,所述HOST在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程的步骤之前,进一步包括:
所述HOST判断在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少是否导致无法响应所述多个VM的吞吐量;如果在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少不会导致无法响应所述多个VM的吞吐量,则执行所述HOST在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程的步骤。
在第三种可能的实现方式中,结合第一方面或第一方面的第一种或第二种可能的实现方式,所述HOST根据增加或减少后的用于处理VM的工作线程,分别调整所述多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和所述多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系,包括:
在增加或减少后的用于处理VM的工作线程的数量小于运行在所述HOST上VM的数量时,所述HOST将所述每个工作线程分别对应每个VM的前端设备中一个队列和每个VM的后端设备中一个队列;或者,在增加或减少后的用于处理VM的工作线程的数量大于或等于运行在所述HOST上VM的数量时,所述HOST将独占工作线程对应一个VM的前端设备和后端设备中一个队列、以及将共享工作线程对应至少两个VM的前端设备和后端设备中没有被所述独占工作线程对应的队列,所述用于处理VM的工作线程包括所述独占工作线程和所述共享工作线程。
在第四种可能的实现方式中,结合第一方面或第一方面的第一种或第二种或第三种可能的实现方式,所述HOST根据增加或减少后的用于处理VM的工作线程,分别调整所述多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和所述多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系之后,所述方法还包括:
所述HOST调整所述多个VM的后端设备中的队列和所述HOST中本地设备Native Device中的队列的对应关系,以便于在所述多个VM的后端设备和所述Native Device之间形成多个数据传输通道。
第二方面,本发明提供了一种虚拟化平台下I/O通道的调整装置HOST,HOST包括:
统计模块,用于统计运行在宿主机HOST上的多个虚拟机VM当前时刻的平均I/O吞吐量;处理模块,与所述统计模块连接,用于在所述统计模块统计的当前时刻的平均I/O吞吐量大于第一阈值时,在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的所述多个VM的平均I/O吞吐量小于第一阈值;或者,用于在所述统计模块统计的当前时刻的平均I/O吞吐量小于第二阈值时,在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的所述多个VM的平均I/O吞吐量大于第二阈值;其中,所述第一阈值大于所述第二阈值;第一调整模块,与所述处理模块连接,用于根据所述处理模块增加或减少后的用于处理VM的工作线程,分别调整所述多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和所述多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系,以便于在所述多个VM的前端设备和所述多个VM的后端设备之间形成多个数据传输通道。
在第一种可能的实现方式中,结合第一方面,所述调整装置还包括:
判断模块,用于在所述统计模块统计的当前时刻的平均I/O吞吐量大于第一阈值时,将在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程所带来的CPU利用率的增长和所带来的I/O吞吐量的增长进行比较;所述处理模块,还用于如果所述I/O吞吐量的增长大于CPU利用率的增长,在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的所述多个VM的平均I/O吞吐量小于第一阈值。
在第二种可能的实现方式中,结合第一方面,所述调整装置还包括:
判断模块,用于在所述统计模块统计的当前时刻的平均I/O吞吐量小于第二阈值时,判断在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少是否导致无法响应所述多个VM的吞吐量;所述处理模块,还用于如果在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少不会导致无法响应所述多个VM的吞吐量,在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的所述多个VM的平均I/O吞吐量大于第二阈值。
在第三种可能的实现方式中,结合第一方面或第一方面的第一种或第二种可能的实现方式,所述第一调整模块具体用于:
在增加或减少后的用于处理VM的工作线程的数量小于运行在所述HOST上VM的数量时,将所述每个工作线程分别对应每个VM的前端设备中一个队列和每个VM的后端设备中一个队列;或者,在增加或减少后的用于处理VM的工作线程的数量大于或等于运行在所述HOST上VM的数量时,将独占工作线程对应一个VM的前端设备和后端设备中一个队列、以及将共享工作线程对应至少两个VM的前端设备和后端设备中没有被所述独占工作线程对应的队列,所述用于处理VM的工作线程包括所述独占工作线程和所述共享工作线程。
在第四种可能的实现方式中,结合第一方面或第一方面的第一种或第二种或第三种可能的实现方式,所述调整装置还包括:
第二调整模块,用于调整所述多个VM的后端设备中的队列和所述HOST中本地设备Native Device中的队列的对应关系,以便于在所述多个VM的后端设备和所述Native Device之间形成多个数据传输通道。
第三方面,本发明提供了一种宿主机HOST,其特征在于,所述HOST包括:本地设备Native Device,运行在所述Native Device之上的多个虚拟机VM的前端设备和后端设备,以及位于所述多个VM的前端设备和后端设备之间的数据处理模块,其中:
所述数据处理模块用于:
统计所述多个VM当前时刻的平均I/O吞吐量;在当前时刻的平均I/O吞吐量大于第一阈值时,在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的所述多个VM的平均I/O吞吐量小于第一阈值;或者,在当前时刻的平均I/O吞吐量小于第二阈值时,所述HOST在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的所述多个VM的平均I/O吞吐量大于第二阈值;其中,所述第一阈值大于所述第二阈值;根据增加或减少后的用于处理VM的工作线程,分别调整所述多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和所述多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系,以便于在所述多个VM的前端设备和所述多个VM的后端设备之间形成多个数据传输通道。
在第一种可能的实现方式中,结合第三方面,所述数据处理模块还用于:
将在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程所带来的CPU利用率的增长和所带来的I/O吞吐量的增长进行比较;如果所述I/O吞吐量的增长大于CPU利用率的增长,在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的所述多个VM的平均I/O吞吐量小于第一阈值。
在第二种可能的实现方式中,结合第三方面,所述数据处理模块还用于:
判断在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少是否导致无法响应所述多个VM的吞吐量;如果在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少不会导致无法响应所述多个VM的吞吐量,在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的所述多个VM的平均I/O吞吐量大于第二阈值。
可见,在本发明的实施例中,根据当前时刻多个VM的平均I/O吞吐量判断是否在该多个VM的前端设备和后端设备之间增加或减少用于处理VM的工作线程,在当前时刻多个VM的平均I/O吞吐量大于第一阈值时,增加用于处理VM的工作线程,即增加I/O通道资源,提高I/O通道的数据传输能力;在当前时刻多个VM的平均I/O吞吐量小于第二阈值时,减少用于处理VM的工作线程,即减少I/O通道资源,避免I/O通道资源浪费。
进一步,HOST通过调整多个VM的后端设备中的队列和宿主机HOST中本地设备Native Device中队列的对应关系,在多个VM的后端设备和该本地设备Native Device之间形成多个数据传输通道,从而实现了多个VM的前端设备和该HOST中本地设备Native Device之间的多条I/O通道,提高了该多个VM的前端设备和该HOST中本地设备Native Device之间的数据传输能力。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中一种虚拟化平台下简单多I/O通道技术的架构图;
图2为本发明一个实施例提供的虚拟化平台下I/O通道的调整方法流程图;
图3为本发明提供的虚拟化平台下多个VM的前端设备和后端设备之间I/O工作模式为共享模式的架构图;
图4为本发明提供的虚拟化平台下多个VM的前端设备和后端设备之间I/O工作模式为混合模式的架构图;
图5为本发明一个实施例提供的虚拟化平台下I/O通道的调整装置的结构示意图;
图6为本发明另一个实施例提供的虚拟化平台下I/O通道的调整装置的结构示意图。
图7为本发明一个实施例提供的宿主机HOST的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了方便理解本发明实施例,首先在此介绍本发明实施例描述中会引入的几个要素。
宿主机HOST:作为管理层,用以完成硬件资源的管理、分配;为虚拟机呈现虚拟硬件平台;其中,虚拟硬件平台对其上运行的各个虚拟机提供各种硬件资源,如提供虚拟处理器(如VCPU)、虚拟内存、虚拟磁盘、虚拟网卡等等。其中,该虚拟磁盘可对应HOST的一个文件或者一个逻辑块设备。虚拟机运行在HOST为其准备的虚拟硬件平台上,HOST上运行一个或多个虚拟机。
虚拟机VM:通过虚拟机软件可以在一台物理计算机上模拟出一台或者多台虚拟的计算机,而这些虚拟机就像真正的计算机那样进行工作,虚拟机上可以安装操作系统和应用程序,虚拟机还可访问网络资源。对于在虚拟机中运行的应用程序而言,虚拟机就像是在真正的计算机中进行工作。
数据处理模块:本发明中,在VM的前端设备和后端设备之间引入了数据处理模块,数据处理模块用于处理VM的前端设备和后端设备之间的数据传输,通过工作线程来处理VM的前端设备和后端设备中队列的数据。数据处理模块一般是通过软件实现,即通过处理器读取特殊功能的软件代码指令来实现。
本地设备Native Device:虚拟化环境运行的硬件平台。其中,该NativeDevice可包括多种硬件,例如某计算节点的Native Device可包括处理器(如CPU)和内存,还可以包括网卡、存储器等等高速/低速输入/输出(I/O,Input/Output)设备。
网桥Bridge:位于VM的后端设备和宿主机HOST的本地设备NativeDevice之间的网络设备或软件,实现VM的后端设备和宿主机HOST的本地设备Native Device之间的网络互连,对数据帧进行转发。
图2描述了本发明实施例提供的虚拟化平台下I/O通道的调整方法的流程,具体包括:
S201、宿主机HOST统计运行在该HOST上的多个虚拟机VM当前时刻的平均I/O吞吐量。
具体的,HOST可以通过先统计运行在该HOST上的多个VM当前时刻的总的I/O吞吐量,再除以运行在该HOST上的虚拟机的数量,得到当前时刻该多个VM的平均I/O吞吐量。
S202、在当前时刻的平均I/O吞吐量大于第一阈值时,该HOST在该多个VM的前端设备和后端设备之间增加用于处理VM的工作线程;或者,在当前时刻的平均I/O吞吐量小于第二阈值时,该HOST在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程。
其中,在该多个VM的前端设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的该多个VM的平均I/O吞吐量大于第一阈值;在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的该多个VM的平均I/O吞吐量大于第二阈值。第一阈值大于第二阈值,第一阈值用于指示该多个VM的平均I/O吞吐量的上限值,第二阈值用于指示该多个VM的平均I/O吞吐量的下限值,即第一阈值反映的是单个VM最多所能承受的I/O吞吐量的上限,第二阈值反映的是单个VM最少应该承受的I/O吞吐量的下限。
进一步,如果当前时刻的平均I/O吞吐量大于第一阈值,该HOST在该多个VM的前端设备和后端设备之间增加用于处理VM的工作线程的步骤之前,还包括:
改HOST将在该多个VM的前端设备和后端设备之间增加用于处理VM的工作线程所带来的CPU利用率的增长和所带来的I/O吞吐量的增长进行比较;如果I/O吞吐量的增长大于CPU利用率的增长,则执行该HOST在该多个VM的前端设备和后端设备之间增加用于处理VM的工作线程的步骤。
其中,所带来的CPU利用率的增长是指增加用于处理VM的工作线程相对于没有增加用于处理VM的工作线程所增加的CPU利用率,可以用CPU利用率的增长量和/或CPU利用率的增长率来表示;所带来的I/O吞吐量的增长是指增加用于处理VM的工作线程相对于没有增加用于处理VM的工作线程所增加处理的I/O吞吐量,可以用I/O吞吐量的增长量和/或I/O吞吐量的增长率来表示。需要说明的是,本发明对于具体如何比较CPU利用率的增长和I/O吞吐量的增长不做限定,这里示例性的给出两种衡量办法,如果I/O吞吐量的增长量大于CPU利用率的增长量,或者I/O吞吐量的增长率大于CPU利用率的增长率,则确定增加用于处理VM的工作线程。
进一步,如果当前时刻的平均I/O吞吐量小于第二阈值,该HOST在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程的步骤之前,还包括:
改HOST判断在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少是否导致无法响应该多个VM的吞吐量;如果在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少不会导致无法响应该多个VM的吞吐量,则执行该HOST在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程的步骤。即,如果所带来的CPU利用率的减少会导致无法响应该多个VM的吞吐量,则不减少工作线程。
可选地,还可以为该多个VM设置优先级,使得享有高优先级的VM保持对工作线程的独占,享有专有I/O通道,无论宿主机HOST整体I/O负载如何,高优先级的VM独占的I/O通道资源不受影响;对于优先级级别相同的VM,则按照上述增加或减少工作线程的方法进行处理。
需要说明的是,在本发明中,I/O通道资源包括用于处理VM的工作线程,以及VM的前端设备和后端设备中的队列。
S203、该HOST根据增加或减少后的用于处理VM的工作线程,分别调整该多个VM的前端设备和后端设备中的队列与用于处理VM的工作线程的对应关系。
其中,上述对应关系包括:该多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和该多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系,该HOST分别调整该对应关系以便于在该多个VM的前端设备和该多个VM的后端设备之间形成多个数据传输通道。
具体的,该HOST根据增加或减少后的用于处理VM的工作线程,分别调整该多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和该多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系,包括:
在增加或减少后的用于处理VM的工作线程的数量小于运行在HOST上VM的数量时,该HOST将每个工作线程分别对应每个VM的前端设备中一个队列和每个VM的后端设备中一个队列;或者,在增加或减少后的用于处理VM的工作线程的数量大于或等于运行在HOST上VM的数量时,该HOST将独占工作线程对应一个VM的前端设备和后端设备中一个队列、以及将共享工作线程对应至少两个VM的前端设备和后端设备中没有被独占工作线程对应的队列;其中,用于处理VM的工作线程包括独占工作线程和共享工作线程。需要说明的是,上述两种调整模式分别对应共享模式和混合模式,关于共享模式和混合模式具体可见图3和图4所示的描述。
进一步,在HOST根据增加或减少后的用于处理VM的工作线程,分别调整所述多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和所述多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系之后,该虚拟化平台下I/O通道的调整方法还包括:
该HOST调整该多个VM的后端设备中的队列和HOST中本地设备Native Device中的队列的对应关系,以便于在该多个VM的后端设备和该Native Device之间形成多个数据传输通道。
具体的,现有技术中,Native Device可以具有多个队列,VM的后端设备中的数据在进入该Native Device时会进行队列的选择,以通过不同的队列实现数据传输,该技术可以由该Native Device中的硬件驱动实现。考虑到本发明中,由于VM的后端设备中也具有多个队列,因此该Native Device在通过网桥Bridge向VM的后端设备中发送数据时,也可以选择VM的后端设备中的多个队列,以实现在VM的后端设备和该Native Device之间形成多个数据传输通道。因此调整该多个VM的后端设备中的队列和HOST中本地设备Native Device中的队列的对应关系实际上是,Native Device在通过网桥Bridge向VM的后端设备中发送数据时,如何选择VM的后端设备中的队列。
针对如何选择VM的后端设备中的队列,可以根据该Native Device中队列接收VM的后端设备中队列发送数据时队列之间的对应关系,反向选择VM的后端设备中的队列,以保持VM的后端设备中队列和Native Device中队列之间互相传输数据的通道的一致性;或者,该Native Device重新根据数据流的属性(如来自同一源端或其他)选择VM的后端设备中不同的队列。本发明通过上述选择方式以实现调整该多个VM的后端设备中的队列和HOST中本地设备Native Device中的队列的对应关系。
由于在该多个VM的后端设备和该HOST中本地设备Native Device之间通过调整队列的对应关系,在该多个VM的后端设备和本地设备NativeDevice之间形成多个数据传输通道,实现了该多个VM的前端设备和该HOST中本地设备Native Device之间的多条I/O通道,可以提高该多个VM和该HOST本地设备Native Device之间的数据传输能力。
在上述实施例可知,HOST根据当前时刻多个VM的平均I/O吞吐量判断是否在该多个VM的前端设备和后端设备之间增加或减少用于处理VM的工作线程,在当前时刻多个VM的平均I/O吞吐量大于第一阈值时,增加用于处理VM的工作线程,即增加I/O通道资源,提高I/O通道的数据传输能力;在当前时刻多个VM的平均I/O吞吐量小于第二阈值时,减少用于处理VM的工作线程,即减少I/O通道资源,避免I/O通道资源浪费。
考虑到根据当前时刻的平均I/O吞吐量增加或减少后的I/O通道资源的有限性,特别是I/O通道资源中工作线程的有限性,根据I/O通道资源中工作线程的数量和运行在宿主机HOST中VM的数量,本发明在上述多个VM的前端设备和后端设备之间设置了两种I/O工作模式,包括共享模式和混合模式,并且该两种I/O工作模式是可以互相切换,当满足一定条件时,可以由一种工作模式切换到另一种工作模式。
针对共享模式,在用于处理VM的工作线程的数量小于运行在该HOST上VM的数量时,HOST将多个VM的前端设备和后端设备之间I/O工作模式调整为共享模式,即数据处理模块上的工作线程采取共享模式来处理该多个VM的前端设备和后端设备中队列的数据,具体的,数据处理模块上的工作线程分别对应运行在HOST上每个VM的前端设备中一个队列和每个VM后端设备中一个队列。
图3为VM的前端设备和后端设备之间I/O工作模式为共享模式的示意图,由图可知,运行在宿主机HOST上的VM分别为VM1、VM2和VM3,数据处理模块上的工作线程分别为工作线程1和工作线程2,其中,工作线程1分别处理VM1、VM2和VM3中前端设备和后端设备中的队列1,工作线程2分别处理VM1、VM2和VM3中前端设备和后端设备中的队列2。
针对混合模式,在用于处理VM的工作线程的数量大于或等于运行在该HOST上VM的数量时,HOST将该多个VM的前端设备和后端设备之间I/O工作模式调整为混合模式,即数据处理模块上的工作线程采取混合模式来处理VM的前端设备和后端设备中队列的数据,具体的,可以将数据处理模块上的工作线程分为独占工作线程和共享工作线程两种,其中,独占工作线程用于单独处理一个VM的前端设备和后端设备中一个队列的数据,共享工作线程用于共享处理至少两个VM的前端设备和后端设备中没有被独占工作线程处理的队列的数据。
图4为VM的前端设备和后端设备之间I/O工作模式为混合模式的示意图,由图可知,运行在宿主机HOST上的VM分别为VM1、VM2和VM3,数据处理模块上的工作线程有4个,包括独占工作线程1、独占工作线程2、独占工作线程3和共享工作线程1,其中,独占工作线程1单独处理VM1中前端设备和后端设备中队列1的数据,独占工作线程2单独处理VM2中前端设备和后端设备中队列1的数据,独占工作线程3单独处理VM3中前端设备和后端设备中队列1的数据,共享工作线程共享处理VM1、VM2和VM3中每个VM的前端设备和后端设备中队列2的数据。图4仅示意了共享工作线程处理至少两个VM中每个VM的前端设备和后端设备中一个队列的数据的情形,共享工作线程还可以处理其他情形下多个队列的数据,本发明对比不做限制。
进一步,由图3和图4可知,除了上述在多个VM的前端设备和后端设备之间形成多个I/O通道,宿主机HOST还通过调整该多个VM的后端设备中的队列和该HOST中本地设备Native Device中队列的对应关系,在该多个VM的后端设备和该本地设备Native Device之间形成多个数据传输通道,从而实现了多个VM的前端设备和该HOST中本地设备Native Device之间的多条I/O通道,提高了该多个VM的前端设备和该HOST中本地设备NativeDevice之间的数据传输能力。
针对上述虚拟化平台下I/O通道的调整方法,本发明下述实施例提供了虚拟化平台下I/O通道的调整装置的结构。
图5描述了本发明实施例提供的虚拟化平台下I/O通道的调整装置500的结构,该调整装置500具体包括:
统计模块501,用于统计运行在宿主机HOST上的多个虚拟机VM当前时刻的平均I/O吞吐量。
处理模块502,与统计模块5001连接,用于在统计模块501统计的当前时刻的平均I/O吞吐量大于第一阈值时,在该多个VM的前端设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的该多个VM的平均I/O吞吐量小于第一阈值;或者,用于在统计模块501统计的当前时刻的平均I/O吞吐量小于第二阈值时,在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的该多个VM的平均I/O吞吐量大于第二阈值;其中,第一阈值大于第二阈值。
第一调整模块503,与处理模块502连接,用于根据处理模块502增加或减少后的用于处理VM的工作线程,分别调整该多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和该多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系,以便于在该多个VM的前端设备和该多个VM的后端设备之间形成多个数据传输通道。
可选的,该调整装置500还包括:
判断模块504,用于在统计模块501统计的当前时刻的平均I/O吞吐量大于第一阈值时,将在该多个VM的前端设备和后端设备之间增加用于处理VM的工作线程所带来的CPU利用率的增长和所带来的I/O吞吐量的增长进行比较;
处理模块502,还用于在判断模块504判断如果所述I/O吞吐量的增长大于CPU利用率的增长,在该多个VM的前端设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的该多个VM的平均I/O吞吐量小于第一阈值。
可选的,该调整装置500还包括:
判断模块504,用于在统计模块501统计的当前时刻的平均I/O吞吐量小于第二阈值时,判断在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少是否导致无法响应该多个VM的吞吐量;
处理模块502,还用于在判断模块504判断如果在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少不会导致无法响应该多个VM的吞吐量,在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的该多个VM的平均I/O吞吐量大于第二阈值。
进一步,第一调整模块503具体用于:
在增加或减少后的用于处理VM的工作线程的数量小于运行在该HOST上VM的数量时,将每个工作线程分别对应每个VM的前端设备中一个队列和每个VM的后端设备中一个队列;或者,在增加或减少后的用于处理VM的工作线程的数量大于或等于运行在该HOST上VM的数量时,将独占工作线程对应一个VM的前端设备和后端设备中一个队列、以及将共享工作线程对应至少两个VM的前端设备和后端设备中没有被独占工作线程对应的队列,其中,用于处理VM的工作线程包括独占工作线程和共享工作线程。
进一步,调整装置500还包括第二调整模块505,用于调整该多个VM的后端设备中的队列和HOST中本地设备Native Device中的队列的对应关系,以便于在该多个VM的后端设备和该Native Device之间形成多个数据传输通道。
由于第二调整模块505在该多个VM的后端设备和宿主机HOST中本地设备Native Device之间形成了多个数据通道,实现了该多个VM的前端设备和HOST中本地设备Native Device之间的多条I/O通道,提高该多个VM和HOST本地设备Native Device之间的数据传输能力。
由上述实施例可知,该虚拟化平台下I/O通道的调整装置根据当前时刻多个VM的平均I/O吞吐量判断是否在该多个VM的前端设备和后端设备之间增加或减少用于处理VM的工作线程,在当前时刻多个VM的平均I/O吞吐量大于第一阈值时,增加用于处理VM的工作线程,即增加I/O通道资源,提高I/O通道的数据传输能力;在当前时刻多个VM的平均I/O吞吐量小于第二阈值时,减少用于处理VM的工作线程,即减少I/O通道资源,避免I/O通道资源浪费。
图6描述了本发明另一个实施例提供的虚拟化平台下I/O通道的调整装置600的结构,该调整装置600包括:至少一个处理器601,例如CPU,至少一个网络接口604或者其他用户接口603,存储器605,至少一个通信总线602。通信总线602用于实现这些组件之间的连接通信。该HOST600可选的包含用户接口603,包括显示器,键盘或者点击设备(例如,鼠标,轨迹球(trackball),触感板或者触感显示屏)。存储器605可能包含高速RAM存储器,也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器605可选的可以包含至少一个位于远离前述处理器601的存储装置。在一些实施方式中,存储器605还可以包括操作系统606,包含各种程序,用于实现各种基础业务以及处理基于硬件的任务。
具体地,处理器601用于:
统计运行在宿主机HOST上的多个虚拟机VM当前时刻的平均I/O吞吐量;
在当前时刻的平均I/O吞吐量大于第一阈值时,在该多个VM的前端设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的该多个VM的平均I/O吞吐量小于第一阈值;或者,在当前时刻的平均I/O吞吐量小于第二阈值时,在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的该多个VM的平均I/O吞吐量大于第二阈值;其中,第一阈值大于第二阈值;
根据增加或减少后的用于处理VM的工作线程,分别调整该多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和该多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系,以便于在该多个VM的前端设备和该多个VM的后端设备之间形成多个数据传输通道。
进一步,如果当前时刻的平均I/O吞吐量大于第一阈值,处理器601在该多个VM的前端设备和后端设备之间增加用于处理VM的工作线程的步骤之前,还包括:将在该多个VM的前端设备和后端设备之间增加用于处理VM的工作线程所带来的CPU利用率的增长和所带来的I/O吞吐量的增长进行比较;如果I/O吞吐量的增长大于CPU利用率的增长,则执行在该多个VM的前端设备和后端设备之间增加用于处理VM的工作线程的步骤。
如果当前时刻的平均I/O吞吐量小于第二阈值,处理器601在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程的步骤之前,还包括:判断在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少是否导致无法响应该多个VM的吞吐量;如果在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少不会导致无法响应该多个VM的吞吐量,则执行在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程的步骤。
进一步,处理器601用于根据增加或减少后的用于处理VM的工作线程,分别调整该多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和该多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系,包括:
在增加或减少后的用于处理VM的工作线程的数量小于运行在HOST上VM的数量时,将每个工作线程分别对应每个VM的前端设备中一个队列和每个VM的后端设备中一个队列;或者,在增加或减少后的用于处理VM的工作线程的数量大于或等于运行在HOST上VM的数量时,将独占工作线程对应一个VM的前端设备和后端设备中一个队列、以及将共享工作线程对应至少两个VM的前端设备和后端设备中没有被独占工作线程对应的队列;其中,用于处理VM的工作线程包括独占工作线程和共享工作线程。
进一步,处理器601,还用于调整该多个VM的后端设备中的队列和HOST中本地设备Native Device中的队列的对应关系,以便于在该多个VM的后端设备和该Native Device之间形成多个数据传输通道。
由上述实施例可知,该虚拟化平台下I/O通道的调整装置根据当前时刻多个VM的平均I/O吞吐量判断是否在该多个VM的前端设备和后端设备之间增加或减少用于处理VM的工作线程,在当前时刻多个VM的平均I/O吞吐量大于第一阈值时,增加用于处理VM的工作线程,即增加I/O通道资源,提高I/O通道的数据传输能力;在当前时刻多个VM的平均I/O吞吐量小于第二阈值时,减少用于处理VM的工作线程,即减少I/O通道资源,避免I/O通道资源浪费。
需要说明的是,上述本发明实施例揭示的方法可以应用于处理器601中,或者说由处理器601实现。处理器601可能是一种集成电路芯片,具有指令和数据的执行能力,以及信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器601中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器(CPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器605,处理器读取存储器605中的信息,结合其硬件完成上述方法的步骤。
图7描述了本发明一个实施例提供的宿主机HOST700的结构,该HOST包括本地设备Native Device705,运行在该Native Device705之上的多个虚拟机VM的前端设备和后端设备,位于该多个VM的前端设备和后端设备之间的数据处理模块702,以及位于该多个VM的后端设备和该Native Device705之间的网桥Bridge704。
其中,多个VM的前端设备,包括VM1前端设备7011和VM2前端设备7012;多个VM的后端设备,包括VM1后端设备7031和VM2后端设备7032;网桥Bridge704位于VM的后端设备和宿主机HOST的本地设备NativeDevice之间的网络设备或软件,实现VM的后端设备和宿主机HOST的本地设备Native Device之间的网络互连,对数据帧进行转发;本地设备NativeDevice705为虚拟化环境运行的硬件平台,该Native Device可包括多种硬件,例如某计算节点的Native Device可包括处理器(如CPU)和内存,还可以包括网卡、存储器等等高速/低速输入/输出(I/O,Input/Output)设备。
数据处理模块702用于:
统计该多个VM当前时刻的平均I/O吞吐量;
在当前时刻的平均I/O吞吐量大于第一阈值时,在该多个VM的前端设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的该多个VM的平均I/O吞吐量小于第一阈值;或者,在当前时刻的平均I/O吞吐量小于第二阈值时,在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的该多个VM的平均I/O吞吐量大于第二阈值;其中,第一阈值大于第二阈值;
根据增加或减少后的用于处理VM的工作线程,分别调整该多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和该多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系,以便于在该多个VM的前端设备和该多个VM的后端设备之间形成多个数据传输通道。
可选的,数据处理模块702还用于:
将在该多个VM的前端设备和后端设备之间增加用于处理VM的工作线程所带来的CPU利用率的增长和所带来的I/O吞吐量的增长进行比较;如果I/O吞吐量的增长大于CPU利用率的增长,在该多个VM的前端设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的该多个VM的平均I/O吞吐量小于第一阈值。
可选的,数据处理模块702还用于:
判断在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少是否导致无法响应该多个VM的吞吐量;如果在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少不会导致无法响应该多个VM的吞吐量,在该多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的该多个VM的平均I/O吞吐量大于第二阈值。
需要说明的是,数据处理模块702可以执行实施例一中揭示的方法,本发明在此不予赘述,不能理解成是对本实施例一中揭示的方法的限制;并且,数据处理模块702一般是软件实现,即通过处理器读取特殊功能的软件代码指令来实现,数据处理单元702用软件方法实现只是本发明的一个较佳的实现方案,本领域技术人员同样可以用处理器(如CPU、DSP)之类的硬件逻辑来实现数据处理单元702的软件方法,本发明对此不做限制。
由上述实施例可知,宿主机HOST根据当前时刻多个VM的平均I/O吞吐量判断是否在该多个VM的前端设备和后端设备之间增加或减少用于处理VM的工作线程,在当前时刻多个VM的平均I/O吞吐量大于第一阈值时,增加用于处理VM的工作线程,即增加I/O通道资源,提高I/O通道的数据传输能力;在当前时刻多个VM的平均I/O吞吐量小于第二阈值时,减少用于处理VM的工作线程,即减少I/O通道资源,避免I/O通道资源浪费。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (8)

1.一种虚拟化平台下I/O通道的调整方法,其特征在于,包括:
宿主机HOST统计运行在所述HOST上的多个虚拟机VM当前时刻的平均I/O吞吐量;
在当前时刻的平均I/O吞吐量大于第一阈值时,所述HOST将在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程所带来的CPU利用率的增长和所带来的I/O吞吐量的增长进行比较,如果所述I/O吞吐量的增长大于CPU利用率的增长,所述HOST在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的所述多个VM的平均I/O吞吐量小于第一阈值;或者,在当前时刻的平均I/O吞吐量小于第二阈值时,所述HOST在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的所述多个VM的平均I/O吞吐量大于第二阈值;其中,所述第一阈值大于所述第二阈值;
所述HOST根据增加或减少后的用于处理VM的工作线程,分别调整所述多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和所述多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系,以便于在所述多个VM的前端设备和所述多个VM的后端设备之间形成多个数据传输通道,
其中,所述HOST根据增加或减少后的用于处理VM的工作线程,分别调整所述多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和所述多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系,包括:
在增加或减少后的用于处理VM的工作线程的数量小于运行在所述HOST上VM的数量时,所述HOST将所述每个工作线程分别对应每个VM的前端设备中一个队列和每个VM的后端设备中一个队列;或者,
在增加或减少后的用于处理VM的工作线程的数量大于或等于运行在所述HOST上VM的数量时,所述HOST将独占工作线程对应一个VM的前端设备和后端设备中一个队列、以及将共享工作线程对应至少两个VM的前端设备和后端设备中没有被所述独占工作线程对应的队列,所述用于处理VM的工作线程包括所述独占工作线程和所述共享工作线程。
2.如权利要求1所述的方法,其特征在于,如果当前时刻的平均I/O吞吐量小于第二阈值,所述HOST在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程的步骤之前,进一步包括:
所述HOST判断在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少是否导致无法响应所述多个VM的吞吐量;
如果在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少不会导致无法响应所述多个VM的吞吐量,则执行所述HOST在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程的步骤。
3.如权利要求1-2任一项所述的方法,其特征在于,所述HOST根据增加或减少后的用于处理VM的工作线程,分别调整所述多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和所述多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系之后,所述方法还包括:
所述HOST调整所述多个VM的后端设备中的队列和所述HOST中本地设备Native Device中的队列的对应关系,以便于在所述多个VM的后端设备和所述Native Device之间形成多个数据传输通道。
4.一种虚拟化平台下I/O通道的调整装置,其特征在于,包括:
统计模块,用于统计运行在宿主机HOST上的多个虚拟机VM当前时刻的平均I/O吞吐量;
判断模块,用于在所述统计模块统计的当前时刻的平均I/O吞吐量大于第一阈值时,将在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程所带来的CPU利用率的增长和所带来的I/O吞吐量的增长进行比较;
处理模块,与所述统计模块连接,用于在所述统计模块统计的当前时刻的平均I/O吞吐量大于第一阈值时,并且在所述判断模块确定所述I/O吞吐量的增长大于CPU利用率的增长时,在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的所述多个VM的平均I/O吞吐量小于第一阈值;或者,用于在所述统计模块统计的当前时刻的平均I/O吞吐量小于第二阈值时,在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的所述多个VM的平均I/O吞吐量大于第二阈值;其中,所述第一阈值大于所述第二阈值;
第一调整模块,与所述处理模块连接,用于根据所述处理模块增加或减少后的用于处理VM的工作线程,分别调整所述多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和所述多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系,以便于在所述多个VM的前端设备和所述多个VM的后端设备之间形成多个数据传输通道,
所述第一调整模块具体用于:
在增加或减少后的用于处理VM的工作线程的数量小于运行在所述HOST上VM的数量时,将所述每个工作线程分别对应每个VM的前端设备中一个队列和每个VM的后端设备中一个队列;或者,
在增加或减少后的用于处理VM的工作线程的数量大于或等于运行在所述HOST上VM的数量时,将独占工作线程对应一个VM的前端设备和后端设备中一个队列、以及将共享工作线程对应至少两个VM的前端设备和后端设备中没有被所述独占工作线程对应的队列,所述用于处理VM的工作线程包括所述独占工作线程和所述共享工作线程。
5.如权利要求4所述的调整装置,其特征在于,
所述判断模块,还用于在所述统计模块统计的当前时刻的平均I/O吞吐量小于第二阈值时,判断在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少是否导致无法响应所述多个VM的吞吐量;
所述处理模块,还用于如果在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少不会导致无法响应所述多个VM的吞吐量,在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的所述多个VM的平均I/O吞吐量大于第二阈值。
6.如权利要求4-5任一所述的调整装置,其特征在于,所述调整装置还包括:
第二调整模块,用于调整所述多个VM的后端设备中的队列和所述HOST中本地设备Native Device中的队列的对应关系,以便于在所述多个VM的后端设备和所述Native Device之间形成多个数据传输通道。
7.一种宿主机HOST,其特征在于,所述HOST包括:本地设备NativeDevice,运行在所述Native Device之上的多个虚拟机VM的前端设备和后端设备,位于所述多个VM的前端设备和后端设备之间的数据处理模块,以及位于所述多个VM的后端设备和所述Native Device之间的网桥Bridge,其中:
所述数据处理模块用于:
统计所述多个VM当前时刻的平均I/O吞吐量;
在当前时刻的平均I/O吞吐量大于第一阈值时,将在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程所带来的CPU利用率的增长和所带来的I/O吞吐量的增长进行比较,如果所述I/O吞吐量的增长大于CPU利用率的增长,在所述多个VM的前端设备和后端设备之间增加用于处理VM的工作线程,以使得增加工作线程后的所述多个VM的平均I/O吞吐量小于第一阈值;或者,在当前时刻的平均I/O吞吐量小于第二阈值时,HOST在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的所述多个VM的平均I/O吞吐量大于第二阈值;其中,所述第一阈值大于所述第二阈值;
根据增加或减少后的用于处理VM的工作线程,分别调整所述多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和所述多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系,以便于在所述多个VM的前端设备和所述多个VM的后端设备之间形成多个数据传输通道,
其中,所述根据增加或减少后的用于处理VM的工作线程,分别调整所述多个VM的前端设备中的队列与用于处理VM的工作线程的对应关系,和所述多个VM的后端设备中的队列与用于处理VM的工作线程的对应关系,包括:
在增加或减少后的用于处理VM的工作线程的数量小于运行在所述HOST上VM的数量时,将所述每个工作线程分别对应每个VM的前端设备中一个队列和每个VM的后端设备中一个队列;或者,
在增加或减少后的用于处理VM的工作线程的数量大于或等于运行在所述HOST上VM的数量时,将独占工作线程对应一个VM的前端设备和后端设备中一个队列、以及将共享工作线程对应至少两个VM的前端设备和后端设备中没有被所述独占工作线程对应的队列,所述用于处理VM的工作线程包括所述独占工作线程和所述共享工作线程。
8.如权利要求7所述的HOST,其特征在于,所述数据处理模块还用于:
判断在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少是否导致无法响应所述多个VM的吞吐量;
如果在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程所带来的CPU利用率的减少不会导致无法响应所述多个VM的吞吐量,在所述多个VM的前端设备和后端设备之间减少用于处理VM的工作线程,以使得减少工作线程后的所述多个VM的平均I/O吞吐量大于第二阈值。
CN201310027312.7A 2013-01-24 2013-01-24 虚拟化平台下i/o通道的调整方法和调整装置 Active CN103116517B (zh)

Priority Applications (8)

Application Number Priority Date Filing Date Title
CN201310027312.7A CN103116517B (zh) 2013-01-24 2013-01-24 虚拟化平台下i/o通道的调整方法和调整装置
AU2013273688A AU2013273688B2 (en) 2013-01-24 2013-08-05 Method and apparatus for adjusting I/O channel on virtual platform
JP2014557993A JP5923627B2 (ja) 2013-01-24 2013-08-05 仮想プラットフォーム上でi/oチャネルを調整する方法及び装置
PCT/CN2013/080837 WO2014114072A1 (zh) 2013-01-24 2013-08-05 虚拟化平台下i/o通道的调整方法和调整装置
EP13802520.0A EP2772854B1 (en) 2013-01-24 2013-08-05 Regulation method and regulation device for i/o channels in virtualization platform
KR1020137034172A KR101559097B1 (ko) 2013-01-24 2013-08-05 가상 플랫폼 상의 i/o 채널 조정 방법 및 장치
RU2013158942/08A RU2573733C1 (ru) 2013-01-24 2013-08-05 Способ и устройство для регулировки канала i/о на виртуальной платформе
US14/108,804 US8819685B2 (en) 2013-01-24 2013-12-17 Method and apparatus for adjusting I/O channel on virtual platform

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310027312.7A CN103116517B (zh) 2013-01-24 2013-01-24 虚拟化平台下i/o通道的调整方法和调整装置

Publications (2)

Publication Number Publication Date
CN103116517A CN103116517A (zh) 2013-05-22
CN103116517B true CN103116517B (zh) 2016-09-14

Family

ID=48414901

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310027312.7A Active CN103116517B (zh) 2013-01-24 2013-01-24 虚拟化平台下i/o通道的调整方法和调整装置

Country Status (7)

Country Link
EP (1) EP2772854B1 (zh)
JP (1) JP5923627B2 (zh)
KR (1) KR101559097B1 (zh)
CN (1) CN103116517B (zh)
AU (1) AU2013273688B2 (zh)
RU (1) RU2573733C1 (zh)
WO (1) WO2014114072A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100578350B1 (ko) * 2002-08-29 2006-05-11 엘지전자 주식회사 진공청소기의 집진케이스
CN103116517B (zh) * 2013-01-24 2016-09-14 华为技术有限公司 虚拟化平台下i/o通道的调整方法和调整装置
US8819685B2 (en) 2013-01-24 2014-08-26 Huawei Technologies Co., Ltd. Method and apparatus for adjusting I/O channel on virtual platform
WO2015168946A1 (zh) * 2014-05-09 2015-11-12 华为技术有限公司 快速输入输出报文处理方法、装置及系统
CN105556473A (zh) * 2014-12-27 2016-05-04 华为技术有限公司 一种i/o任务处理的方法、设备和系统
TWI648637B (zh) * 2017-11-30 2019-01-21 財團法人工業技術研究院 於平台部署與操作行動作業系統的系統及其方法
CN109240802B (zh) 2018-09-21 2022-02-18 北京百度网讯科技有限公司 请求处理方法和装置
KR102212512B1 (ko) * 2019-02-28 2021-02-04 성균관대학교산학협력단 가상화기술에서 뮤텍스 객체를 이용한 소프트웨어 기반 은닉채널 구성 시스템

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020049869A1 (en) * 2000-10-25 2002-04-25 Fujitsu Limited Virtual computer system and method for swapping input/output devices between virtual machines and computer readable storage medium
CN102317917A (zh) * 2011-06-30 2012-01-11 华为技术有限公司 热点域虚拟机cpu调度方法及虚拟机系统
US20120060172A1 (en) * 2010-09-03 2012-03-08 Ianywhere Solutions, Inc. Dynamically Tuning A Server Multiprogramming Level
CN102508718A (zh) * 2011-11-22 2012-06-20 杭州华三通信技术有限公司 一种虚拟机负载均衡方法和装置
CN102591702A (zh) * 2011-12-31 2012-07-18 华为技术有限公司 虚拟化处理方法及相关装置和计算机系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7788665B2 (en) * 2006-02-28 2010-08-31 Microsoft Corporation Migrating a virtual machine that owns a resource such as a hardware device
US8443398B2 (en) * 2006-11-01 2013-05-14 Skyfire Labs, Inc. Architecture for delivery of video content responsive to remote interaction
CN101499021A (zh) 2008-01-31 2009-08-05 国际商业机器公司 在多个虚拟机上动态分配资源的方法和装置
US8387059B2 (en) * 2008-07-02 2013-02-26 International Business Machines Corporation Black-box performance control for high-volume throughput-centric systems
JP2012234425A (ja) * 2011-05-06 2012-11-29 Canon Inc 画像処理装置及び画像処理方法
CN103116517B (zh) * 2013-01-24 2016-09-14 华为技术有限公司 虚拟化平台下i/o通道的调整方法和调整装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020049869A1 (en) * 2000-10-25 2002-04-25 Fujitsu Limited Virtual computer system and method for swapping input/output devices between virtual machines and computer readable storage medium
US20120060172A1 (en) * 2010-09-03 2012-03-08 Ianywhere Solutions, Inc. Dynamically Tuning A Server Multiprogramming Level
CN102317917A (zh) * 2011-06-30 2012-01-11 华为技术有限公司 热点域虚拟机cpu调度方法及虚拟机系统
CN102508718A (zh) * 2011-11-22 2012-06-20 杭州华三通信技术有限公司 一种虚拟机负载均衡方法和装置
CN102591702A (zh) * 2011-12-31 2012-07-18 华为技术有限公司 虚拟化处理方法及相关装置和计算机系统

Also Published As

Publication number Publication date
EP2772854A4 (en) 2014-11-19
AU2013273688B2 (en) 2015-08-06
EP2772854B1 (en) 2018-10-24
AU2013273688A1 (en) 2014-08-07
WO2014114072A1 (zh) 2014-07-31
KR20140119624A (ko) 2014-10-10
JP2015513732A (ja) 2015-05-14
KR101559097B1 (ko) 2015-10-08
CN103116517A (zh) 2013-05-22
EP2772854A1 (en) 2014-09-03
JP5923627B2 (ja) 2016-05-24
RU2573733C1 (ru) 2016-01-27

Similar Documents

Publication Publication Date Title
CN103116517B (zh) 虚拟化平台下i/o通道的调整方法和调整装置
US10452605B2 (en) Method and apparatus for task scheduling on heterogeneous multi-core reconfigurable computing platform
US8819685B2 (en) Method and apparatus for adjusting I/O channel on virtual platform
DE102020133262A1 (de) Arbeitslastscheduler für Speicherzuweisung
CN103064746B (zh) 基于当前credit进行预测调度的处理器资源精确分配方法
CN108667859A (zh) 一种实现资源调度的方法及装置
DE102022107621A1 (de) Resourcenauswahl, die zum teil auf der arbeitslast basiert
DE112016004347T5 (de) Lokale und globale Datenzentrumsnetzoptimierungen in Echtzeit basierend auf Plattformtelemetriedaten
CN108829515A (zh) 一种云端平台计算系统及其应用方法
CN105446653B (zh) 一种数据合并方法和设备
CN104615480A (zh) 基于numa高性能网络处理器负载的虚拟处理器调度方法
CN103823709B (zh) 虚拟化集群系统、资源分配方法和管理节点
CN107967180A (zh) 基于numa虚拟化环境下资源全局亲和度网络优化方法和系统
CN105302641A (zh) 虚拟化集群中进行节点调度的方法及装置
US20190044832A1 (en) Technologies for optimized quality of service acceleration
WO2020108536A1 (zh) 一种虚拟网络资源分配方法、系统及电子设备
WO2013112145A1 (en) User generated data center power savings
CN109814927A (zh) 一种机器学习推理协处理器
CN103713953A (zh) 一种内存数据的搬移装置及方法
CN106227601A (zh) 用于虚拟化平台的资源配置的方法和装置
CN103631571A (zh) 一种进度条的控制方法和装置
CN106445661A (zh) 一种动态优化方法及系统
CN111736986A (zh) 一种深度学习模型的fpga加速执行方法及相关装置
CN109002347B (zh) 一种虚拟机内存分配方法、装置及系统
KR102651127B1 (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
C14 Grant of patent or utility model
GR01 Patent grant