Apparatus and method for dynamic resource allocation in a network environment
First Claim
1. A method for dynamically allocating memory in a network processing device, comprising:
- allocating an amount of the memory used for receiving data in the network processing device;
allocating an amount of the memory used for transmitting data from the network processing device;
monitoring a pattern of a number of transmitted and received network packets in the network processing device;
dynamically reallocating between a larger amount of memory allocated for receiving data and a larger amount of memory allocated for transmitting data according to the monitored pattern of the number of transmitted and received network packets;
predicting future patterns of the number of transmitted and received network packets from the monitored pattern of the number of transmitted and received network packets; and
reallocating the memory between a transmit buffer and a receive buffer according to the predicted future patterns of the number of transmitted and received network packets.
2 Assignments
0 Petitions
Accused Products
Abstract
A resource controller allocates a portion of network memory to a receive path for receiving data and to a transmit path for transmitting data. Network traffic patterns are monitored including the amount of data received and transmitted by the network processing device. The resource controller determines based on the monitored traffic patterns if the transmit path or receive path has allocated a desire amount of network memory. The resource controller removes underutilized resources in the receive or transmit paths. Removed network memory is returned to a resource pool and made available for allocation to another receive path or transmit path that needs additional network memory. An artificial intelligence system predicts future network resource allocations to further increase the efficiency of the resource controller'"'"'s network resource allocation. The resource controller can monitor multiple network interface cards with the resource controller dynamically reallocating network resources amongst the multiple network interfaces.
273 Citations
19 Claims
-
1. A method for dynamically allocating memory in a network processing device, comprising:
-
allocating an amount of the memory used for receiving data in the network processing device;
allocating an amount of the memory used for transmitting data from the network processing device;
monitoring a pattern of a number of transmitted and received network packets in the network processing device;
dynamically reallocating between a larger amount of memory allocated for receiving data and a larger amount of memory allocated for transmitting data according to the monitored pattern of the number of transmitted and received network packets;
predicting future patterns of the number of transmitted and received network packets from the monitored pattern of the number of transmitted and received network packets; and
reallocating the memory between a transmit buffer and a receive buffer according to the predicted future patterns of the number of transmitted and received network packets. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
identifying a first transmit path or receive path in the network processing device that needs additional memory;
removing at least some of the memory currently allocated to a second transmit path or receive path; and
reallocating the memory removed from the second transmit path or receive path to the first transmit path or receive path.
-
-
3. A method according to claim 1 wherein dynamically reallocating the memory includes:
-
moving at least a portion of the memory allocated to the first receive path or transmit path to a memory resource pool; and
reallocating memory in the resource pool to the second receive path or transmit path.
-
-
4. A method according to claim 1 including the following:
-
determining whether a first time slice of the monitored pattern of the number of transmitted and received network packets matches an earlier stored time slice from a previously monitored pattern of the number of transmitted and received network packets; and
reallocating the memory according to a pattern consequence of the earlier stored time slice when the first time slice matches the earlier stored time slice.
-
-
5. A method according to claim 4 including the following:
-
identifying a second time slice in the monitored pattern of the number of transmitted and received network packets that follows the first time slice;
storing the second time slice as the pattern consequence of the first time slice when the first time slice matches the earlier stored time slice; and
reallocating the memory according to the pattern consequence of the first time slice when time slices of later patterns of the number of transmitted and received network packets match the first time slice.
-
-
6. A method according to claim 4 including storing the first time slice as a matchable pattern when the first time slice does not match any currently known pattern of the number of transmitted and received network packets.
-
7. A method according to claim 6 including reallocating the memory only when the first time slice indicates heavy network usage in only one of a transmit path or receive path.
-
8. A method according to claim 1 wherein the memory comprises network processing device memory.
-
9. A method according to claim 1 including the following:
-
providing multiple network interfaces in the network processing device;
monitoring network traffic patterns for each one of the multiple network interfaces; and
dynamically reallocating the memory between the multiple network interfaces according to the monitored network traffic patterns.
-
-
10. A method according to claim 9 including the following:
-
assigning one of the multiple network interfaces as a primary network interface device; and
giving the primary network interface device highest priority when dynamically reallocating the memory.
-
-
11. A network processing device, including:
-
a network interface for receiving packets and transmitting packets;
a memory including a receive portion used by the network interface for receiving packets and a transmit portion used by the network interface for transmitting packets;
a processor that monitors patterns of a number of transmitted and received network packets over the network interface and dynamically reallocates amounts of memory allocated to the receive portion and the transmit portion according to the monitored transmitting and receiving traffic patterns, wherein the processor includes an expert system that reallocates a larger amount of memory between the receive portion and the transmit portion according to predicted patterns of the number of transmitted and received network packets. - View Dependent Claims (12, 13, 14, 15, 16)
-
-
17. A computer program for use with a network processing device, said computer program, comprising:
-
a statistic monitoring agent for monitoring a number of transmitted and received network packets in the network processing device;
a transmit module for adding and removing memory for a transmit path of the network processing device;
a receive module for adding and removing memory for a receive path of the network processing device;
a resource controller that dynamically controls an amount of memory the transmit module adds and removes for the transmit path and an amount of memory the receive module adds and removes for the receive path according to the number of transmitted and received packets monitored by the statistic monitoring agent; and
system that predicts future patterns of the number of transmitted and received network packets in the network processing device according to the monitored number of transmitted and received network packets, the resource controller allocating memory to the transmit path and receive path according to the predicted future patterns. - View Dependent Claims (18, 19)
-
Specification