CN105183565A - 计算机、服务质量控制方法及装置 - Google Patents

计算机、服务质量控制方法及装置 Download PDF

Info

Publication number
CN105183565A
CN105183565A CN201510641334.1A CN201510641334A CN105183565A CN 105183565 A CN105183565 A CN 105183565A CN 201510641334 A CN201510641334 A CN 201510641334A CN 105183565 A CN105183565 A CN 105183565A
Authority
CN
China
Prior art keywords
container
subsystem
qos parameter
bus
hardware device
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.)
Granted
Application number
CN201510641334.1A
Other languages
English (en)
Other versions
CN105183565B (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 CN201510641334.1A priority Critical patent/CN105183565B/zh
Publication of CN105183565A publication Critical patent/CN105183565A/zh
Priority to EP16850234.2A priority patent/EP3299962B1/en
Priority to PCT/CN2016/097535 priority patent/WO2017054610A1/zh
Priority to US15/845,568 priority patent/US10169089B2/en
Application granted granted Critical
Publication of CN105183565B publication Critical patent/CN105183565B/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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1621Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by maintaining request order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1657Access to multiple memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • 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
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management

Abstract

本发明公开了一种计算机、服务质量控制方法及装置,属于计算机领域。所述方法包括:为计算机的至少一个容器分配与容器一一对应的容器ID;向系统总线发送总线请求,总线请求携带有容器ID和容器ID指示的容器所使用的硬件设备的硬件设备ID;根据总线请求查找与容器ID和硬件设备ID二者都对应的服务质量QoS参数,QoS参数存储于总线管理模块;根据查找到的QoS参数,对QoS参数对应的容器使用QoS参数对应的硬件设备所要求的资源进行配置。本发明达到了系统总线可以根据与容器ID以及硬件设备ID二者都对应的QoS参数进行相应的QoS控制,使得分配给容器的硬件设备能够满足容器中进程组的资源要求。

Description

计算机、服务质量控制方法及装置
技术领域
本发明涉及计算机领域,特别涉及一种计算机、服务质量(英文:QualityofService;简称:QoS)控制方法及装置。
背景技术
容器(英文:Container)技术是一种资源隔离和资源分配的技术,通过将不同的进程组分配到不同的容器中,从而实现不同的容器中进程组之间的隔离以及不同容器间资源的分配。
由于不同的容器包含的进程组不同,且不同的进程组可能有不同的资源要求,导致不同的容器可能有不同的资源要求。比如,有些容器需要占用较大的带宽且需要较快的响应速度,而有些容器需要占用的带宽较小,且对响应速度的要求也较低。容器中进程组对不同资源的资源要求即被称为容器的QoS。
在实现本发明的过程中,发明人发现相关技术至少存在以下问题:现有的计算机无法对容器占用或访问硬件设备时进行相应的QoS控制,导致无法满足容器中进程组对资源的要求。
发明内容
为了解决背景技术中现有的计算机无法对容器占用或访问硬件设备时进行相应的QoS控制,导致无法满足容器中进程组对资源的要求的问题,本发明实施例提供了一种计算机、QoS控制方法及装置。所述技术方案如下:
第一方面,提供了一种计算机,所述计算机包括系统总线,以及连接到所述系统总线的至少三个硬件设备,所述至少三个硬件设备包括处理器、存储器和至少一个其它设备,所述计算机的操作系统包含有调度子系统,所述操作系统存储于所述存储器中,所述系统总线设置有相应的总线管理模块;
所述处理器,用于调用所述调度子系统,为所述计算机的至少一个容器分配与所述容器一一对应的容器标识(英文:IDentity;简称:ID);
所述处理器或所述其它设备,用于向所述系统总线发送总线请求,所述总线请求携带有所述容器ID和所述容器ID指示的容器所使用的硬件设备的硬件设备ID;
所述总线管理模块,用于根据所述总线请求查找与所述容器ID和所述硬件设备ID二者都对应的服务质量QoS参数,所述QoS参数存储于所述总线管理模块;
所述总线管理模块,还用于根据查找到的所述QoS参数,对所述QoS参数对应的容器使用所述QoS参数对应的硬件设备所要求的资源进行配置,所述资源包括带宽、延时和优先级中的至少一种。
在第一方面的第一种可能的实施方式中,所述容器所使用的硬件设备为所述其它设备,所述其它设备包括网络设备、加解密设备、显示设备和视频编解码设备中的至少一种;
在向所述系统总线发送总线请求的方面,所述处理器,具体用于通过所述容器调用所述操作系统中的第一内存管理(英文:MemoryManagement;简称:MM)子系统,为所述其它设备配置设备页表,并将所述设备页表存储在所述存储器中的内存中,所述设备页表中包含所述容器ID;
所述处理器,具体用于通过所述第一MM子系统向所述其它设备发送页表读取指令,所述页表读取指令用于指示所述其它设备的第二MM子系统从所述内存中读取所述设备页表;所述第二MM子系统包含在所述其它设备的设备软件中;
或者所述其它设备,具体用于向所述系统总线发送携带有所述容器ID和所述硬件设备ID的所述总线请求,所述总线请求中的容器ID是所述第二MM子系统从所述内存中读取的。
在第一方面的第二种可能的实施方式中,所述容器所使用的硬件设备为所述存储器中的内存或所述处理器;
在向所述系统总线发送总线请求的方面,所述处理器,具体用于通过所述操作系统中的第一MM子系统,向所述系统总线发送携带有所述容器ID和所述硬件设备ID的所述总线请求。
结合第一方面、第一方面的第一种可能的实施方式和第一方面的第二种可能的实施方式,在第一方面的第三种可能的实施方式中,所述处理器,还用于通过所述操作系统中的第一内存管理MM子系统,将所述操作系统中所有页表的页表属性设置为使用应用专用标识(英文:ApplicationSpecificID;简称:ASID);
所述处理器,还用于通过所述调度子系统将每个ASID的比特序列划分为:容器ID的序列和进程ID的序列。
结合第一方面的第三种可能的实施方式,在第一方面的第四种可能的实施方式中,所述处理器,还用于通过所述调度子系统通知所述第一MM子系统,将容器创建的进程对应的所述ASID中的所述容器ID设置为所述进程所在容器的容器ID;
其中,所述进程对应的所述ASID位于所述进程对应的进程页表中。
结合第一方面的第三种可能的实施方式,在第一方面的第五种可能的实施方式中,所述处理器,还用于通过所述调度子系统通知所述第一MM子系统,将所述容器中迁入进程对应的所述ASID中的所述容器ID,由迁入前所在容器的所述容器ID修改为迁入后所在容器的所述容器ID;
其中,所述迁入进程对应的所述ASID位于所述迁入进程对应的进程页表中。
结合第一方面、第一方面的第一种可能的实施方式和第一方面的第二种可能的实施方式,在第一方面的第六种可能的实施方式中,所述总线管理模块,还用于向所述处理器发送中断,所述中断用于指示所述处理器向所述调度子系统发送QoS参数配置指令;
所述处理器,还用于调用所述调度子系统为所述容器和所述容器使用的硬件设备配置所述QoS参数,并通过所述调度子系统将所述QoS参数写入所述总线管理模块。
结合第一方面、第一方面的第一种可能的实施方式和第一方面的第二种可能的实施方式,在第一方面的第七种可能的实施方式中,所述处理器,还用于通过所述调度子系统接收用户设置的所述容器对各个所述硬件设备的所述QoS参数;通过所述调度子系统将所述QoS参数写入所述总线管理模块;
或,
所述处理器,还用于通过所述调度子系统接收用户设置的所述容器对目标硬件设备的所述QoS参数,所述目标硬件设备指所述容器使用频率大于预设频率阈值的硬件设备;通过所述调度子系统将所述QoS参数写入所述总线管理模块。
结合第一方面的第七种可能的实施方式,在第一方面的第八种可能的实施方式中,所述总线管理模块中存储有所述容器对所述目标硬件设备的所述QoS参数,且所述容器使用的所述硬件设备不属于所述目标硬件设备;
所述处理器,还用于通过所述调度子系统获取预定时间段内,所述容器使用所述硬件设备的使用信息;
所述处理器,还用于调用所述调度子系统,根据所述使用信息和所述计算机的承载能力信息,为所述容器和所述硬件设备生成相应的所述QoS参数;所述承载能力信息包括带宽信息和延迟信息中的至少一种;
所述处理器,还用于通过所述调度子系统将生成的所述QoS参数写入所述总线管理模块。
结合第一方面、第一方面的第一种可能的实施方式、第一方面的第二种可能的实施方式、第一方面的第三种可能的实施方式、第一方面的第四种可能的实施方式、第一方面的第五种可能的实施方式、第一方面的第六种可能的实施方式、第一方面的第七种可能的实施方式和第一方面的第八种可能的实施方式,在第一方面的第九种可能的实施方式中,所述处理器,还用于当所述容器销毁时,回收所述容器的所述容器ID。
第二方面,提供了一种QoS控制方法,用于计算机中,所述计算机包括:系统总线,以及连接到所述系统总线的至少三个硬件设备,所述至少三个硬件设备包括处理器、存储器和至少一个其它设备,所述系统总线设置有相应的总线管理模块,所述方法包括:
为所述计算机的至少一个容器分配与所述容器一一对应的容器ID;
向所述系统总线发送总线请求,所述总线请求携带有所述容器ID和所述容器ID指示的容器所使用的硬件设备的硬件设备ID;
根据所述总线请求查找与所述容器ID和所述硬件设备ID二者都对应的服务质量QoS参数,所述QoS参数存储于所述总线管理模块;
根据查找到的所述QoS参数,对所述QoS参数对应的容器使用所述QoS参数对应的硬件设备所要求的资源进行配置,所述资源包括带宽、延时和优先级中的至少一种。
在第二方面的第一种可能的实施方式中,所述容器所使用的硬件设备为所述其它设备,所述其它设备包括网络设备、加解密设备、显示设备和视频编解码设备中的至少一种;
所述向所述系统总线发送总线请求,包括:
通过所述容器调用操作系统中的第一MM子系统,为所述其它设备配置设备页表,并将所述设备页表存储在所述存储器中的内存中,所述设备页表中包含所述容器ID;
向所述其它设备发送页表读取指令,所述页表读取指令用于指示所述其它设备的第二MM子系统从所述内存中读取所述设备页表;所述第二MM子系统包含在所述其它设备的设备软件中;
所述计算机的所述其它设备向所述系统总线发送携带有所述容器ID和所述硬件设备ID的所述总线请求,所述总线请求中的容器ID是所述第二MM子系统从所述内存中读取的。
在第二方面的第二种可能的实施方式中,所述容器所使用的硬件设备为所述存储器中的内存或所述处理器;
所述向所述系统总线发送总线请求,包括:
所述计算机的所述处理器通过操作系统中的第一内存管理MM子系统,向所述系统总线发送携带有所述容器ID和所述硬件设备ID的所述总线请求。
结合第二方面、第二方面的第一种可能的实施方式和第二方面的第二种可能的实施方式,在第二方面的第三种可能的实施方式中,所述计算机的操作系统包含有调度子系统,所述操作系统存储于所述存储器中;
所述为所述计算机的至少一个容器分配与所述容器一一对应的容器ID,包括:
调用所述调度子系统为至少一个容器分配与所述容器一一对应的容器ID。
结合第二方面的第三种可能的实施方式,在第二方面的第四种可能的实施方式中,所述调用所述调度子系统为至少一个容器分配与所述容器一一对应的容器ID之前,包括:
通过所述操作系统中的第一MM子系统,将所述操作系统中所有页表的页表属性设置为使用ASID;
通过所述调度子系统将每个ASID的比特序列划分为:容器ID的序列和进程ID的序列。
结合第二方面的第四种可能的实施方式,在第二方面的第五种可能的实施方式中,所述为所述计算机的至少一个容器分配与所述容器一一对应的容器标识ID之后,包括:
通过所述调度子系统通知所述第一MM子系统,将容器创建的进程对应的所述ASID中的所述容器ID设置为所述进程所在容器的容器ID;
其中,所述进程对应的所述ASID位于所述进程对应的进程页表中。
结合第二方面的第四种可能的实施方式,在第二方面的第六种可能的实施方式中,所述为所述计算机的至少一个容器分配与所述容器一一对应的容器标识ID之后,包括:
通过所述调度子系统通知所述第一MM子系统,将所述容器中迁入进程对应的所述ASID中的所述容器ID,由迁入前所在容器的所述容器ID修改为迁入后所在容器的所述容器ID;
其中,所述迁入进程对应的所述ASID位于所述迁入进程对应的进程页表中。
结合第二方面的第三种可能的实施方式,在第二方面的第七种可能的实施方式中,所述根据所述总线请求查找与所述容器ID和所述硬件设备ID二者都对应的服务质量QoS参数之后,还包括:
所述计算机的所述总线管理模块向所述处理器发送中断,所述中断用于指示所述处理器向所述调度子系统发送QoS参数配置指令;
调用所述调度子系统为所述容器和所述容器使用的硬件设备配置所述QoS参数,并通过所述调度子系统将所述QoS参数写入所述总线管理模块。
结合第二方面的第三种可能的实施方式,在第二方面的第八种可能的实施方式中,所述为所述计算机的至少一个容器分配与所述容器一一对应的容器ID之后,还包括:
通过所述调度子系统接收用户设置的所述容器对各个所述硬件设备的所述QoS参数;通过所述调度子系统将所述QoS参数写入所述总线管理模块;
或,
通过所述调度子系统接收用户设置的所述容器对目标硬件设备的所述QoS参数,所述目标硬件设备指所述容器使用频率大于预设频率阈值的硬件设备;通过所述调度子系统将所述QoS参数写入所述总线管理模块。
结合第二方面的第八种可能的实施方式,在第二方面的第九种可能的实施方式中,所述总线管理模块中存储有所述容器对所述目标硬件设备的所述QoS参数,且所述容器使用的所述硬件设备不属于所述目标硬件设备,所述方法,还包括:
调用所述调度子系统获取预定时间段内,所述容器使用所述硬件设备的使用信息;
根据所述使用信息和所述计算机的承载能力信息,为所述容器和所述硬件设备生成相应的所述QoS参数;所述承载能力信息包括带宽信息和延迟信息中的至少一种;
通过所述调度子系统将生成的所述QoS参数写入所述总线管理模块。
结合第二方面、第二方面的第一种可能的实施方式、第二方面的第二种可能的实施方式、第二方面的第三种可能的实施方式、第二方面的第四种可能的实施方式、第二方面的第五种可能的实施方式、第二方面的第六种可能的实施方式、第二方面的第七种可能的实施方式、第二方面的第八种可能的实施方式、第二方面的第九种可能的实施方式和第二方面的第十种可能的实施方式,在第二方面的第十一种可能的实施方式,所述方法,还包括:
当所述容器销毁时,回收所述容器的所述容器ID。
第三方面,提供了一种QoS装置,所述装置用于计算机中,所述计算机包括:系统总线,以及连接到所述系统总线的至少三个硬件设备,所述至少三个硬件设备包括处理器、存储器和至少一个其它设备,所述装置包括:
调用子系统模块,用于为所述计算机的至少一个容器分配与所述容器一一对应的容器ID;
请求发送模块,用于向所述系统总线发送总线请求,所述总线请求携带有所述容器ID和所述容器ID指示的容器所使用的硬件设备的硬件设备ID
总线管理模块,用于根据所述总线请求查找与所述容器ID和所述硬件设备ID二者都对应的服务质量QoS参数,所述QoS参数存储于所述总线管理模块;
所述总线管理模块,还用于根据查找到的所述QoS参数,对所述QoS参数对应的容器使用所述QoS参数对应的硬件设备所要求的资源进行配置,所述资源包括带宽、延时和优先级中的至少一种。
在第三方面的第一种可能的实施方式中,所述容器所使用的硬件设备为所述其它设备,所述其它设备包括网络设备、加解密设备、显示设备和视频编解码设备中的至少一种;
在向系统总线发送总线请求的方面,所述请求发送模块,具体用于通过所述容器调用操作系统中的第一MM子系统,为所述其它设备配置设备页表,并将所述设备页表存储在所述存储器中的内存中,所述设备页表中包含所述容器ID;
所述请求发送模块,具体用于向所述其它设备发送页表读取指令,所述页表读取指令用于指示所述其它设备的第二MM子系统从所述内存中读取所述设备页表;所述第二MM子系统包含在所述其它设备的设备软件中;
所述请求发送模块,具体用于调用所述计算机的所述其它设备向所述系统总线发送携带有所述容器ID和所述硬件设备ID的所述总线请求,所述总线请求中的容器ID是所述第二MM子系统从所述内存中读取的。
在第三方面的第二种可能的实施方式中,所述容器所使用的硬件设备为所述存储器中的内存或处理器;
在向系统总线发送总线请求的方面,所述请求发送模块,具体用于调用所述计算机的所述处理器通过操作系统中的第一MM子系统,向所述系统总线发送携带有所述容器ID和所述硬件设备ID的所述总线请求。
结合第三方面、第三方面的第一种可能的实施方式和第三方面的第二种可能的实施方式,在第三方面的第三种可能的实施方式中,所述计算机的操作系统包含有调度子系统,所述操作系统存储于所述存储器中;
在为所述计算机的至少一个容器分配与所述容器一一对应的容器ID的方面,所述调度子系统模块,具体用于调用所述调度子系统为至少一个容器分配与所述容器一一对应的容器ID。
结合第三方面的第三种可能的实施方式,在第三方面的第四种可能的实施方式中,所述调度子系统模块,还用于通过所述操作系统中的第一内存管理MM子系统,将所述操作系统中所有页表的页表属性设置为使用ASID;
所述调度子系统模块,还用于通过所述调度子系统将每个ASID的比特序列划分为:容器ID的序列和进程ID的序列。
结合第三方面的第四种可能的实施方式,在第三方面的第五种可能的实施方式中,所述调度子系统模块,还用于通过所述调度子系统通知所述第一MM子系统,将容器创建的进程对应的所述ASID中的所述容器ID设置为所述进程所在容器的容器ID;
其中,所述进程对应的所述ASID位于所述进程对应的进程页表中。
结合第三方面的第四种可能的实施方式,在第三方面的第六种可能的实施方式中,所述调度子系统模块,还用于通过所述调度子系统通知所述第一MM子系统,将所述容器中迁入进程对应的所述ASID中的所述容器ID,由迁入前所在容器的所述容器ID修改为迁入后所在容器的所述容器ID;
其中,所述迁入进程对应的所述ASID位于所述迁入进程对应的进程页表中。
结合第三方面的第三种可能的实施方式,在第三方面的第七种可能的实施方式中,所述总线管理模块,还用于向所述处理器发送中断,所述中断用于指示所述处理器向所述调度子系统发送QoS参数配置指令;
所述调度子系统模块,还用于调用所述调度子系统为所述容器和所述容器使用的硬件设备配置所述QoS参数,并通过所述调度子系统将所述QoS参数写入所述总线管理模块。
结合第三方面的第三种可能的实施方式,在第三方面的第八种可能的实施方式中,所述调度子系统模块,还用于通过所述调度子系统接收用户设置的所述容器对各个所述硬件设备的所述QoS参数;通过所述调度子系统将所述QoS参数写入所述总线管理模块;
或,
所述调度子系统模块,还用于通过所述调度子系统接收用户设置的所述容器对目标硬件设备的所述QoS参数,所述目标硬件设备指所述容器使用频率大于预设频率阈值的硬件设备;通过所述调度子系统将所述QoS参数写入所述总线管理模块。
结合结合第三方面的第八种可能的实施方式,在第三方面的第九种可能的实施方式中,所述总线管理模块中存储有所述容器对所述目标硬件设备的所述QoS参数,且所述容器使用的所述硬件设备不属于所述目标硬件设备;
所述调度子系统模块,还用于调用所述调度子系统获取预定时间段内,所述容器使用所述硬件设备的使用信息;
所述调度子系统模块,还用于根据所述使用信息和所述计算机的承载能力信息,为所述容器和所述硬件设备生成相应的所述QoS参数;所述承载能力信息包括带宽信息和延迟信息中的至少一种;
所述调度子系统模块,还用于通过所述调度子系统将生成的所述QoS参数写入所述总线管理模块。
结合第三方面、第三方面的第一种可能的实施方式、第三方面的第二种可能的实施方式、第三方面的第三种可能的实施方式、第三方面的第四种可能的实施方式、第三方面的第五种可能的实施方式、第三方面的第六种可能的实施方式、第三方面的第七种可能的实施方式、第三方面的第八种可能的实施方式、第三方面的第九种可能的实施方式和第三方面的第十种可能的实施方式,在第三方面的第十一种可能的实施方式中,所述调度子系统模块,还用于当所述容器销毁时,回收所述容器的所述容器ID。
本发明实施例提供的技术方案带来的有益效果是:
通过调度子系统为各个容器分配容器ID,并在容器使用硬件设备时向系统总线发送携带有该容器ID和硬件设备ID的总线请求,由系统总线上设置的总线管理模块查找与容器ID以及硬件设备ID二者都对应的QoS参数,并根据该QoS参数对容器使用硬件设备所要求的资源进行配置;解决了现有的计算机无法对容器占用或访问硬件设备时进行相应的QoS控制,导致无法满足容器中进程组对资源的要求的问题;达到了系统总线可以根据与容器ID以及硬件设备ID二者都对应的QoS参数进行相应的QoS控制,使得分配给容器的硬件设备能够满足容器中进程组的资源要求。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A是本发明各个实施例提供的一种实施环境的示意图;
图1B是本发明各个实施例提供的QoS控制方法中容器设置位置的示意图;
图2是本发明本发明一个实施例提供的计算机的框图;
图3是本发明本发明一个实施例提供的QoS控制方法的方法流程图;
图4A是本发明另一个实施例提供的QoS控制方法的方法流程图;
图4B是图4A提供的QoS控制方法所涉及的ASID划分过程的方法流程图;
图4C是图4A提供的QoS控制方法所涉及的迁入进程ASID修改过程的方法流程图;
图5是本发明再一个实施例提供的QoS控制方法的方法流程图;
图6是本发明又一个实施例提供的QoS控制方法的方法流程图;
图7是本发明一个实施例提供的QoS控制装置的结构方框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明各个实施例提供的QoS控制方法应用于计算机中,该计算机可以为服务器、个人计算机、手机或各类嵌入式系统。根据计算机中软硬件进行划分,该计算机可以被分为硬件部分和软件部分,其中,硬件部分包括内存、处理器、系统总线和其它设备等,其中,其它设备指计算机中,除内存和处理器以外的硬件设备;软件部分包括操作系统和其他设备对应的设备软件等。
在一种可能的实施方式中,该其它设备可以包括网络设备、加解密设备、显示设备和视频编解码设备等等,其中,网络设备可以为计算机中的有线或无线网卡,加解密设备可以为用于加解密数据包的设备,显示设备可以为计算机的外接显示器,视频编解码设备可以为计算机中的视频解码器等等。
请参考图1A,其示出了本发明各个实施例提供的一种实施环境的示意图,该实施环境中包括:操作系统110、硬件设备120和设备软件130。
操作系统110可以分为用户空间111(用户态)和操作系统内核112(内核态)。
本发明各个实施例中的容器均建立在用户空间111,且每个容器中运行并管理不同的进程。
操作系统内核112为操作系统110的核心部分,可以包括进程管理子系统112A、控制族群(英文:controlgroup;简称:cgroup)子系统112B、命名空间(英文:namespace)子系统112C、MM子系统112D和调度子系统112E。其中,进程管理子系统112A用于管理各个容器中的进程;cgroup子系统112B和namespace子系统112C均用于维护容器属性;MM子系统112D用于对内存进行分配和管理;调度子系统112E用于与系统总线124上的总线管理模块协作,对容器进行QoS控制。
需要说明的是,为了保证计算机的运行,该操作系统内核112中还可能包括其他必要的子系统,本实施例仅以上述子系统进行示意性说明,并不对本发明构成限定。
硬件设备120包括处理器121、内存管理单元(英文:MemoryManagementUnit;简称:MMU)122、至少一个其它设备123、系统内存管理单元(英文:SystemMemoryManagementUnit;简称:SMMU)124、系统总线125、和内存126。
其中,处理器121为超大规模的集成电路,用于处理计算机中的数据和指令。本实施例提供的计算机中,可以包含一个或多个处理器121,且处理器121的架构可以为X86架构、PowerPC架构或ARM架构等等,本发明并不对处理器的数量和架构进行限定。
MMU122与操作系统内核112中的MM子系统112D对应,SMMU124与其它设备123的设备软件130中的MM子系统130A对应。
系统总线125分别与计算机中的各个硬件设备电性相连,并通过与系统总线125对应设置的总线管理模块125A控制各硬件设备访问内存126和网络资源等等。
本发明各个实施提供的QoS控制方法,即通过操作系统内核112中的调度子系统112E和总线管理模块125A协作,实现对容器的QoS控制,其中,调度子系统112E为软件,总线管理模块125A为硬件,即本发明通过软硬件结合的方式实现对容器的QoS控制。
需要说明的是,如图1B所示,本发明各个实施例中的容器可以单独部署在物理机操作系统140中、单独部署在虚拟机操作系统150中或一部分容器部署在物理机操作系统140中,另一部分容器部署在虚拟机操作系统150中,即图1A中的操作系统110可以为虚拟机中的操作系统,也可以为物理机中的操作系统,本发明并不对此进行限定。
请参考图2,其示出了本发明一个实施例提供的计算机的框图。该计算机可以包括:系统总线210、与系统总线210对应设置的总线管理模块220以及连接到系统总线210的至少三个硬件设备,至少三个硬件设备包括:处理器230、存储器240和至少一个其它设备250,其中,存储器240用于存储一个或者一个以上的指令,该指令被配置成由处理器230执行;至少一个其它设备250为除处理器230和存储器240之外的其它硬件设备。该计算机中安装有操作系统,该操作系统中设置有调度子系统。
所述处理器230,用于调用所述调度子系统,为所述计算机的至少一个容器分配与所述容器一一对应的容器ID;
所述处理器230或所述其它设备250,用于向所述系统总线210发送总线请求,所述总线请求携带有所述容器ID和所述容器ID指示的容器所使用的硬件设备的硬件设备ID;
所述总线管理模块220,用于根据所述总线请求查找与所述容器ID和所述硬件设备ID二者都对应的服务质量QoS参数,所述QoS参数存储于所述总线管理模块220;
所述总线管理模块220,还用于根据查找到的所述QoS参数,对所述QoS参数对应的容器使用所述QoS参数对应的硬件设备所要求的资源进行配置,所述资源包括带宽、延时和优先级中的至少一种。
在一种可能的实施方式中,所述容器所使用的硬件设备为所述其它设备250,所述其它设备250包括网络设备、加解密设备、显示设备和视频编解码设备中的至少一种;
在向所述系统总线210发送总线请求的方面,所述处理器230,具体用于通过所述容器调用所述操作系统中的第一MM子系统,为所述其它设备250配置设备页表,并将所述设备页表存储在所述存储器240中的内存241中,所述设备页表中包含所述容器ID;
所述处理器230,具体用于通过所述第一MM子系统向所述其它设备250发送页表读取指令,所述页表读取指令用于指示所述其它设备250的第二MM子系统从所述内存241中读取所述设备页表;所述第二MM子系统包含在所述其它设备250的设备软件中;
或者所述其它设备250,具体用于向所述系统总线240发送携带有所述容器ID和所述硬件设备ID的所述总线请求,所述总线请求中的容器ID是所述第二MM子系统从所述内存241中读取的。
在一种可能的实施方式中,所述容器所使用的硬件设备为所述存储器240中的内存241或所述处理器230;
在向所述系统总线210发送总线请求的方面,所述处理器230,具体用于通过所述操作系统中的第一MM子系统,向所述系统总线210发送携带有所述容器ID和所述硬件设备ID的所述总线请求。
在一种可能的实施方式中,所述处理器230,还用于通过所述操作系统中的第一MM子系统,将所述操作系统中所有页表的页表属性设置为使用ASID;
所述处理器230,还用于通过所述调度子系统将每个ASID的比特序列划分为:容器ID的序列和进程ID的序列。
在一种可能的实施方式中,所述处理器230,还用于通过所述调度子系统通知所述第一MM子系统,将容器创建的进程对应的所述ASID中的所述容器ID设置为所述进程所在容器的容器ID;
其中,所述进程对应的所述ASID位于所述进程对应的进程页表中。
在一种可能的实施方式中,所述处理器230,还用于通过所述调度子系统通知所述第一MM子系统,将所述容器中迁入进程对应的所述ASID中的所述容器ID,由迁入前所在容器的所述容器ID修改为迁入后所在容器的所述容器ID;
其中,所述迁入进程对应的所述ASID位于所述迁入进程对应的进程页表中。
在一种可能的实施方式中,所述总线管理模块220,还用于向所述处理器230发送中断,所述中断用于指示所述处理器230向所述调度子系统发送QoS参数配置指令;
所述处理器230,还用于调用所述调度子系统为所述容器和所述容器使用的硬件设备配置所述QoS参数,并通过所述调度子系统将所述QoS参数写入所述总线管理模块220。
在一种可能的实施方式中,所述处理器230,还用于通过所述调度子系统接收用户设置的所述容器对各个所述硬件设备的所述QoS参数;通过所述调度子系统将所述QoS参数写入所述总线管理模块220;
或,
所述处理器230,还用于通过所述调度子系统接收用户设置的所述容器对目标硬件设备的所述QoS参数,所述目标硬件设备指所述容器使用频率大于预设频率阈值的硬件设备;通过所述调度子系统将所述QoS参数写入所述总线管理模块220。
在一种可能的实施方式中,所述总线管理模块220中存储有所述容器对所述目标硬件设备的所述QoS参数,且所述容器使用的所述硬件设备不属于所述目标硬件设备;
所述处理器230,还用于通过所述调度子系统获取预定时间段内,所述容器使用所述硬件设备的使用信息;
所述处理器230,还用于调用所述调度子系统,根据所述使用信息和所述计算机的承载能力信息,为所述容器和所述硬件设备生成相应的所述QoS参数;所述承载能力信息包括带宽信息和延迟信息中的至少一种;
所述处理器,还用于通过所述调度子系统将生成的所述QoS参数写入所述总线管理模块220。
在一种可能的实施方式中,所述处理器230,还用于当所述容器销毁时,回收所述容器的所述容器ID。
综上所述,本实施例提供的计算机,通过调度子系统为各个容器分配容器ID,并在容器使用硬件设备时向系统总线发送携带有该容器ID和硬件设备ID的总线请求,由系统总线上设置的总线管理模块查找与容器ID以及硬件设备ID二者都对应的QoS参数,并根据该QoS参数对容器使用硬件设备所要求的资源进行配置;解决了现有的计算机无法对容器占用或访问硬件设备时进行相应的QoS控制,导致无法满足容器中进程组对资源的要求的问题;达到了系统总线可以根据与容器ID以及硬件设备ID二者都对应的QoS参数进行相应的QoS控制,使得分配给容器的硬件设备能够满足容器中进程组的资源要求。
本实施例中,调度子系统将页表属性中ASID部分划分为容器ID部分和进程ID部分,且总线管理模块能够对总线请求中ASID序列中的容器ID进行识别,使得总线管理模块能够查找到与容器ID和硬件设备ID二者对应的QoS参数,并进行QoS控制,满足不同容器中进程组的资源要求。
本实施例中,在容器销毁时,调度子系统会对容器ID进行回收,使得容器ID能够循环使用,有效缓解容器ID池中容器ID不足的情况。
请参考图3,其示出了本发明一个实施例提供的QoS控制方法的方法流程图,本实施例以该QoS控制方法用于如图1所示的实施环境为例进行说明,该方法包括:
步骤301,为计算机的至少一个容器分配与容器一一对应的容器ID。
在一种可能的实现方式中,计算机的操作系统包含有调度子系统,在为容器分配容器ID时,计算机调用调度子系统为至少一个容器分配与容器一一对应的容器ID。
步骤302,向系统总线发送总线请求,总线请求携带有容器ID和容器ID指示的容器所使用的硬件设备的硬件设备ID。
在一种可能的实施方式中,该总线请求可以是容器在使用硬件设备时向系统总线发送的。
当容器使用的硬件设备为内存或处理器时,计算机直接通过操作系统内核中的MM子系统向系统总线发送该总线请求。
当容器使用的硬件设备为其它设备(除内存和处理器外的其它硬件设备)时,比如网络设备、加解密设备、显示设备和视频编解码设备等,计算机通过其它设备对应的设备软件中的MM子系统,向系统总线发送该总线请求。
步骤303,根据总线请求查找与容器ID和硬件设备ID二者都对应的QoS参数,该QoS参数存储于总线管理模块。
其中,总线管理模块中可以预先存储有不同容器使用不同硬件设备时对应的QoS参数,以不同容器使用不同硬件设备时所占用的系统带宽为例,容器ID、硬件设备ID与QoS参数之间的对应关系可以示意性的如表一所示。
表一
容器1 容器2
硬件设备1 10% 20%
硬件设备2 30% 25%
其中,容器1使用硬件设备1时,最大占用带宽为系统总带宽的10%;容器1使用硬件设备2时,最大占用带宽为系统总带宽的30%;容器2使用硬件设备1时,最大占用带宽为系统总带宽的20%;容器2使用硬件设备2时,最大占用带宽为系统总带宽的25%。
需要说明的是,本实施例仅以不同容器使用不同硬件设备时所占用的系统带宽为例进行说明,在实际应用过程中,总线管理模块中还可以存储有不同容器使用不同硬件设备时的延迟和优先级等等,本实施例并不对此构成限定。
作为一种可能的实施方式,总线管理模块以总线请求中携带的容器ID和硬件设备ID为索引,在预存的如表一所示的对应关系中查找相应的QoS参数。
步骤304,根据查找到的QoS参数,对QoS参数对应的容器使用QoS参数对应的硬件设备所要求的资源进行配置,该资源包括带宽、延时和优先级中的至少一种。
综上所述,本实施例提供的QoS控制方法,通过调度子系统为各个容器分配容器ID,并在容器使用硬件设备时向系统总线发送携带有该容器ID和硬件设备ID的总线请求,由系统总线上设置的总线管理模块查找与容器ID以及硬件设备ID二者都对应的QoS参数,并根据该QoS参数对容器使用硬件设备所要求的资源进行配置;解决了现有的计算机无法对容器占用或访问硬件设备时进行相应的QoS控制,导致无法满足容器中进程组对资源的要求的问题;达到了系统总线可以根据与容器ID以及硬件设备ID二者都对应的QoS参数进行相应的QoS控制,使得分配给容器的硬件设备能够满足容器中进程组的资源要求。
由于不同容器中不同进程组执行的业务不同,导致不同容器使用的硬件设备也不同,比如,有些容器可能需要通过视频编解码设备对视频文件进行解码,而有些容器可能需要占用处理器进行运算等等。当容器使用不同类型的硬件设备时,计算机中进行QoS控制的过程也不同,下面采用两个示意性的实施例进行说明。其中:
图4A实施例用于说明容器使用与系统总线相连的其它设备时,计算机进行容器QoS控制的过程;
图5实施例用于说明容器使用内存或处理器时,计算机进行容器QoS控制的过程。
请参考图4A,其示出了本发明另一个实施例提供的QoS控制方法的方法流程图,本实施例以该QoS控制方法用于如图1所示的实施环境,且容器使用的硬件设备为其它设备为例进行说明,该方法包括:
步骤401,通过操作系统中的第一MM子系统,将操作系统中所有页表的页表属性设置为使用ASID。
容器中的每个进程拥有其对应的进程页表,该进程页表用于实现虚拟地址与物理地址之间的转换以及权限管理的功能,通过该进程页表,进程即可从内存中相应的存储区域读取数据。
由于操作系统中的各个进程共用同一操作系统内核,操作系统内核中还包括与各个进程页表对应的内核页表。在默认情况下,进程页表的页表属性中包含有进程ID,当该进程访问系统总线时,系统总线能够根据进程ID区分不同进程;而内核页表的页表属性中不包含该进程ID,当容器中的进程需要通过操作系统内核访问系统总线时,系统总线将无法根据进程ID对进程进行区分。
为了使进程通过操作系统内核访问系统总线时也携带有进程ID,作为一种可能的实施方式,在操作系统内核初始化时,由操作系统内核中负责管理页表属性的第一MM子系统,将操作系统中所有页表的页表属性中的全局属性设置为使用ASID,即所有页表的页表属性中均包含进程ID,其中,所有页表包括进程页表和内核页表。
比如,在ARM或ARM64架构中,操作系统内核初始化时,第一MM子系统即将所有页表的页表属性nG设置为n,其中设置为n表示notGlobal(非全局),默认情况下页表属性nG被设置为Global(全局)。
需要说明的是,由于此次设置仅需要对页表中的一处进行修改,因此不会影响后续页表的生成速度。
步骤402,通过该调度子系统将每个ASID的比特序列划分为:容器ID的序列和进程ID的序列。
通过上述步骤,容器中的进程通过操作系统内核访问系统总线时,系统总线即可根据页表属性中的ASID识别出进程,但是还无法对该进程所处的容器进行识别。
为了使系统总线能够识别出进程所处的容器,在一种可能的实施方式中,操作系统内核启动时,还需要通过操作系统内核中的调度子系统将用于表示ASID的比特序列划分为容器ID的序列和进程ID的序列两部分。
比如,当ASID为16bit时,该ASID比特序列可以被划分为10bit的容器ID的序列和6bit的进程ID的序列,即ASID序列中,容器ID占10bit,进程ID占6bit。
需要说明的是,本发明并不对ASID序列中容器ID与进程ID的先后关系进行限定,即ASID序列中可以前10bit为容器ID,后6bit为进程ID,也可以前6bit为进程ID,后10bit为容器ID。
步骤403,调用调度子系统为至少一个容器分配与容器一一对应的容器ID。
用户空间中建立容器时,操作系统中的调度子系统即为建立的容器分配容器ID。在一种可能的实施方式中,调度子系统从容器ID池(从ASID的比特序列中划分出容器ID序列后,由调度子系统创建)中,选取一个未使用的容器ID作为该容器的容器ID,并写入容器属性中,其中,容器属性由操作系统内核中的cgroup子系统和namespace子系统维护。
需要说明的是,调度子系统可以从容器ID池中随机分配未使用的容器ID,也可以按照预定规则分配容器ID,本发明并不对此进行限定。
步骤404,通过调度子系统通知第一MM子系统,将容器创建的进程对应的ASID中的容器ID设置为进程所在容器的容器ID。
其中,进程对应的ASID位于进程对应的进程页表中。
容器中建立进程时,为了使进程对应进程页表能够指示进程所在的容器,调度子系统需要通知管理页表属性的第一MM子系统,将进程页表中ASID的容器ID序列设置为当前容器的容器ID。作为一种可能的实施方式,该ASID可以设置在进程页表的页表属性中。
比如,容器ID为0000000010的容器中建立进程时,第一MM子系统设置该容器中所有进程的页表属性时,第一MM子系统即将ASID的容器ID序列设置为0000000010。
需要说明的是,容器中进程的进程ID由操作系统内核中的进程管理子系统维护,当容器中建立进程时,进程管理子系统即从进程ID池中选择一个未使用的进程ID分配给该进程。与修改ASID的容器ID序列相似的,进程管理子系统为新建的进程分配进程ID后,需要通知第一MM子系统对ASID的进程ID序列进行相应设置。
步骤405,通过容器调用操作系统中的第一MM子系统,为其它设备配置设备页表,并将设备页表存储在存储器中的内存中,设备页表中包含容器ID。
在容器使用其它设备时,其它设备需要通过访问系统总线来占用相应的资源,该资源可以为内存或网络资源等等。此时,其它设备需要获取相应的设备页表,并根据该设备页表访问系统总线,其中,设备页表与进程页表的作用相似,用于实现虚拟地址与物理地址之间的转换以及权限管理的功能。
当容器使用其它设备时,容器即调用操作系统中的第一MM子系统(即图1A中的操作系统内核112中的MM子系统112D)为其它设备配置相应的设备页表,并将配置的设备页表存储在内存中。
作为一种可能的实施方式,当该其它设备对应的设备软件能够直接识别出进程页表时,第一MM子系统可以直接将进程页表确定为设备页表;作为另一种可能的实施方式,当该其它设备对应的设备软件不能识别进程页表时,第一MM子系统即配置设备软件能够识别的设备页表。
为了使系统总线接收到其它设备发送的总线请求时,能够知悉使用该其它设备的容器,并对该容器进行相应的QoS控制,第一MM子系统在配置设备页表时,还需要将容器ID添加到该设备页表中。
步骤406,向其它设备发送页表读取指令,页表读取指令用于指示其它设备的第二MM子系统从内存中读取设备页表;第二MM子系统包含在其它设备的设备软件中。
第一MM子系统配置完设备页表后,第一MM子系统即通过处理器,向使用的其它设备对应的设备软件发送页表读取指令,指示设备软件中的第二MM子系统(即图1A中设备软件130中的MM子系统130A)从内存中读取相应的设备页表。
需要说明的一点是,由于内存中可能同时存在多个其它设备对应的设备页表,为了使第二MM子系统能够准确读取设备页表,第一MM子系统向设备软件发送的页表读取指令中,还携带有设备页表的页表基址,设备软件中的第二MM子系统即可根据该页表基址从内存中读取相应的设备页表。
需要说明的另一点是,当容器使用的其它设备不具备相应的设备软件,而具备可以从内存中读取设备页表的硬件逻辑时,该设备也可以通过该硬件逻辑从内存中读取相应的设备页表(即本发明提供的QoS控制方法并不依赖于设备中的设备软件),本发明并不对此进行限定。
步骤407,计算机的其它设备向系统总线发送携带有容器ID和硬件设备ID的总线请求,总线请求中的容器ID是第二MM子系统从内存中读取的。
设备软件接收到第一MM子系统通过处理器发送的页表读取指令后,即通过其它设备对应的SMMU,将设备页表从内存读取到第二MM子系统中。
第二MM子系统可以从设备页表的页表属性中,读取到使用该设备的进程所指示容器的容器ID,并通过设备对应的SMMU向系统总线发送携带有该容器ID和硬件设备ID的总线请求。需要说明的是,由于设备软件中的第二MM子系统不具备识别ASID序列中容器ID的能力,该总线请求中携带的容器ID即指设备页表对应页表属性中的ASID序列。
步骤408,根据总线请求查找与容器ID和硬件设备ID二者都对应的QoS参数,该QoS参数存储于总线管理模块。
本发明实施例中的总线管理模块具有识别出ASID序列中容器ID和进程ID的能力。总线管理模块接收到携带有ASID序列的总线请求,即能够从该ASID序列中识别出容器ID部分和进程ID部分。
总线管理模块识别出ASID序列中的容器ID部分以及硬件设备ID,并在预存的容器ID、硬件设备ID和QoS参数的对应关系中,查找是否包含同时与该容器ID和硬件设备ID匹配的QoS参数,其中,该对应关系可以是建立容器时由用户自行设置的,容器ID、硬件设备ID和QoS参数的对应关系可以示意性如表一所示。
步骤409,当查找到对应的QoS参数时,根据查找到的QoS参数,对QoS参数对应的容器使用QoS参数对应的硬件设备所要求的资源进行配置,该资源包括带宽、延时和优先级中的至少一种。
当查找到同时与容器ID和硬件设备ID二者对应的QoS参数时,总线管理模块即根据QoS参数对应的容器使用QoS参数对应的硬件设备所要求的资源进行配置。其中,总线管理模块进行何种QoS由查找到的QoS参数指定。
比如,总线管理模块识别出容器ID为“容器1”,硬件设备ID为“硬件设备1”,且存储有如表一所述的对应关系,即知悉容器1使用硬件设备1时,最大占用带宽为系统总带宽的20%。作为一种可能的实施方式,当总线管理模块检测到容器1使用硬件设备1时占用带宽超过20%,总线管理模块即对容器1占用带宽进行限制;作为另一种可能的实施方式,当总线管理模块检测到容器1使用硬件设备1时占用带宽超过20%,总线管理模块获取当前系统带宽的总占用率,当该总占用率大于预设阈值时,总线管理模块即不限制容器1,当该总占用率小于预设阈值时,总线管理模块对容器1进行限制。
又比如,总线管理模块识别出容器ID为“容器1”,硬件设备ID为“硬件设备1”,且存储的容器ID、硬件设备ID与优先级的对应关系如表二所示。
表二
容器1 容器2
硬件设备1 1 2
硬件设备2 3 2
当容器1和容器2均需要使用硬件设备1时,由于容器1使用硬件设备1的优先等级小于容器2使用硬件设备1的优先等级,所以总线管理模块优先满足容器2使用硬件设备1的总线请求;当容器1和容器2均需要使用硬件设备2时,由于容器1使用硬件设备2的优先等级大于容器2使用硬件设备2的优先等级,所以总线管理模块优先满足容器1使用硬件设备2的总线请求。
步骤410,当未查找到对应的QoS参数时,计算机的总线管理模块向处理器发送中断,该中断用于指示处理器向调度子系统发送QoS参数配置指令。
总线管理模块未查找到同时与容器ID和硬件设备ID二者对应的QoS参数时,总线管理模块即向处理器发送一个中断,处理器接收到该中断后,即向调度子系统发送QoS参数配置指令,该QoS参数配置指令用于指示调度子系统为容器和硬件设备配置相应的QoS参数。
需要说明的是,总线管理模块还可以通过发送信息或其他方式,命令处理器向调度子系统发送QoS参数配置指令,本发明并不对此进行限定。
步骤411,调用调度子系统为容器和容器使用的硬件设备配置QoS参数,并通过调度子系统将QoS参数写入总线管理模块。
调度子系统接收到QoS参数配置指令后,接收用户输入的QoS参数,或者根据计算机当前的系统状态,自行设置符合当前计算机状态的QoS参数,并将设置的QoS参数写入总线管理模块中。
对应的,总线管理模块根据调度子系统写入QoS参数,对容器进行相应的QoS控制。
步骤412,当容器销毁时,回收容器的容器ID。
为了避免容器ID池中的容器ID不足,容器在销毁时,调度子系统会对容器属性中的容器ID进行回收。
需要说明的是,由于待销毁的容器中,可能还会剩余部分进程,为了保证操作系统的正常运行,在销毁容器前,会检测容器中是否剩余进程,若检测到存在剩余进程,则通知进程管理子系统对剩余进程对应的进程ID进行回收,并对剩余进程进行销毁。
综上所述,本实施例提供的QoS控制方法,通过调度子系统为各个容器分配容器ID,并在容器使用硬件设备时向系统总线发送携带有该容器ID和硬件设备ID的总线请求,由系统总线上设置的总线管理模块查找与容器ID以及硬件设备ID二者都对应的QoS参数,并根据该QoS参数对容器使用硬件设备所要求的资源进行配置;解决了现有的计算机无法对容器占用或访问硬件设备时进行相应的QoS控制,导致无法满足容器中进程组对资源的要求的问题;达到了系统总线可以根据与容器ID以及硬件设备ID二者都对应的QoS参数进行相应的QoS控制,使得分配给容器的硬件设备能够满足容器中进程组的资源要求。
本实施例中,调度子系统将页表属性中ASID部分划分为容器ID部分和进程ID部分,且总线管理模块能够对总线请求中ASID序列中的容器ID进行识别,使得总线管理模块能够查找到与容器ID和硬件设备ID二者对应的QoS参数,并进行QoS控制,满足不同容器中进程组的资源要求。
本实施例中,在容器销毁时,调度子系统会对容器ID进行回收,使得容器ID能够循环使用,有效缓解容器ID池中容器ID不足的情况。
在一种可能的实施方式中,如图4B所示,上述步骤402中,调度子系统将每个ASID的比特序列划分为容器ID的序列和进程ID的序列的过程还可以包括如下步骤。
步骤402A,通过调度子系统根据预设容器数量确定容器ID的序列在ASID的比特序列中所占的比特位数。
调度子系统可以根据操作系统中可以建立的最大容器数量确定容器ID的序列所占的比特位数。比如,以ARM架构为例,采用ARM架构的芯片最多为96核,且每个核心可建立的容器数量为10个,则该操作系统中可以建立的最大容器数量为96*10=960个,为了满足不同的容器具有不同的容器ID,容器ID所占的比特位数为10。
需要说明的是,调度子系统也可以根据用户预设的容器数量确定容器ID所占的比特位数,本发明并不对操作系统中容器数量的确定方式进行限定。
步骤402B,通过调度子系统根据容器ID的序列所占的比特位数建立容器ID池。
根据步骤402A确定的容器ID所占的比特位数,调度子系统即建立容器ID池,其中,该容器ID池中的容器ID数量大于操作系统中容器的数量。
步骤402C,通过操作系统中的进程管理子系统,根据ASID的总比特位数和容器ID的序列所占的比特位数,确定进程ID的序列所占的比特位数。
根据上述步骤402A确定容器ID所占的比特位数后,操作系统内核中,用于管理进程ID的进程管理子系统即可根据ASID的总比特位数和容器ID的序列所占的比特位数,确定进程ID的序列所占的比特位数。
比如,ASID的总比特位数为16,而容器ID的序列所占的比特位数为10,则进程ID的序列所占的比特位数为16-10=6。
步骤402D,通过进程管理子系统,根据进程ID的序列所占的比特位数建立进程ID池。
与步骤402B相似的,进程管理子系统确定进程ID的序列所占的比特位数后,根据该比特位数建立相应的进程ID池。
比如,页表属性中ASID比特位数的16位,且容器ID的序列所占比特位数为10位,进程ID的序列所占比特位数为6位,ASID:0000000010000010即表示该进程的进程ID为000010,该进程所在容器的容器ID为0000000010。需要说明的是,本实施例仅以ASID序列的前10位表示容器ID,后6位表示进程ID为例进行说明,并不对容器ID和进程ID在ASID序列中的先后顺序构成限定。
上述实施例中,仅以ARM架构为例进行举例说明,并不对本发明构成限定
当操作系统中支持容器间进程迁移,即容器A中的进程1可以迁移至容器B中,迁入进程的容器ID需要由迁入前所在容器的容器ID修改为迁入后所在容器的容器ID。作为一种可能的实施方式,如图4C所示,上述方法还包括如下步骤。
步骤413,通过调度子系统通知第一MM子系统,将容器中迁入进程对应的ASID中的容器ID,由迁入前所在容器的容器ID修改为迁入后所在容器的容器ID。
其中,迁入进程对应的ASID位于迁入进程对应的进程页表的页表属性中。
容器在检测到存在迁入进程时,通过调度子系统通知第一MM子系统,将该迁入进程中的容器ID替换为当前容器的容器ID。
需要说明的是,由于进程管理子系统为进程分配的进程ID具有唯一性,且不受所在容器影响,迁入进程对应ASID中的进程ID部分不需要重新配置。
比如,进程A对应的ASID为0000000010000010(容器ID为0000000010,进程ID为000010),当该进程A从原有容器迁移至容器ID为0000000110的容器时,第一MM子系统需要将进程A对应的ASID修改为0000000110000010。
需要说明的是,由于容器可以设置在虚拟机的操作系统中,且相同容器在不同虚拟机中对应的QoS参数可能不同,所以在上述进程页表中,还可以包含有容器所在虚拟机的虚拟机ID(英文VMID),该总线请求中即携带有VMID、容器ID和进程ID。相应的,总线管理模块还应具有识别VMID的能力,并查找同时与VMID、容器ID和进程ID三者对应的QoS参数,VMID、容器ID、硬件设备ID和QoS参数的对应关系可以示意性如表二所示。
表二
相应的,总线管理模块根据查找到的QoS参数,进行对容器使用硬件设备时进行相应的QoS控制。
当容器需要使用的硬件设备为内存,即容器需要通过系统总线对内存进行访问时,操作系统中的第一MM子系统不再需要为其他设备配置相应的设备页表,此时,容器可以直接向系统总线发送总线请求,下面采用一个实施例进行说明。
请参考图5,其示出了本发明再一个实施例提供的QoS控制方法的方法流程图,本实施例以该QoS控制方法用于如图1所示的实施环境,且容器使用的硬件设备为内存或处理器为例进行说明,该方法包括:
步骤501,通过操作系统中的第一MM子系统,将操作系统中所有页表的页表属性设置为使用ASID。
步骤502,通过该调度子系统将每个ASID的比特序列划分为:容器ID的序列和进程ID的序列。
步骤503,调用调度子系统为至少一个容器分配与容器一一对应的容器ID。
步骤504,通过调度子系统通知第一MM子系统,将容器创建的进程对应的ASID中的容器ID设置为进程所在容器的容器ID。
其中,进程对应的ASID位于进程对应的进程页表的页表属性中。
步骤505,通过调度子系统通知第一MM子系统,将容器中迁入进程对应的ASID中的容器ID,由迁入前所在容器的容器ID修改为迁入后所在容器的容器ID。
其中,迁入进程对应的ASID位于迁入进程对应的进程页表的页表属性中。
上述步骤501至步骤504的实现方式与步骤401至步骤404的实现方式相似,步骤505与步骤413的实现方式相似,在此不再赘述。
步骤506,计算机的处理器通过操作系统中的第一MM子系统,向系统总线发送携带有容器ID和硬件设备ID的总线请求。
与容器使用其他设备不同的是,当容器使用的硬件设备为内存,即容器直接通过系统总线访问内存时,操作系统中的第一MM子系统不再需要配置设备页表。第一MM子系统只需要根据进程页表中的ASID序列(可以位于进程页表中的页表属性),向系统总线发送携带有容器ID(即ASID序列)和硬件设备ID(即内存)的总线请求即可。
需要说明的是,由于处理器的性能与本身的运算能力以及处理器访问内存速度有关,所以对容器占用处理器时进行QoS控制相当于对处理器访问内存进行QoS控制。当容器使用的硬件设备为处理器时,与容器使用内存相似的,第一MM子系统向系统总线发送携带有容器ID和硬件设备ID(即处理器)的总线请求。
步骤507,根据总线请求查找与容器ID和硬件设备ID二者都对应的QoS参数,该QoS参数存储于总线管理模块。
步骤508,当查找到对应的QoS参数时,根据查找到的QoS参数,对QoS参数对应的容器使用QoS参数对应的硬件设备所要求的资源进行配置,该资源包括带宽、延时和优先级中的至少一种。
当对容器使用内存进行QoS控制时,即对内存占用率进行QoS控制;当容器占用处理器进行QoS控制时,即对处理器的使用率进行QoS控制
步骤509,当未查找到对应的QoS参数时,计算机的总线管理模块向处理器发送中断,该中断用于指示处理器向调度子系统发送QoS参数配置指令。
步骤510,调用调度子系统为容器和容器使用的硬件设备配置QoS参数,并通过调度子系统将QoS参数写入总线管理模块。
步骤511,当容器销毁时,回收容器的容器ID。
上述步骤507至步骤511的实现方式与步骤408至步骤412的实现方式相似,在此不再赘述。
综上所述,本实施例提供的QoS控制方法,通过调度子系统为各个容器分配容器ID,并在容器使用硬件设备时向系统总线发送携带有该容器ID和硬件设备ID的总线请求,由系统总线上设置的总线管理模块查找与容器ID以及硬件设备ID二者都对应的QoS参数,并根据该QoS参数对容器使用硬件设备所要求的资源进行配置;解决了现有的计算机无法对容器占用或访问硬件设备时进行相应的QoS控制,导致无法满足容器中进程组对资源的要求的问题;达到了系统总线可以根据与容器ID以及硬件设备ID二者都对应的QoS参数进行相应的QoS控制,使得分配给容器的硬件设备能够满足容器中进程组的资源要求。
需要说明的是,由于容器可能既需要使用其他设备,又需要使用内存或处理器,所以上述步骤405至步骤407和步骤505可以同时进行,本发明并不对此进行限定。
对于总线管理模块中存储的QoS参数的设置方法,可以包括手动设置、自动设置和手动自动相结合这三种可能设置方法。采用手动设置时,调度子系统在容器建立时接收用户设置的该容器对各个硬件设备的QoS参数,并将QoS参数写入总线管理模块;采用自动设置时,调度子系统根据计算机的最大承载能力和一段时间内容器使用硬件设备的使用信息,自动设置符合计算机能力的QoS参数,并写入总线管理模块;采用手动自动相结合进行设置时,调度子系统在容器建立时仅接收用户设置的该容器对目标硬件设备的QoS参数,并写入总线管理模块,若总线管理模块根据总线请求未查找到相应的QoS参数,即向处理器发送中断,由处理器根据该中断调用调度子系统自动设置相应的的QoS参数,并写入总线管理模块。下面采用示意性的实施例进行说明。
请参考图6,其示出了本发明又一个实施例提供的QoS控制方法的方法流程图,本实施例以该QoS控制方法用于如图1所示的实施环境为例进行说明,该方法包括
步骤601,调用调度子系统为至少一个容器分配与容器一一对应的容器ID。
本步骤的实施方式与上述步骤403和步骤503相似,在此不再赘述。
当总线管理模块中的QoS参数采用手动设置时,执行下述步骤602;当总线管理模块中的QoS参数采用手动自动结合的方式进行设置时,执行下述步骤603。
步骤602,通过调度子系统接收用户设置的容器对各个硬件设备的QoS参数;通过调度子系统将QoS参数写入总线管理模块。
当建立的容器使用的硬件设备固定,且使用的硬件设备数量较少时,用户可以选用手动设置QoS参数的方法,将容器使用各个硬件设备时对应的QoS参数通过调度子系统写入系统管理模块中。
步骤603,通过调度子系统接收用户设置的容器对各个硬件设备的QoS参数;通过调度子系统将QoS参数写入总线管理模块。
当建立的容器使用的硬件设备中,包括使用频率较高的目标硬件设备和使用频率较低的硬件设备时,用户可以选用手动总动相结合的方式设置QoS参数。
比如,建立的容器1所使用的硬件设备中,包括使用频率为90%的硬件设备1、使用频率为95%的硬件设备2、使用频率为15%的硬件设备3以及使用频率为35%的硬件设备4。用户即可将使用频率大于80%的硬件设备确定目标硬件设备,并通过调度子系统将相应的QoS参数写入总线管理模块。
需要说明的,当建立的容器使用的硬件设备不确定,且硬件设备数量较多时,用户可以选用自动设置,由调度子系统根据计算机承载能力和实际使用信息自行设置,本发明并不对此进行限定。
步骤604,向系统总线发送总线请求,总线请求携带有容器ID和容器ID指示的容器所使用的硬件设备的硬件设备ID。
步骤605,根据总线请求查找与容器ID和硬件设备ID二者都对应的QoS参数,该QoS参数存储于总线管理模块。
步骤606,当查找到对应的QoS参数时,根据查找到的QoS参数,对QoS参数对应的容器使用QoS参数对应的硬件设备所要求的资源进行配置,该资源包括带宽、延时和优先级中的至少一种。
上述步骤604至步骤606的实现方式,与步骤302至步骤304相似,在此不再赘述。
步骤607,当未查找到对应的QoS参数时,调用调度子系统获取预定时间段内,容器使用硬件设备的使用信息。
对于手动自动相结合的QoS设置方式,当总线管理模块未存储对应的QoS参数时,调度子系统可以获取预定时间段内,容器使用硬件设备的使用信息。
比如,调度子系统可以在10秒内,以1秒/次的频率获取容器使用硬件设备时占用的网络带宽等信息,并生成表三所示的使用信息表,
表三
步骤608,根据使用信息和计算机的承载能力信息,为容器和硬件设备生成相应的QoS参数;承载能力信息包括带宽信息和延迟信息中的至少一种。
调度子系统根据采集到的使用信息和计算机的承载能力信息,即可进一步确定出容器使用该硬件设备的特点。
当使用信息和承载能力信息指示容器使用硬件设备时,占用的带宽较小(占网络总带宽的比例小于预设阈值),且占用带宽的时间段不连续时,确定容器使用硬件设备时,对QoS参数的要求为占用网络带宽低且延迟低;当使用信息和承载能力信息指示容器使用硬件设备时,占用的带宽较大(占网络总带宽的比例大于预设阈值),且占用带宽的时间段连续时,确定容器使用硬件设备时,对QoS参数的要求为占用网络带宽高且延迟高。
比如,手机中即时通讯客户端之间发送语音信息为例,即容器中进程组需要使用语音采集设备和网络设备时,调度子系统采集到的使用信息如表三所示。调度子系统根据上述使用信息分析得到,容器使用硬件设备时,占用的带宽较小,且占用带宽的时间段不连续时,即确定容器使用硬件设备时,对QoS参数的要求为占用网络带宽低且延迟低。根据上述使用特性,调用子系统生成匹配的QoS参数可以如表四所示。
表四
网络带宽 延迟
100kbps 5ms
步骤609,通过调度子系统将生成的QoS参数写入总线管理模块。
调度子系统将生成的QoS参数写入总线管理模块,方便总线管理模块根据该QoS参数进行QoS控制。
综上所述,本实施例提供的QoS控制方法,通过调度子系统为各个容器分配容器ID,并在容器使用硬件设备时向系统总线发送携带有该容器ID和硬件设备ID的总线请求,由系统总线上设置的总线管理模块查找与容器ID以及硬件设备ID二者都对应的QoS参数,并根据该QoS参数对容器使用硬件设备所要求的资源进行配置;解决了现有的计算机无法对容器占用或访问硬件设备时进行相应的QoS控制,导致无法满足容器中进程组对资源的要求的问题;达到了系统总线可以根据与容器ID以及硬件设备ID二者都对应的QoS参数进行相应的QoS控制,使得分配给容器的硬件设备能够满足容器中进程组的资源要求。
本实施例中,用户可以根据容器中进程组实际执行的业务,确定采用适当的QoS参数设置方法,提高总线管理模块中存储的QoS参数的准确性。
请参考图7,其示出了本发明一个实施例提供的QoS控制装置的结构方框图,该QoS控制装置用于计算机中,该计算机包括:系统总线,以及连接到系统总线的至少三个硬件设备,至少三个硬件设备包括处理器、存储器和至少一个其它设备,该装置包括:
调用子系统模块710,用于为所述计算机的至少一个容器分配与所述容器一一对应的容器ID;
请求发送模块720,用于向所述系统总线发送总线请求,所述总线请求携带有所述容器ID和所述容器ID指示的容器所使用的硬件设备的硬件设备ID
总线管理模块730,用于根据所述总线请求查找与所述容器ID和所述硬件设备ID二者都对应的QoS参数,所述QoS参数存储于所述总线管理模块730;
所述总线管理模块730,还用于根据查找到的所述QoS参数,对所述QoS参数对应的容器使用所述QoS参数对应的硬件设备所要求的资源进行配置,所述资源包括带宽、延时和优先级中的至少一种。
在一种可能的实施方式中,所述容器所使用的硬件设备为所述其它设备,所述其它设备包括网络设备、加解密设备、显示设备和视频编解码设备中的至少一种;
在向系统总线发送总线请求的方面,所述请求发送模块720,具体用于通过所述容器调用操作系统中的第一MM子系统,为所述其它设备配置设备页表,并将所述设备页表存储在所述存储器中的内存中,所述设备页表中包含所述容器ID;
所述请求发送模块720,具体用于向所述其它设备发送页表读取指令,所述页表读取指令用于指示所述其它设备的第二MM子系统从所述内存中读取所述设备页表;所述第二MM子系统包含在所述其它设备的设备软件中;
所述请求发送模块720,具体用于调用所述计算机的所述其它设备向所述系统总线发送携带有所述容器ID和所述硬件设备ID的所述总线请求,所述总线请求中的容器ID是所述第二MM子系统从所述内存中读取的。
在一种可能的实施方式中,所述容器所使用的硬件设备为所述存储器中的内存或处理器;
在向系统总线发送总线请求的方面,所述请求发送模块720,具体用于调用所述计算机的所述处理器通过操作系统中的第一MM子系统,向所述系统总线发送携带有所述容器ID和所述硬件设备ID的所述总线请求。
在一种可能的实施方式中,所述计算机的操作系统包含有调度子系统,所述操作系统存储于所述存储器中;
在为所述计算机的至少一个容器分配与所述容器一一对应的容器ID的方面,所述调度子系统模块710,具体用于调用所述调度子系统为至少一个容器分配与所述容器一一对应的容器ID。
在一种可能的实施方式中,所述调度子系统模块710,还用于通过所述操作系统中的第一内存管理MM子系统,将所述操作系统中所有页表的页表属性设置为使用应用专用标识ASID;
所述调度子系统模块710,还用于通过所述调度子系统将每个ASID的比特序列划分为:容器ID的序列和进程ID的序列。
在一种可能的实施方式中,所述调度子系统模块710,还用于通过所述操作系统中的第一MM子系统,将所述操作系统中所有页表的页表属性设置为使用ASID;
所述调度子系统模块710,还用于通过所述调度子系统将每个ASID的比特序列划分为:容器ID的序列和进程ID的序列。
在一种可能的实施方式中,所述调度子系统模块710,还用于通过所述调度子系统通知所述第一MM子系统,将所述容器中迁入进程对应的所述ASID中的所述容器ID,由迁入前所在容器的所述容器ID修改为迁入后所在容器的所述容器ID;
其中,所述迁入进程对应的所述ASID位于所述迁入进程对应的进程页表中。
在一种可能的实施方式中,所述总线管理模块730,还用于向所述处理器发送中断,所述中断用于指示所述处理器向所述调度子系统发送QoS参数配置指令;
所述调度子系统模块710,还用于调用所述调度子系统为所述容器和所述容器使用的硬件设备配置所述QoS参数,并通过所述调度子系统将所述QoS参数写入所述总线管理模块730。
在一种可能的实施方式中,所述调度子系统模块710,还用于通过所述调度子系统接收用户设置的所述容器对各个所述硬件设备的所述QoS参数;通过所述调度子系统将所述QoS参数写入所述总线管理模块730;
或,
所述调度子系统模块710,还用于通过所述调度子系统接收用户设置的所述容器对目标硬件设备的所述QoS参数,所述目标硬件设备指所述容器使用频率大于预设频率阈值的硬件设备;通过所述调度子系统将所述QoS参数写入所述总线管理模块730。
在一种可能的实施方式中,所述总线管理模块中存储有所述容器对所述目标硬件设备的所述QoS参数,且所述容器使用的所述硬件设备不属于所述目标硬件设备;
所述调度子系统模块710,还用于调用所述调度子系统获取预定时间段内,所述容器使用所述硬件设备的使用信息;
所述调度子系统模块710,还用于根据所述使用信息和所述计算机的承载能力信息,为所述容器和所述硬件设备生成相应的所述QoS参数;所述承载能力信息包括带宽信息和延迟信息中的至少一种;
所述调度子系统模块710,还用于通过所述调度子系统将生成的所述QoS参数写入所述总线管理模块730。
在一种可能的实施方式中,所述调度子系统模块710,还用于当所述容器销毁时,回收所述容器的所述容器ID。
综上所述,本实施例提供的QoS控制装置,通过调度子系统为各个容器分配容器ID,并在容器使用硬件设备时向系统总线发送携带有该容器ID和硬件设备ID的总线请求,由系统总线上设置的总线管理模块查找与容器ID以及硬件设备ID二者都对应的QoS参数,并根据该QoS参数对容器使用硬件设备所要求的资源进行配置;解决了现有的计算机无法对容器占用或访问硬件设备时进行相应的QoS控制,导致无法满足容器中进程组对资源的要求的问题;达到了系统总线可以根据与容器ID以及硬件设备ID二者都对应的QoS参数进行相应的QoS控制,使得分配给容器的硬件设备能够满足容器中进程组的资源要求。
本实施例中,调度子系统将页表属性中ASID部分划分为容器ID部分和进程ID部分,且总线管理模块能够对总线请求中ASID序列中的容器ID进行识别,使得总线管理模块能够查找到与容器ID和硬件设备ID二者对应的QoS参数,并进行QoS控制,满足不同容器中进程组的资源要求。
本实施例中,在容器销毁时,调度子系统会对容器ID进行回收,使得容器ID能够循环使用,有效缓解容器ID池中容器ID不足的情况。
本实施例中,用户可以根据容器中进程组实际执行的业务,确定采用适当的QoS参数设置方法,提高总线管理模块中存储的QoS参数的准确性。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (32)

1.一种计算机,其特征在于,所述计算机包括:系统总线,以及连接到所述系统总线的至少三个硬件设备,所述至少三个硬件设备包括处理器、存储器和至少一个其它设备,所述计算机的操作系统包含有调度子系统,所述操作系统存储于所述存储器中,所述系统总线设置有相应的总线管理模块;
所述处理器,用于调用所述调度子系统,为所述计算机的至少一个容器分配与所述容器一一对应的容器标识ID;
所述处理器或所述其它设备,用于向所述系统总线发送总线请求,所述总线请求携带有所述容器ID和所述容器ID指示的容器所使用的硬件设备的硬件设备ID;
所述总线管理模块,用于根据所述总线请求查找与所述容器ID和所述硬件设备ID二者都对应的服务质量QoS参数,所述QoS参数存储于所述总线管理模块;
所述总线管理模块,还用于根据查找到的所述QoS参数,对所述QoS参数对应的容器使用所述QoS参数对应的硬件设备所要求的资源进行配置,所述资源包括带宽、延时和优先级中的至少一种。
2.根据权利要求1所述的计算机,其特征在于,所述容器所使用的硬件设备为所述其它设备,所述其它设备包括网络设备、加解密设备、显示设备和视频编解码设备中的至少一种;
在向所述系统总线发送总线请求的方面,所述处理器,具体用于通过所述容器调用所述操作系统中的第一内存管理MM子系统,为所述其它设备配置设备页表,并将所述设备页表存储在所述存储器中的内存中,所述设备页表中包含所述容器ID;
所述处理器,具体用于通过所述第一MM子系统向所述其它设备发送页表读取指令,所述页表读取指令用于指示所述其它设备的第二MM子系统从所述内存中读取所述设备页表;所述第二MM子系统包含在所述其它设备的设备软件中;
或者所述其它设备,具体用于向所述系统总线发送携带有所述容器ID和所述硬件设备ID的所述总线请求,所述总线请求中的容器ID是所述第二MM子系统从所述内存中读取的。
3.根据权利要求1所述的计算机,其特征在于,所述容器所使用的硬件设备为所述存储器中的内存或所述处理器;
在向所述系统总线发送总线请求的方面,所述处理器,具体用于通过所述操作系统中的第一内存管理MM子系统,向所述系统总线发送携带有所述容器ID和所述硬件设备ID的所述总线请求。
4.根据权利要求1至3任一所述的计算机,其特征在于,
所述处理器,还用于通过所述操作系统中的第一内存管理MM子系统,将所述操作系统中所有页表的页表属性设置为使用应用专用标识ASID;
所述处理器,还用于通过所述调度子系统将每个ASID的比特序列划分为:容器ID的序列和进程ID的序列。
5.根据权利要求4所述的计算机,其特征在于,
所述处理器,还用于通过所述调度子系统通知所述第一MM子系统,将容器创建的进程对应的所述ASID中的所述容器ID设置为所述进程所在容器的容器ID;
其中,所述进程对应的所述ASID位于所述进程对应的进程页表中。
6.根据权利要求4所述的计算机,其特征在于,
所述处理器,还用于通过所述调度子系统通知所述第一MM子系统,将所述容器中迁入进程对应的所述ASID中的所述容器ID,由迁入前所在容器的所述容器ID修改为迁入后所在容器的所述容器ID;
其中,所述迁入进程对应的所述ASID位于所述迁入进程对应的进程页表中。
7.根据权利要求1至3任一所述的计算机,其特征在于,
所述总线管理模块,还用于向所述处理器发送中断,所述中断用于指示所述处理器向所述调度子系统发送QoS参数配置指令;
所述处理器,还用于调用所述调度子系统为所述容器和所述容器使用的硬件设备配置所述QoS参数,并通过所述调度子系统将所述QoS参数写入所述总线管理模块。
8.根据权利要求1至3任一所述的计算机,其特征在于,
所述处理器,还用于通过所述调度子系统接收用户设置的所述容器对各个所述硬件设备的所述QoS参数;通过所述调度子系统将所述QoS参数写入所述总线管理模块;
或,
所述处理器,还用于通过所述调度子系统接收用户设置的所述容器对目标硬件设备的所述QoS参数,所述目标硬件设备指所述容器使用频率大于预设频率阈值的硬件设备;通过所述调度子系统将所述QoS参数写入所述总线管理模块。
9.根据权利要求8所述的计算机,其特征在于,所述总线管理模块中存储有所述容器对所述目标硬件设备的所述QoS参数,且所述容器使用的所述硬件设备不属于所述目标硬件设备;
所述处理器,还用于通过所述调度子系统获取预定时间段内,所述容器使用所述硬件设备的使用信息;
所述处理器,还用于调用所述调度子系统,根据所述使用信息和所述计算机的承载能力信息,为所述容器和所述硬件设备生成相应的所述QoS参数;所述承载能力信息包括带宽信息和延迟信息中的至少一种;
所述处理器,还用于通过所述调度子系统将生成的所述QoS参数写入所述总线管理模块。
10.根据权利要求1至9任一所述的计算机,其特征在于,
所述处理器,还用于当所述容器销毁时,回收所述容器的所述容器ID。
11.一种服务质量QoS控制方法,其特征在于,用于计算机中,所述计算机包括:系统总线,以及连接到所述系统总线的至少三个硬件设备,所述至少三个硬件设备包括处理器、存储器和至少一个其它设备,所述系统总线设置有相应的总线管理模块,所述方法包括:
为所述计算机的至少一个容器分配与所述容器一一对应的容器标识ID;
向所述系统总线发送总线请求,所述总线请求携带有所述容器ID和所述容器ID指示的容器所使用的硬件设备的硬件设备ID;
根据所述总线请求查找与所述容器ID和所述硬件设备ID二者都对应的服务质量QoS参数,所述QoS参数存储于所述总线管理模块;
根据查找到的所述QoS参数,对所述QoS参数对应的容器使用所述QoS参数对应的硬件设备所要求的资源进行配置,所述资源包括带宽、延时和优先级中的至少一种。
12.根据权利要求11所述的方法,其特征在于,所述容器所使用的硬件设备为所述其它设备,所述其它设备包括网络设备、加解密设备、显示设备和视频编解码设备中的至少一种;
所述向所述系统总线发送总线请求,包括:
通过所述容器调用操作系统中的第一内存管理MM子系统,为所述其它设备配置设备页表,并将所述设备页表存储在所述存储器中的内存中,所述设备页表中包含所述容器ID;
向所述其它设备发送页表读取指令,所述页表读取指令用于指示所述其它设备的第二MM子系统从所述内存中读取所述设备页表;所述第二MM子系统包含在所述其它设备的设备软件中;
所述计算机的所述其它设备向所述系统总线发送携带有所述容器ID和所述硬件设备ID的所述总线请求,所述总线请求中的容器ID是所述第二MM子系统从所述内存中读取的。
13.根据权利要求11所述的方法,其特征在于,所述容器所使用的硬件设备为所述存储器中的内存或所述处理器;
所述向所述系统总线发送总线请求,包括:
所述计算机的所述处理器通过操作系统中的第一内存管理MM子系统,向所述系统总线发送携带有所述容器ID和所述硬件设备ID的所述总线请求。
14.根据权利要求11至13任一所述的方法,其特征在于,所述计算机的操作系统包含有调度子系统,所述操作系统存储于所述存储器中;
所述为所述计算机的至少一个容器分配与所述容器一一对应的容器ID,包括:
调用所述调度子系统为至少一个容器分配与所述容器一一对应的容器ID。
15.根据权利要求14所述的方法,其特征在于,所述调用所述调度子系统为至少一个容器分配与所述容器一一对应的容器ID之前,包括:
通过所述操作系统中的第一内存管理MM子系统,将所述操作系统中所有页表的页表属性设置为使用应用专用标识ASID;
通过所述调度子系统将每个ASID的比特序列划分为:容器ID的序列和进程ID的序列。
16.根据权利要求15所述的方法,其特征在于,所述为所述计算机的至少一个容器分配与所述容器一一对应的容器标识ID之后,包括:
通过所述调度子系统通知所述第一MM子系统,将容器创建的进程对应的所述ASID中的所述容器ID设置为所述进程所在容器的容器ID;
其中,所述进程对应的所述ASID位于所述进程对应的进程页表中。
17.根据权利要求15所述的方法,其特征在于,所述为所述计算机的至少一个容器分配与所述容器一一对应的容器标识ID之后,包括:
通过所述调度子系统通知所述第一MM子系统,将所述容器中迁入进程对应的所述ASID中的所述容器ID,由迁入前所在容器的所述容器ID修改为迁入后所在容器的所述容器ID;
其中,所述迁入进程对应的所述ASID位于所述迁入进程对应的进程页表中。
18.根据权利要求14所述的方法,其特征在于,所述根据所述总线请求查找与所述容器ID和所述硬件设备ID二者都对应的服务质量QoS参数之后,还包括:
所述计算机的所述总线管理模块向所述处理器发送中断,所述中断用于指示所述处理器向所述调度子系统发送QoS参数配置指令;
调用所述调度子系统为所述容器和所述容器使用的硬件设备配置所述QoS参数,并通过所述调度子系统将所述QoS参数写入所述总线管理模块。
19.根据权利要求14所述的方法,其特征在于,所述为所述计算机的至少一个容器分配与所述容器一一对应的容器ID之后,还包括:
通过所述调度子系统接收用户设置的所述容器对各个所述硬件设备的所述QoS参数;通过所述调度子系统将所述QoS参数写入所述总线管理模块;
或,
通过所述调度子系统接收用户设置的所述容器对目标硬件设备的所述QoS参数,所述目标硬件设备指所述容器使用频率大于预设频率阈值的硬件设备;通过所述调度子系统将所述QoS参数写入所述总线管理模块。
20.根据权利要求19所述的方法,其特征在于,所述总线管理模块中存储有所述容器对所述目标硬件设备的所述QoS参数,且所述容器使用的所述硬件设备不属于所述目标硬件设备,所述方法,还包括:
调用所述调度子系统获取预定时间段内,所述容器使用所述硬件设备的使用信息;
根据所述使用信息和所述计算机的承载能力信息,为所述容器和所述硬件设备生成相应的所述QoS参数;所述承载能力信息包括带宽信息和延迟信息中的至少一种;
通过所述调度子系统将生成的所述QoS参数写入所述总线管理模块。
21.根据权利要求11至20任一所述的方法,其特征在于,所述方法,还包括:
当所述容器销毁时,回收所述容器的所述容器ID。
22.一种服务质量QoS控制装置,其特征在于,所述装置用于计算机中,所述计算机包括:系统总线,以及连接到所述系统总线的至少三个硬件设备,所述至少三个硬件设备包括处理器、存储器和至少一个其它设备,所述装置包括:
调用子系统模块,用于为所述计算机的至少一个容器分配与所述容器一一对应的容器标识ID;
请求发送模块,用于向所述系统总线发送总线请求,所述总线请求携带有所述容器ID和所述容器ID指示的容器所使用的硬件设备的硬件设备ID
总线管理模块,用于根据所述总线请求查找与所述容器ID和所述硬件设备ID二者都对应的服务质量QoS参数,所述QoS参数存储于所述总线管理模块;
所述总线管理模块,还用于根据查找到的所述QoS参数,对所述QoS参数对应的容器使用所述QoS参数对应的硬件设备所要求的资源进行配置,所述资源包括带宽、延时和优先级中的至少一种。
23.根据权利要求22所述的装置,其特征在于,所述容器所使用的硬件设备为所述其它设备,所述其它设备包括网络设备、加解密设备、显示设备和视频编解码设备中的至少一种;
在向系统总线发送总线请求的方面,所述请求发送模块,具体用于通过所述容器调用操作系统中的第一内存管理MM子系统,为所述其它设备配置设备页表,并将所述设备页表存储在所述存储器中的内存中,所述设备页表中包含所述容器ID;
所述请求发送模块,具体用于向所述其它设备发送页表读取指令,所述页表读取指令用于指示所述其它设备的第二MM子系统从所述内存中读取所述设备页表;所述第二MM子系统包含在所述其它设备的设备软件中;
所述请求发送模块,具体用于调用所述计算机的所述其它设备向所述系统总线发送携带有所述容器ID和所述硬件设备ID的所述总线请求,所述总线请求中的容器ID是所述第二MM子系统从所述内存中读取的。
24.根据权利要求22所述的装置,其特征在于,所述容器所使用的硬件设备为所述存储器中的内存或处理器;
在向系统总线发送总线请求的方面,所述请求发送模块,具体用于调用所述计算机的所述处理器通过操作系统中的第一内存管理MM子系统,向所述系统总线发送携带有所述容器ID和所述硬件设备ID的所述总线请求。
25.根据权利要求22至24任一所述的装置,其特征在于,所述计算机的操作系统包含有调度子系统,所述操作系统存储于所述存储器中;
在为所述计算机的至少一个容器分配与所述容器一一对应的容器ID的方面,所述调度子系统模块,具体用于调用所述调度子系统为至少一个容器分配与所述容器一一对应的容器ID。
26.根据权利要求25所述的装置,其特征在于,
所述调度子系统模块,还用于通过所述操作系统中的第一内存管理MM子系统,将所述操作系统中所有页表的页表属性设置为使用应用专用标识ASID;
所述调度子系统模块,还用于通过所述调度子系统将每个ASID的比特序列划分为:容器ID的序列和进程ID的序列。
27.根据权利要求26所述的装置,其特征在于,
所述调度子系统模块,还用于通过所述调度子系统通知所述第一MM子系统,将容器创建的进程对应的所述ASID中的所述容器ID设置为所述进程所在容器的容器ID;
其中,所述进程对应的所述ASID位于所述进程对应的进程页表中。
28.根据权利要求26所述的装置,其特征在于,
所述调度子系统模块,还用于通过所述调度子系统通知所述第一MM子系统,将所述容器中迁入进程对应的所述ASID中的所述容器ID,由迁入前所在容器的所述容器ID修改为迁入后所在容器的所述容器ID;
其中,所述迁入进程对应的所述ASID位于所述迁入进程对应的进程页表中。
29.根据权利要求25所述的装置,其特征在于,
所述总线管理模块,还用于向所述处理器发送中断,所述中断用于指示所述处理器向所述调度子系统发送QoS参数配置指令;
所述调度子系统模块,还用于调用所述调度子系统为所述容器和所述容器使用的硬件设备配置所述QoS参数,并通过所述调度子系统将所述QoS参数写入所述总线管理模块。
30.根据权利要求25所述的装置,其特征在于,
所述调度子系统模块,还用于通过所述调度子系统接收用户设置的所述容器对各个所述硬件设备的所述QoS参数;通过所述调度子系统将所述QoS参数写入所述总线管理模块;
或,
所述调度子系统模块,还用于通过所述调度子系统接收用户设置的所述容器对目标硬件设备的所述QoS参数,所述目标硬件设备指所述容器使用频率大于预设频率阈值的硬件设备;通过所述调度子系统将所述QoS参数写入所述总线管理模块。
31.根据权利要求30所述的装置,其特征在于,所述总线管理模块中存储有所述容器对所述目标硬件设备的所述QoS参数,且所述容器使用的所述硬件设备不属于所述目标硬件设备;
所述调度子系统模块,还用于调用所述调度子系统获取预定时间段内,所述容器使用所述硬件设备的使用信息;
所述调度子系统模块,还用于根据所述使用信息和所述计算机的承载能力信息,为所述容器和所述硬件设备生成相应的所述QoS参数;所述承载能力信息包括带宽信息和延迟信息中的至少一种;
所述调度子系统模块,还用于通过所述调度子系统将生成的所述QoS参数写入所述总线管理模块。
32.根据权利要求22至31任一所述的装置,其特征在于,
所述调度子系统模块,还用于当所述容器销毁时,回收所述容器的所述容器ID。
CN201510641334.1A 2015-09-30 2015-09-30 计算机、服务质量控制方法及装置 Active CN105183565B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201510641334.1A CN105183565B (zh) 2015-09-30 2015-09-30 计算机、服务质量控制方法及装置
EP16850234.2A EP3299962B1 (en) 2015-09-30 2016-08-31 Computer, and method and apparatus for controlling quality of service
PCT/CN2016/097535 WO2017054610A1 (zh) 2015-09-30 2016-08-31 计算机、服务质量控制方法及装置
US15/845,568 US10169089B2 (en) 2015-09-30 2017-12-18 Computer and quality of service control method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510641334.1A CN105183565B (zh) 2015-09-30 2015-09-30 计算机、服务质量控制方法及装置

Publications (2)

Publication Number Publication Date
CN105183565A true CN105183565A (zh) 2015-12-23
CN105183565B CN105183565B (zh) 2018-12-07

Family

ID=54905660

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510641334.1A Active CN105183565B (zh) 2015-09-30 2015-09-30 计算机、服务质量控制方法及装置

Country Status (4)

Country Link
US (1) US10169089B2 (zh)
EP (1) EP3299962B1 (zh)
CN (1) CN105183565B (zh)
WO (1) WO2017054610A1 (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017054610A1 (zh) * 2015-09-30 2017-04-06 华为技术有限公司 计算机、服务质量控制方法及装置
CN107220126A (zh) * 2017-05-27 2017-09-29 中国南方电网有限责任公司调峰调频发电公司 x86服务器动态硬分区方法、装置、存储介质和计算机设备
CN107450965A (zh) * 2017-08-16 2017-12-08 郑州云海信息技术有限公司 一种云平台虚拟机输入/输出I/O的服务质量Qos管理的方法和装置
CN107562514A (zh) * 2017-08-03 2018-01-09 致象尔微电子科技(上海)有限公司 一种物理内存访问控制与隔离方法
CN108696452A (zh) * 2018-05-16 2018-10-23 腾讯科技(深圳)有限公司 一种容器级网络流量采集、网络质量标识方法、装置、系统
CN108897617A (zh) * 2018-06-19 2018-11-27 北京元心科技有限公司 内存管理的方法、装置以及终端设备
CN109308220A (zh) * 2017-07-26 2019-02-05 华为技术有限公司 共享资源分配方法及装置
CN110581776A (zh) * 2019-06-10 2019-12-17 阿里巴巴集团控股有限公司 QoS处理及控制方法及网络接口控制器
CN110968400A (zh) * 2019-12-18 2020-04-07 深圳奇迹智慧网络有限公司 应用程序的执行方法、装置、计算机设备和存储介质
CN113791865A (zh) * 2021-09-08 2021-12-14 山石网科通信技术股份有限公司 容器安全的处理方法及装置、存储介质和处理器

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107562515B (zh) * 2017-08-04 2021-09-07 海光信息技术股份有限公司 一种在虚拟化技术中管理内存的方法
CN108415772B (zh) * 2018-02-12 2022-02-18 腾讯科技(深圳)有限公司 一种基于容器的资源调整方法、装置和介质
US10698622B2 (en) * 2018-05-22 2020-06-30 International Business Machines Corporation Maintaining container to storage volume relations
WO2020167459A1 (en) * 2019-02-13 2020-08-20 Google Llc Caching streams of memory requests
JP2021149808A (ja) * 2020-03-23 2021-09-27 富士通株式会社 Cpu状態表示方法及びcpu状態表示プログラム
CN111708629B (zh) * 2020-04-30 2023-09-19 咪咕文化科技有限公司 一种资源分配方法、装置、电子设备和存储介质
US11809877B2 (en) * 2021-08-02 2023-11-07 Dell Products L.P. Dynamically tuning a computing device's performance for a containerized application

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060268699A1 (en) * 2005-05-27 2006-11-30 Nokia Corporation High speed serial bus architecture employing network layer quality of service (QoS) management
CN101826987A (zh) * 2010-04-27 2010-09-08 北京邮电大学 一种基于融合开放网络的混合服务支撑系统及方法
CN102591418A (zh) * 2010-12-16 2012-07-18 微软公司 具有qos保证的可缩放多媒体计算机系统体系结构
CN103002034A (zh) * 2012-12-03 2013-03-27 华中科技大学 一种基于云服务总线的应用QoS管理系统及其操作方法
CN103401917A (zh) * 2013-07-29 2013-11-20 华南理工大学 一种基于云总线的混合云计算系统及其实现方法
US20140082131A1 (en) * 2012-09-14 2014-03-20 Ca, Inc. Automatically configured management service payloads for cloud it services delivery

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7451183B2 (en) * 2003-03-21 2008-11-11 Hewlett-Packard Development Company, L.P. Assembly and method for balancing processors in a partitioned server
US7343468B2 (en) 2005-04-14 2008-03-11 International Business Machines Corporation Method and apparatus for storage provisioning automation in a data center
US8407451B2 (en) * 2007-02-06 2013-03-26 International Business Machines Corporation Method and apparatus for enabling resource allocation identification at the instruction level in a processor system
US8291411B2 (en) * 2007-05-21 2012-10-16 International Business Machines Corporation Dynamic placement of virtual machines for managing violations of service level agreements (SLAs)
CN107426145A (zh) * 2011-01-25 2017-12-01 交互数字专利控股公司 用于基于内容标识来自动地发现和获取内容的方法和设备
US9183054B2 (en) * 2012-06-30 2015-11-10 International Business Machines Corporation Maintaining hardware resource bandwidth quality-of-service via hardware counter
CN105183565B (zh) * 2015-09-30 2018-12-07 华为技术有限公司 计算机、服务质量控制方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060268699A1 (en) * 2005-05-27 2006-11-30 Nokia Corporation High speed serial bus architecture employing network layer quality of service (QoS) management
CN101826987A (zh) * 2010-04-27 2010-09-08 北京邮电大学 一种基于融合开放网络的混合服务支撑系统及方法
CN102591418A (zh) * 2010-12-16 2012-07-18 微软公司 具有qos保证的可缩放多媒体计算机系统体系结构
US20140082131A1 (en) * 2012-09-14 2014-03-20 Ca, Inc. Automatically configured management service payloads for cloud it services delivery
CN103002034A (zh) * 2012-12-03 2013-03-27 华中科技大学 一种基于云服务总线的应用QoS管理系统及其操作方法
CN103401917A (zh) * 2013-07-29 2013-11-20 华南理工大学 一种基于云总线的混合云计算系统及其实现方法

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10169089B2 (en) 2015-09-30 2019-01-01 Huawei Technologies Co., Ltd. Computer and quality of service control method and apparatus
WO2017054610A1 (zh) * 2015-09-30 2017-04-06 华为技术有限公司 计算机、服务质量控制方法及装置
CN107220126A (zh) * 2017-05-27 2017-09-29 中国南方电网有限责任公司调峰调频发电公司 x86服务器动态硬分区方法、装置、存储介质和计算机设备
CN107220126B (zh) * 2017-05-27 2020-12-01 南方电网调峰调频发电有限公司 x86服务器动态硬分区方法、装置、存储介质和计算机设备
CN109308220A (zh) * 2017-07-26 2019-02-05 华为技术有限公司 共享资源分配方法及装置
CN107562514A (zh) * 2017-08-03 2018-01-09 致象尔微电子科技(上海)有限公司 一种物理内存访问控制与隔离方法
CN107450965A (zh) * 2017-08-16 2017-12-08 郑州云海信息技术有限公司 一种云平台虚拟机输入/输出I/O的服务质量Qos管理的方法和装置
CN108696452A (zh) * 2018-05-16 2018-10-23 腾讯科技(深圳)有限公司 一种容器级网络流量采集、网络质量标识方法、装置、系统
CN108696452B (zh) * 2018-05-16 2020-06-02 腾讯科技(深圳)有限公司 一种容器级网络流量采集、网络质量标识方法、装置、系统
CN108897617A (zh) * 2018-06-19 2018-11-27 北京元心科技有限公司 内存管理的方法、装置以及终端设备
CN110581776A (zh) * 2019-06-10 2019-12-17 阿里巴巴集团控股有限公司 QoS处理及控制方法及网络接口控制器
CN110581776B (zh) * 2019-06-10 2022-06-21 阿里巴巴集团控股有限公司 QoS处理及控制方法及网络接口控制器
CN110968400A (zh) * 2019-12-18 2020-04-07 深圳奇迹智慧网络有限公司 应用程序的执行方法、装置、计算机设备和存储介质
CN110968400B (zh) * 2019-12-18 2022-10-18 深圳奇迹智慧网络有限公司 应用程序的执行方法、装置、计算机设备和存储介质
CN113791865A (zh) * 2021-09-08 2021-12-14 山石网科通信技术股份有限公司 容器安全的处理方法及装置、存储介质和处理器

Also Published As

Publication number Publication date
US20180121242A1 (en) 2018-05-03
EP3299962A4 (en) 2018-08-08
EP3299962A1 (en) 2018-03-28
EP3299962B1 (en) 2020-10-21
WO2017054610A1 (zh) 2017-04-06
US10169089B2 (en) 2019-01-01
CN105183565B (zh) 2018-12-07

Similar Documents

Publication Publication Date Title
CN105183565A (zh) 计算机、服务质量控制方法及装置
CN100377113C (zh) 根据优先级来处理高速缓存分配请求的方法和装置
CN108845877B (zh) 管理内存的方法、装置和系统
CN106104485A (zh) 针对多进程应用的动态资源管理
US20180335947A1 (en) Namespace/stream management
EP3224728B1 (en) Providing shared cache memory allocation control in shared cache memory systems
CN109151512A (zh) Cdn网络中获取内容的方法及装置
CN105791254B (zh) 网络请求处理方法、装置及终端
CN112825042A (zh) 资源管理方法和装置、电子设备及存储介质
CN103049328A (zh) 计算机系统中内存资源分配方法
CN104793982A (zh) 一种创建虚拟机的方法和设备
CN114155026A (zh) 一种资源分配方法、装置、服务器及存储介质
KR20220025746A (ko) 컴퓨팅 자원의 동적 할당
US7900010B2 (en) System and method for memory allocation management
CN110879748A (zh) 一种共享资源分配方法、装置和设备
CN115686746A (zh) 访问方法、任务处理方法、计算设备及计算机存储介质
WO2017133421A1 (zh) 一种多租户资源共享的方法及装置
CN110096355B (zh) 一种共享资源分配方法、装置和设备
CN114253704A (zh) 一种分配资源的方法及装置
CN113835862B (zh) 任务处理方法及装置
CN105072047A (zh) 一种报文传输及处理方法
CN115442239B (zh) 带宽资源分配方法、PCIe通道切换器及电子设备
KR102183274B1 (ko) 분산 처리 시스템 및 그 방법, 그리고 이에 적용되는 장치
US11005774B2 (en) Techniques for excess resource utilization
EP4216504A1 (en) Method for predicatively operating a communication network

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