Traffic and load aware dynamic queue management

US9843540B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9843540-B2
Application numberUS-201314137957-A
CountryUS
Kind codeB2
Filing dateDec 20, 2013
Priority dateAug 26, 2013
Publication dateDec 12, 2017
Grant dateDec 12, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Some embodiments provide a queue management system that efficiently and dynamically manages multiple queues that process traffic to and from multiple virtual machines (VMs) executing on a host. This system manages the queues by (1) breaking up the queues into different priority pools with the higher priority pools reserved for particular types of traffic or VM (e.g., traffic for VMs that need low latency), (2) dynamically adjusting the number of queues in each pool (i.e., dynamically adjusting the size of the pools), (3) dynamically reassigning a VM to a new queue based on one or more optimization criteria (e.g., criteria relating to the underutilization or overutilization of the queue).

First claim

Opening claim text (preview).

We claim: 1. For an electronic device that comprises a physical network interface card (PNIC) with a plurality of queues for temporarily storing data traffic through the PNIC, a method of managing the queues of the PNIC, the method comprising: specifying a first pool and assigning at least a first queue of the queues of the PNIC to the first pool; initializing a first virtual machine (VM) as an addressable node executing on the electronic device, wherein the first VM includes a first virtual network interface card (VNIC) which is coupled through a network stack to the PNIC; assigning a subset of data traffic through the PNIC to the first pool to be supported by queues which are assigned to the first pool including at least the first queue, wherein the subset of data traffic relates to the first VM; initializing a second virtual machine (VM) as an addressable node executing on the electronic device, wherein the second VM includes a second VNIC which is coupled through a network stack to the PNIC; determining that the second VM has a particular traffic requirement relevant to a specific hardware functionality that is supported by the PNIC; specifying a hardware-feature pool and assigning at least a second queue of the queues of the PNIC to the hardware-feature pool, the specifying of the hardware-feature pool and the assigning of at least the second queue comprises determining that none of the queues of the PNIC are free queues and, in response, preempting the second queue which is currently assigned to another pool and assigning the second queue to the hardware-feature pool, wherein the second queue has the specific hardware functionality to match the particular traffic requirement of the VM, and, by way of the preempting, is a free queue of the PNIC prior to assigning the second queue to the hardware-feature pool; and based on the determining, assigning data traffic of the second VM to the hardware-feature pool to be supported by queues which are assigned to the hardware-feature pool including at least the second queue. 2. The method of claim 1 , wherein the addressable nodes further comprise a hypervisor kernel network interface. 3. The method of claim 1 , wherein the addressable nodes comprise a module for mounting at least a portion of an external storage on a storage of the electronic device, said mounted portion for access by VMs executing on the device. 4. The method of claim 1 , wherein the addressable nodes further comprises a module for migrating VMs. 5. The method of claim 1 , further comprising: initializing a third virtual machine (VM) as an addressable node executing on the electronic device, wherein the third VM includes a third VNIC which is coupled through a network stack to the PNIC; determining, by monitoring the data traffic through the PNIC, that the data traffic of the third VM comprises data traffic of a particular type that requires low latency; specifying a third pool and assigning at least a third queue of the queues of the PNIC to the third pool; and assigning the data traffic of the third VM to the third pool to be supported by queues which are assigned to the third pool including at least the third queue; wherein the third pool is reserved for data traffic that requires low latency. 6. The method of claim 5 further comprising: receiving a data packet having a packet header containing a set of data tuples; and determining the type of data packet by examining the set of data tuples in the packet header. 7. The method of claim 6 , wherein the data packet is an layer 2 (L2) packet and the set of data tuples comprises a media access control (MAC) address. 8. The method of claim 6 , wherein the data packet is an layer 3 (L3) packet and the set of data tuples comprises source port identifier, destination port identifier, source Internet Protocol (IP) address, destination IP address and protocol. 9. The method of claim 5 , wherein the particular type comprise one of voice over Internet Protocol (IP) data, video data, audio data, remote desktop packet, management packet and e-mail packet. 10. The method of claim 1 , further comprising: detecting that a subset of data traffic through a currently assigned queue falls below a threshold amount of traffic; and assigning the subset of data traffic to another queue; wherein the other queue is a queue to which another subset of data traffic is previously assigned. 11. The method of claim 10 , wherein: the threshold amount of traffic is a minimum threshold amount; the detecting further comprises, prior to assigning the subset of data traffic to the other queue, detecting that the data traffic through the other queue does not exceed a maximum threshold amount of traffic. 12. The method of claim 1 , further comprising: detecting that the data traffic through the first queue exceeds a threshold amount of traffic, wherein the data traffic through the first queue includes not only the subset of data traffic of the first VM but other data traffic; and assigning the subset of data traffic of the first VM to another queue in the first pool, wherein the other queue is a queue to which another subset of data traffic is assigned. 13. The method of claim 1 , further comprising: detecting that the subset of data traffic of the first VM through the first queue exceeds a maximum threshold amount of traffic; and assigning the subset of data traffic of the first VM to another queue in the first pool, wherein the other queue is a queue to which another subset of data traffic is assigned. 14. The method of claim 13 further comprising: upon detecting that the data traffic through the first queue exceeds the maximum threshold amount of traffic, assigning the other queue from another pool to the first pool. 15. The method of claim 13 further comprising detecting that the data traffic through the other queue does not exceed a maximum threshold amount of traffic for the other queue. 16. A non-transitory machine readable medium storing a program for execution by at least one processing unit, the program for managing a plurality of queues in a physical network interface card (PNIC) of a computing device having a plurality of addressable nodes on the computing device that receive or send data traffic through the PNIC, the program comprising sets of instructions for: specifying a first pool and assigning at least a first queue of the queues of the PNIC to the first pool; initializing a first addressable node executing on the computing device; assigning first addressable node traffic to the first pool and directing first addressable node traffic to the first pool to be carried by the first queue; initializing a second addressable node executing on the computing device; determining that the traffic for the second addressable node should be assigned to another queue according to a traffic requirement of the first second addressable node relevant to a specific hardware functionality that is supported by the PNIC; specifying a hardware-feature pool and assigning at least a second queue of the queues of the PNIC to the hardware-feature pool, the specifying of the hardware-feature pool and the assigning of at least the second queue comprises determining that none of the queues of the PNIC are free queues and, in response, preempting the second queue which is currently assigned to another pool and assigning the second queue to the hardware-feature pool, the second queue having the specific hardware functionality and, by way of the preempting, is a free queue of the PNIC prior to assigning the second queue to the hardware-feature pool

Assignees

Inventors

Classifications

  • including multiple buffers, e.g. buffer pools · CPC title

  • Throughput · CPC title

  • Centralised allocation of resources · CPC title

  • for supporting traffic characterised by the type of applications · CPC title

  • using multiple queues, one for each individual QoS, connection, flow or priority · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9843540B2 cover?
Some embodiments provide a queue management system that efficiently and dynamically manages multiple queues that process traffic to and from multiple virtual machines (VMs) executing on a host. This system manages the queues by (1) breaking up the queues into different priority pools with the higher priority pools reserved for particular types of traffic or VM (e.g., traffic for VMs that need l…
Who is the assignee on this patent?
Vmware Inc
What technology area does this patent fall under?
Primary CPC classification H04L49/9047. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Dec 12 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 6 related publications on this page (citations in our corpus or others sharing the same primary CPC).