IP Library Granted Patent US 9,712,610
Granted Patent B2
US 9,712,610 · App. 14/042,774 · Granted Jul 18, 2017

System and method for increasing physical memory page sharing by workloads

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,712,610
App. No.
14/042,774
Granted
Jul 18, 2017
Kind
B2
Abstract

System and method for increasing physical memory page sharing by workloads executing on different host computing systems are described. In one embodiment, workloads executing on different host computing systems that access physical memory pages having identical contents are identified. Further, migration to consolidate the identified workloads on a single host computing system such that the physical memory pages can be shared using a page sharing mechanism is recommended.

Claims (66)

1. A method of creating a workload migration recommendation comprising:

comparing each hash value, in a second hash table of a second host computing system, corresponding to a first workload running on the second host computing system with hash values in a first hash table of a first host computing system by a processor;

identifying the first workload as accessing physical memory pages having identical contents by the processor when each hash value corresponding to the first workload running on the second host computing matches with the hash values in the first hash table of the first host computing system; and

recommending migration of the identified first workload from the second host computing system to the first host computing system by the processor such that the physical memory pages can be shared for the first workload on the first host computing system.

2. The method of claim 1 , comparing each hash value corresponding to the first workload running on the second host computing system with hash values in the first hash table, comprises:

periodically synchronizing the first hash table of the first host computing system and the second hash table of the second host computing system with a master hash table residing in a management server, wherein the first hash table and the second hash table comprise hash values that are generated based on contents of the physical memory pages; and

comparing each hash value, in the second hash table, corresponding to the first workload running on the second host computing system with the hash values in the first hash table using the master hash table.

3. The method of claim 1 , further comprises:

propagating the hash values corresponding to the first workload to the first hash table residing in the first host computing system during migration of the identified first workload.

4. The method of claim 1 , further comprising:

repeating the steps of comparing, identifying, and recommending for other workloads running on the second host computing system.

5. The method of claim 1 , wherein sharing the physical memory pages for the first workload on the first host computing system, comprises:

mapping guest physical memory pages of the first workload to the physical memory pages associated with the matched hash values in the first host computing system.

6. The method of claim 1 , further comprising initiating the migration of the first workload to the first host computing system based on computing resources availability at the first host computing system.

7. The method of claim 1 , wherein identifying the first workload as accessing the physical memory pages having identical contents further comprises:

performing, a byte-by-byte comparison of the physical memory pages associated with the matched hash values in the first hash table and the second hash table; and

identifying the first workload as accessing the physical memory pages having identical contents based on outcome of the byte-by-byte comparison.

8. The method of claim 1 , further comprising:

periodically generating the hash values by applying a hash function on the contents of the physical memory pages of the first host computing system and the second host computing system; and

updating the hash values in a respective one of the first hash table and the second hash table.

9. The method of claim 2 , wherein periodically synchronizing the first hash table of the first host computing, system and the second hash table of the second host computing system with the master hash table residing in the management server, comprises:

periodically polling, the first host computing system and the second host computing system to obtain the hash values stored in the first hash table and the second hash table using a connection; and

periodically synchronizing the first hash table and the second hash table with the master hash table using the obtained hash values.

10. The method of claim 9 , wherein the connection comprises at least one of a remote direct memory access (RDMA)-enabled network connection and a host bus interconnect hardware.

11. A system comprising:

a plurality of host computing systems comprising a first host computing system and a second host computing system; and

a management server communicatively coupled to the plurality of host computing systems, wherein the management server comprises;

at least one processor;

memory coupled to the at least one processor, wherein the memory comprises a memory page sharing module having instructions that are executed by the at least one processor to:

compare each hash value, in a second hash table of the second host computing system, corresponding to a first workload running on the second host computing system with hash values in a first hash table of the first host computing system;

identify the first workload as accessing the physical memory pages having identical contents when each hash value corresponding to the first workload running on the second host computing system matches with the hash values in the first hash table of the first host computing system; and

recommend migration of the identified first workload from the second host computing system to the first host computing system such that the physical memory pages can be shared for the first workload on the first host computing system.

12. The system of claim 11 , wherein the management server further comprises a master hash table, and wherein the memory page sharing module is configured to:

periodically synchronize the first hash table of the first host computing system and the second hash table of the second host computing system with the master hash table, wherein the first hash table and the second hash table comprise hash values that are generated based on contents of physical memory pages; and

compare each hash value, in the second hash table, corresponding to the first workload running on the second host computing system with the hash values in the first hash table using the master hash table.

13. The system of claim 11 , wherein the memory page sharing module is configured to:

propagate the hash values corresponding to the first workload to the first hash table residing in the first host computing system during migration of the identified first workload.

14. The system of claim 11 , wherein the memory page sharing module is further configured to repeat the steps of comparing, identifying and recommending for other workloads running on the second host computing system.

15. The system of claim 11 , wherein the memory page sharing module shares the physical memory pages for the first workload on the first host computing system by mapping guest physical memory pages of the first workload to the physical memory pages associated with the matched hash values in the first host computing system.

16. The system of claim 11 , further comprising a resource scheduling framework to initiate migration of the first workload to the first host computing system based on computing resources availability at the first host computing system.

17. The system of claim 11 , wherein the memory page sharing module identifies the first workload as accessing the physical memory pages having identical contents by performing a byte-by-byte comparison of the physical memory pages associated with the matched hash values in the first hash table and the second hash table.

18. The system of claim 12 , wherein the memory page sharing module periodically polls the first host computing system and the second host computing system to obtain the hash values stored in the first hash table and the second hash table using a connection, and periodically synchronizes the first hash table and the second hash table with the master hash table using the obtained hash values.

19. The system of claim 18 , the connection comprises at least one of a remote direct memory access (RDMA)-enabled network connection and a host bus interconnect hardware.

20. A non-transitory computer-readable storage medium including instructions that are configured, when executed by a computing system, to perform a method of creating a workload migration recommendation, the method comprising:

comparing each hash value, in a second hash table of a second host computing system, corresponding to a first workload running on the second host computing system with hash values in a first hash table of a first host computing system; and

identifying the first workload as accessing physical memory pages having identical contents when each hash value corresponding to the first workload running on the second host computing system matches with the hash values in the first hash table of the first host computing system; and

recommending migration of the identified first workload from the second host computing system to the first host computing system such that the physical memory pages can be shared for the first workload on the first host computing system.

21. The non-transitory computer-readable storage medium of claim 20 , wherein comparing each hash value corresponding to the first workload running on the second host computing system with hash values in the first hash table, comprises:

periodically synchronizing the first hash table of the first host computing system and the second hash table of the second host computing system with a master hash table residing in a management server, wherein the first hash table and the second hash table comprise hash values that are generated based on contents of physical memory pages; and

comparing each hash value, in the second hash table, corresponding to the first workload running on the second host computing system with the hash values in the first hash table using the master hash table.

22. The non-transitory computer-readable storage medium of claim 20 , further comprises:

propagating the hash values corresponding to the first workload to the first hash table residing in the first host computing system during migration of the identified first workload.

23. The non-transitory computer-readable storage medium of claim 20 , further comprising:

repeating the steps of comparing, identifying, and recommending for other workloads running on the second host computing system.

24. The non-transitory computer-readable storage medium of claim 20 , wherein sharing the physical memory pages for the first workload on the first host computing system, comprises:

mapping guest physical memory pages of the first workload to the physical memory pages associated with the matched hash values in the first host computing system.

25. The non-transitory computer-readable storage medium of claim 20 , further comprising initiating the migration of the first workload to the first host computing system based on computing resources availability at the first host computing system.

26. The non-transitory computer-readable storage medium of claim 20 , wherein identifying the first workload as accessing the physical memory pages having identical contents further comprises:

performing, a byte-by-byte comparison of the physical memory pages associated with the matched hash values in the first hash table and the second hash table; and

identifying the first workload as accessing the physical memory pages having identical contents based on outcome of the byte-by-byte comparison.

27. The non-transitory computer-readable storage medium of claim 20 , further comprising:

periodically generating the hash values by applying a hash function on the contents of the physical memory pages of the first host computing system and the second host computing system; and

updating the hash values in a respective one of the first hash table and the second hash table.

28. The non-transitory computer-readable storage medium of claim 21 , wherein periodically synchronizing the first hash table of the first host computing system and the second hash table of the second host computing system with the master hash table residing in the management server, comprises:

periodically polling the first host computing system and the second host computing system to obtain the hash values stored in the first hash table and the second hash table using a connection; and

periodically synchronizing the first hash table and the second hash table with the master hash table using the obtained hash values.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 1, 2013
From: RAMASUBRAMANIAN, MANIKANDAN
To: VMWARE, INC.
Reel/Frame 031316/0275 →