Managing memory usage in server systems

US2017034297A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2017034297-A1
Application numberUS-201514811422-A
CountryUS
Kind codeA1
Filing dateJul 28, 2015
Priority dateJul 28, 2015
Publication dateFeb 2, 2017
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A memory manager reduces the impact of memory clean-up operations on server performance. The memory manager monitors local memory usage and other resource usage by the server, such as processor, storage, and network usage. When moderately high memory usage is detected, the memory manager performs memory clean-up operations during relatively low processor, storage, and network usage to reduce the impact of the clean-up operations on server performance. When excessively high memory usage is detected, the memory manager more aggressively cleans-up local memory independently of processor, storage, and network usage.

First claim

Opening claim text (preview).

What is claimed is: 1 . A method for a server system to manage memory in a server, the method comprising the steps of: monitoring, by the server system, resource usage of a processor and a storage device; monitoring, by the server system, memory usage for a local memory by the server; synchronizing cached pages in the local memory with pages in the storage device to increase the amount of available space in the local memory based on the resource usage and a first level of the memory usage; and synchronizing the cached pages in the local memory with the pages in the storage device independently of the resource usage based on a second level of the memory usage higher than the first level of the memory usage. 2 . The method of claim 1 , further comprising determining the first level of the memory usage based on a percentage of the local memory storing the cached pages. 3 . The method of claim 1 , further comprising rate limiting the synchronizing of the cached pages during the first level of the memory usage to a limited number of times during a specified time period. 4 . The method of claim 1 , further comprising determining the resource usage based on: a metric of usage of the processor; and a measure of storage device input/output (I/O) operations and network I/O operations by the processor. 5 . The method of claim 4 , further comprising determining the resource usage based on a number of the cached pages that need to be synchronized with the pages in the storage device. 6 . The method of claim 1 , further comprising determining the second level of the memory usage based on: a scan frequency for the cached pages; a page steal frequency for converting the cached pages into available space in the local memory; or a measure of swapping of data between the local memory and the storage device. 7 . The method of claim 1 , further comprising discontinuing the monitoring of at least some of the resource usage during the second level of the memory usage. 8 . The method of claim 1 , further comprising using a module within a kernel space or user space of the server to monitor the resource usage, monitor the memory usage, and initiate the synchronization of the cached pages. 9 . The method of claim 1 , further comprising: estimating an amount of time required to synchronize the cached pages in the local memory with the pages in the storage device; and synchronizing the cached pages in the local memory with the pages in the storage device based on the estimated amount of time. 10 . The method of claim 1 , further comprising determining the second level of the memory usage based on a virtual memory usage and/or a virtual memory efficiency of the storage device as local memory. 11 . A server system, comprising: a server including a processor and local memory; a storage device; and one or more stored sequences of instructions, which, when executed by the processor, cause the processor to carry out the steps of: monitoring local memory usage, processor usage, and storage device usage by the server; identifying a first memory pressure state for the local memory based on a first level of the local memory usage; conducting a first clean-up operation for the local memory during the first memory pressure state based on the processor usage and the storage device usage; identifying a second memory pressure state for the local memory based on a second level of the local memory usage higher than the first level of the local memory usage; and conducting a second clean-up operation during the second memory pressure state independently of the processor usage and the storage device usage. 12 . The server system of claim 11 , wherein the instructions further cause the processor to carry out the steps of limiting a number of times the first clean-up operation is performed during a specified time period. 13 . The server system of claim 11 , wherein the instructions further cause the processor to carry out the steps of: monitoring network usage by the server; and conducting the first clean-up operation based on the network usage; and conducting the second clean-up operation independently of the network usage. 14 . The server system of claim 11 , wherein the instructions further cause the processor to carry out the steps of identifying the first memory pressure state based on an amount of the local memory used for storing the cached pages. 15 . The server system of claim 14 , wherein the instructions further cause the processor to carry out the steps of identifying the second memory pressure state based on: a frequency of page scans in the local memory; a frequency of converting cached pages in the local memory into available memory space; and/or an amount of data swapping between the local memory and the storage device. 16 . The server system of claim 11 , wherein the instructions further cause the processor to carry out the steps of: identifying a percentage of dirty pages in the local memory with modified data; and conducting the first clean-up operation based on the percentage of dirty pages. 17 . The server system of claim 11 , wherein the instructions further cause the processor to carry out the steps of conducting the first clean-up operation and the second clean-up operation by syncing cached pages in the local memory with associated pages in the storage device and invalidating the cached pages in the local memory. 18 . A computer program stored on a tangible medium for a server system, the computer program comprising a set of instructions operable to: monitor resource usage by a server; monitor memory usage of a local memory by the server; conduct a first clean-up operation for the local memory based a first level of the memory usage; initiate the first clean-up operation based on the resource usage indicating the first clean-up operation will not substantially slow down application processes on the server; conduct a second clean-up operation for the local memory based a second level of the memory usage larger than the first level of the memory usage; and initiate the second clean-up operation independently of the resource usage. 19 . The computer program of claim 18 , including instructions operable to rate limit the first clean-up operation to a specified number of times during a specified time period. 20 . The computer program of claim 18 , including instructions operable to identify the first level of the memory usage based on an amount of the local memory used as page cache memory. 21 . The computer program of claim 20 , including instructions operable to identify the second level of the memory usage based on scanning and swapping operations for the local memory. 22 . The computer program of claim 18 , including instructions operable to determine the resource usage based on usage of a processor in the server, an amount of storage operations by the server with disk memory, and an amount of packet operations by the server over a network.

Assignees

Inventors

Classifications

  • Electricity · mapped topic

  • Active monitoring, e.g. heartbeat, ping or trace-route · CPC title

  • Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes · CPC title

  • H04L67/568Primary

    Storing data temporarily at an intermediate stage, e.g. caching · CPC title

  • by checking functioning · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2017034297A1 cover?
A memory manager reduces the impact of memory clean-up operations on server performance. The memory manager monitors local memory usage and other resource usage by the server, such as processor, storage, and network usage. When moderately high memory usage is detected, the memory manager performs memory clean-up operations during relatively low processor, storage, and network usage to reduce th…
Who is the assignee on this patent?
Salesforce Com Inc
What technology area does this patent fall under?
Primary CPC classification H04L67/2842. Mapped technology areas include Electricity.
When was this patent published?
Publication date Thu Feb 02 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).