Ensuring predictable and quantifiable networking performance
First Claim
1. A computing system comprising:
- one or more processors;
one or more hardware storage devices having stored computer-executable instructions which are executable by the one or more processors for implementing a method for addressing network congestion within a computing environment that includes a plurality of computing systems, the plurality of computing systems managing sending message processors that communicate packets comprising one or more data flows that are sent to and received by one or more receiving message processors managed by the computing system, wherein the method comprises the following;
the computer system identifying a predetermined bandwidth limitation associated with the plurality of computing systems;
the computer system calculating a combined bandwidth of the one or more received data flows;
the computer system detecting an onset of congestion by at least determining that the calculated combined bandwidth is within a specified threshold of the predetermined bandwidth limitation;
the computer system, subsequent to detecting the onset of congestion, identifying at least one violating message processor associated with the one or more data flows as a cause of the detected onset of congestion by at least determining that the at least one violating message processor is utilizing a bandwidth that exceeds a particular bandwidth limitation associated with the at least one violating message processor;
the computer system determining an extent in which the particular bandwidth limitation is exceeded by the at least one violating message processor;
the computer system formulating at least one feedback message that serves to rate limit the at least one violating message processor; and
the computer system sending the feedback message for delivery to at least one adaptive rate limiter that is enabled to limit bandwidth utilization of the at least one violating message processor.
2 Assignments
0 Petitions
Accused Products
Abstract
The ensuring of predictable and quantifiable networking performance. Embodiments of the invention combine a congestion free network core with a hypervisor based (i.e., edge-based) throttling design to help insure quantitative and invariable subscription bandwidth rates. A lightweight shim layer in a hypervisor can adaptively throttle the rate of VM-to-VM traffic flow. A receiving hypervisor can detect congestion and communicate back to sending hypervisors that rates are to be regulated. In response, sending hypervisors can reduce transmission rate to mitigate congestion at the receiving hypervisor. In some embodiments, the principles are extended to any message processors communicating over a congestion free network.
32 Citations
20 Claims
-
1. A computing system comprising:
-
one or more processors; one or more hardware storage devices having stored computer-executable instructions which are executable by the one or more processors for implementing a method for addressing network congestion within a computing environment that includes a plurality of computing systems, the plurality of computing systems managing sending message processors that communicate packets comprising one or more data flows that are sent to and received by one or more receiving message processors managed by the computing system, wherein the method comprises the following; the computer system identifying a predetermined bandwidth limitation associated with the plurality of computing systems; the computer system calculating a combined bandwidth of the one or more received data flows; the computer system detecting an onset of congestion by at least determining that the calculated combined bandwidth is within a specified threshold of the predetermined bandwidth limitation; the computer system, subsequent to detecting the onset of congestion, identifying at least one violating message processor associated with the one or more data flows as a cause of the detected onset of congestion by at least determining that the at least one violating message processor is utilizing a bandwidth that exceeds a particular bandwidth limitation associated with the at least one violating message processor; the computer system determining an extent in which the particular bandwidth limitation is exceeded by the at least one violating message processor; the computer system formulating at least one feedback message that serves to rate limit the at least one violating message processor; and the computer system sending the feedback message for delivery to at least one adaptive rate limiter that is enabled to limit bandwidth utilization of the at least one violating message processor. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computing system comprising:
-
one or more processors; a hypervisor that receive one or more data flows from a plurality of sending virtual machines that communicate packets to one or more receiving virtual machines managed by the hypervisor; and a virtual machine switch that includes a congestion detector that performs the following; identifies a predetermined bandwidth limitation associated with the plurality of sending virtual machines; calculates a combined bandwidth of the one or more received data flows; detect an onset of congestion by at least determining that the calculated combined bandwidth is within a specified threshold of the predetermined bandwidth limitation; subsequent to detecting the onset of congestion, identify at least one violating virtual machine associated with the one or more data flows as a cause of the detected onset of congestion by at least determining that the at least one violating virtual machine is utilizing a bandwidth that exceeds a particular bandwidth limitation associated with the at least one violating virtual machine; determine an extent in which the particular bandwidth limitation is exceeded by the at least one violating virtual machine; formulate at least one feedback message that serves to rate limit the at least one violating virtual machine; and send the feedback message for delivery to at least one adaptive rate limiter that is enabled to limit bandwidth utilization of the at least one violating virtual machine. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A computer-implemented method for addressing network congestion within a computing environment having a plurality of computing systems, the plurality of computing systems managing sending message processors that communicate packets comprising one or more data flows that are sent to and received by one or more receiving message processors managed by at least one computing system for processing the received data flows, wherein the method comprises the following:
-
the at least one computer system identifying a predetermined bandwidth limitation associated with the plurality of computing systems; the at least one computer system calculating a combined bandwidth of the one or more received data flows; the at least one computer system detecting an onset of congestion by at least determining that the calculated combined bandwidth is within a specified threshold of the predetermined bandwidth limitation; the at least one computer system, subsequent to detecting the onset of congestion, identifying at least one violating message processor associated with the one or more data flows as a cause of the detected onset of congestion by at least determining that the at least one violating message processor is utilizing a bandwidth that exceeds a particular bandwidth limitation associated with the at least one violating message processor; the at least one computer system determining an extent in which the particular bandwidth limitation is exceeded by the at least one violating message processor; the at least one computer system formulating at least one feedback message that serves to rate limit the at least one violating message processor; and the at least one computer system sending the feedback message for delivery to at least one adaptive rate limiter that is enabled to limit bandwidth utilization of the at least one violating message processor. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification