A non-transitory, computer-readable medium, comprising machine-readable instructions that, when executed by a processor of a host computing device, cause the computing device to at least:
- detect congestion, with a congestion monitor executed by a first virtual machine executed by the host computing device, in a receive queue associated with a first virtualized network function implemented by a first virtual machine;
- send, with the congestion monitor executed by the first virtual machine executed by the host computing device, a pause signal to a rate controller executed by a second virtual machine executed by the host computing device;
- receive, by the rate controller executed by the second virtual machine executed by the host computing device, the pause signal;
- and
- pause, by the rate controller, processing of packets by a second virtualized network function implemented by the second virtual machine to reduce congestion in the receive queue of the first virtualized network function;
- wherein:
- the first virtualized network function is implemented using a first virtualized accelerator card allocated to the first virtual machine, the first virtualized accelerator card virtualizing at least a portion of a host accelerator card of the host computing device;
- the second virtualized network function is implemented using a second virtualized accelerator card allocated to the second virtual machine, the second virtualized accelerator card virtualizing at least a portion of the host accelerator card of the host computing device;
- and
- pausing the processing of packets by the second virtualized network function causes the host computing device to reallocate a time-slice for the host accelerator card from the second virtualized network function to the first virtualized network function.