IP Library Granted Patent US 9,626,224
Granted Patent B2
US 9,626,224 · App. 13/288,691 · Granted Apr 18, 2017

Optimizing available computing resources within a virtual environment

Inventors: David Anthony Hughes (Los Altos Hills, CA); John Burns (Los Altos, CA)
Assignee: Silver Peak Systems, Inc.
G06F9/5077G06F12/08
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,626,224
App. No.
13/288,691
Granted
Apr 18, 2017
Kind
B2
Abstract

Methods and systems for the optimization of available computing resources within a virtual environment are disclosed. An exemplary method comprises determining the sizes of the computing resources available to the virtual machine and determining optimal data structures for the virtual machine based on the sizes of the computing resources. The optimal data structures may include an indexing data structure and a historic data. The method may further comprise allocating a Random Access Memory (RAM) and disk storage to the optimal data structures and configuring the optimal data structures within the RAM and the disk storage. The optimization of data structures involves balancing requirements of the indexing data structure and the historic data.

Claims (35)

1. A method for apportioning resources within a virtual machine, the method comprising:

discovering allotted computing resources available to the virtual machine, the allotted computing resources including at least a Random Access Memory (RAM) and a disk storage;

determining, in an iterative process, an apportionment of each of the discovered allotted computing resources, to at least two data structures for the virtual machine, wherein the at least two data structures comprise a historic packet data store including at least a portion of a payload of data packets extracted sequentially from flows of network data traveling across a network and an indexing data structure that indexes the historic packet data;

dynamically allocating, independently from a host server and according to the determined apportionment, a portion of the Random Access Memory (RAM) and a portion of the disk storage available to the virtual machine to each of the at least two data structures from the discovered allotted computing resources available to the virtual machine; and

configuring according to the determined apportionment the at least two data structures within the RAM available to the virtual machine and configuring according to the determined apportionment the at least two data structures within the disk storage available to the virtual machine.

2. The method of claim 1 , further comprising communicating, to a further virtual machine, information related to the data structures for the virtual machine.

3. The method of claim 1 , wherein the computing resources further include a Central Processing Unit (CPU) and a Virtual Machine (VM) container.

4. The method of claim 1 , wherein the data structure sizes are affected by specific historical measurements.

5. The method of claim 1 , wherein the data structures are based on relative sizes between the indexing data structure and the historic packet data, such that the size of the indexing data structure depends on the size of the historic packet data.

6. The method of claim 1 , wherein the indexing data structure comprises one or more signature array hash tables, and the historic packet data comprises flow history pages.

7. The method of claim 6 , wherein determining the indexing data structure comprises determining sizes of the one or more signature array hash tables and the flow history pages.

8. The method of claim 7 , wherein the determining sizes of the one or more signature array hash tables is an iterative process.

9. The method of claim 1 , wherein the discovering allotted computing resources available to the virtual machine comprises requesting a virtual machine manager to provide information related to allotted resources and/or acquiring computing resources usage metrics.

10. The method of claim 1 , further comprising:

storing the historic packet data within the virtual machine; and

updating contents of at least one hash table within the virtual machine based on the historic packet data.

11. A system for apportioning resources within a virtual machine, comprising:

a processor to execute modules, the modules comprising:

a determination module configured to discover computing resources available to the virtual machine, the computing resources including at least a Random Access Memory (RAM) and a disk storage;

a data structure determination module configured to iteratively determine an apportionment of each of the discovered computing resources to at least two data structures for the virtual machine, the data structures comprising a historic packet data store including at least a portion of a payload of data packets extracted sequentially from flows of network data traveling across a network and an indexing data structure that indexes the historic packet data;

an allocation module configured to dynamically allocate, independently from a host server and according to the determined apportionment, a portion of the Random Access Memory (RAM) and a portion of the disk storage available to the virtual machine to each of the at least two data structures, from the discovered computing resources available to the virtual machine; and

a configuration module to configure according to the determined apportionment the at least two data structures within the RAM available to the virtual machine and configure according to the determined apportionment the at least two data structures within the disk storage available to the virtual machine.

12. The system of claim 11 , further comprising a communication module configured to communicate, to a further virtual machine, information related to the data structures for the virtual machine.

13. The system of claim 11 , wherein the data structure sizes are based on specific historical packet data.

14. The system of claim 11 , wherein the data structures are based on relative sizes between the indexing data structure and the historic packet data.

15. The system of claim 11 , further comprising a paged memory system for the data structures.

16. The system of claim 11 , wherein the indexing data structure comprises one or more signature array hash tables and the historic packet data comprises a flow history pages table.

17. The system of claim 16 , wherein the data structure determination module is further configured to determine sizes of the one or more signature array hash tables and the flow history pages table.

18. The system of claim 11 , wherein the determination module is further configured to request a virtual machine manager to provide information related to allotted resources and/or acquire computing resources usage metrics in order to discover alloted computing resources available to the virtual machine.

19. The system of claim 11 , wherein the data structure determination module is further configured to store the historic packet data within the virtual machine, and update contents of at least one hash table within the virtual machine based on the historic packet data.

20. A non-transitory computer-readable medium having instructions stored thereon, which when executed by one or more computers, causes the one or more computers to:

discover allotted computing resources available to a virtual machine, the allotted computing resources including at least a Random Access Memory (RAM) and a disk storage;

iteratively determine an apportionment of each of the discovered allotted computing resources, to at least two data structures for the virtual machine, wherein the at least two data structures comprise a historic packet data store including at least a portion of a payload of data packets extracted sequentially from flows of network data traveling across a network and an indexing data structure that indexes the historic packet data;

dynamically allocate, independently from a host server and according to the determined apportionment, a portion of the Random Access Memory (RAM) and a portion of the disk storage available to the virtual machine to each of the at least two data structures from the discovered allotted computing resources available to the virtual machine; and

configure according to the determined apportionment the at least two data structures within the RAM available to the virtual machine and configure according to the determined apportionment the at least two data structures within the disk storage available to the virtual machine.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 21, 2022
From: SILVER PEAK SYSTEMS, INC.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 059671/0166 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 10, 2022
From: SILVER PEAK SYSTEMS, INC.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 058984/0429 →
RELEASE OF SECURITY INTEREST Recorded Sep 22, 2020
From: GOLUB CAPITAL LLC
To: SILVER PEAK SYSTEMS, INC.
Reel/Frame 053852/0231 →
SECURITY INTEREST Recorded Apr 16, 2019
From: SILVER PEAK SYSTEMS, INC.
To: GOLUB CAPITAL LLC, AS AGENT
Reel/Frame 048921/0455 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2012
From: HUGHES, DAVID ANTHONY; BURNS, JOHN
To: SILVER PEAK SYSTEMS INC.
Reel/Frame 027525/0448 →
Continuity (1)
Related Publication 20130117494A1 · May 9, 2013