CN114546634A - 对系统的同步重启的管理 - Google Patents

对系统的同步重启的管理 Download PDF

Info

Publication number
CN114546634A
CN114546634A CN202111226164.2A CN202111226164A CN114546634A CN 114546634 A CN114546634 A CN 114546634A CN 202111226164 A CN202111226164 A CN 202111226164A CN 114546634 A CN114546634 A CN 114546634A
Authority
CN
China
Prior art keywords
memory
management system
amount
threshold
available
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202111226164.2A
Other languages
English (en)
Other versions
CN114546634B (zh
Inventor
C·默里
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of CN114546634A publication Critical patent/CN114546634A/zh
Application granted granted Critical
Publication of CN114546634B publication Critical patent/CN114546634B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3442Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for planning or managing the needed capacity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/885Monitoring specific for caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5014Reservation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5022Workload threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)

Abstract

本文描述的示例涉及一种系统,该系统包括:具有主存储器的第一管理系统,该主存储器包括空闲内存、已用内存、以及松预留内存,其中,该松预留内存包括具有可回收内存的缓存内存;以及耦接到该主存储器的处理资源。处理资源可以在第一管理系统的运行时间期间监测已用内存的量和可用内存的量。进一步地,如果已用内存的量大于内存耗尽第一阈值或者可用内存的量小于内存耗尽第二阈值,则处理资源可以启用第一管理系统的同步重启,其中,该内存耗尽第一阈值和该内存耗尽第二阈值是基于可回收内存的使用量和主缺页中断的数量确定的。

Description

对系统的同步重启的管理
背景技术
计算系统使用操作系统(OS)运行,该操作系统如但不限于Linux OS、Windows OS、MAC OS、android OS等。某些专用计算系统可以使用紧凑型、轻量级、和/或嵌入式OS来操作。这些操作系统可以包括内核——OS的中央模块,该内核将计算系统的硬件(例如,CPU、存储设备、输入-输出端口等)连接到在OS上执行的应用程序软件(例如,用户级应用程序)。在计算系统的操作期间,在某些情况下,应用程序软件可能利用过多的内存,导致内核释放通常为某些OS级进程保留的某部分内存。这可能导致计算系统变得迟钝,并且在极端情况下可能导致OS突然崩溃。
附图说明
当参考附图阅读以下详细描述时,将更好地理解本说明书的这些和其他特征、方面和优点,其中,在整个附图中,相同的附图标记表示相同的部分,在附图中:
图1描绘了根据示例的包括第一管理系统的系统;
图2描绘了根据另一示例的包括第一管理系统和第二管理系统的系统;
图3A是根据示例的描绘与第一管理系统相对应的测试阶段的内存分配和监测阶段的流程图;
图3B是根据示例的描绘与第一管理系统相对应的测试阶段的阈值确定阶段的流程图;
图4描绘了根据一个示例的示出可回收内存相对于已用内存的量的变化的图形表示;
图5描绘了根据一个示例的示出主缺页中断的数量相对于已用内存的量的变化的图形表示;
图6描绘了根据一个示例的示出可回收内存相对于可用内存的量的变化的图形表示;
图7描绘了根据一个示例的示出主缺页中断的数量相对于可用内存的量的变化的图形表示;
图8是根据一个示例的描绘用于操作第一管理系统的方法的流程图;
图9是根据另一示例的描绘用于操作第一管理系统的方法的流程图;
图10是根据另一示例的描绘用于启用第一管理系统的同步重启的方法的流程图;
图11是根据示例的描绘处理资源和机器可读介质的框图,该机器可读介质编码有用于确定第一管理系统的内存阈值的示例指令;以及
图12是根据示例的描绘处理资源和机器可读介质的框图,该机器可读介质编码有用于操作第一管理系统的示例指令。
需要强调的是,在附图中,各种特征未按比例绘制。事实上,在附图中,为了讨论清楚,各种特征的尺寸已被任意增大或减小。
具体实施方式
以下详细描述参考附图。在可能的情况下,相同的附图标记在附图中以及以下描述中用于指代相同或类似的部分。应清楚地理解,附图仅用于说明和描述的目的。尽管在本文档中描述了若干示例,但是修改、改编和其他实施方式是可能的。因此,以下详细描述不限制所公开的示例。相反,所公开示例的正确范围可以由所附权利要求定义。
本文中所使用的术语是出于描述特定示例的目的,而并非旨在限制。如本文中所使用的,除非上下文另外明确指出,否则单数形式“一个(a)”、“一种(an)”和“该”旨在也包括复数形式。如本文中所使用的术语“另一”被定义为至少是第二或更多。除非另有指示,否则如本文中所使用的术语“耦接”被定义为连接,无论是没有任何中间元件的直接连接还是具有至少一个中间元件的间接连接。例如,两个元件可以机械地、电气地耦接或通过通信信道、路径、网络或系统通信地链接。进一步地,如本文中所使用的术语“和/或”是指并涵盖相关联列举项目的任何和所有可能组合。还应当理解,尽管术语第一、第二等在本文中可以用于描述各种元件,但是这些元件不应受这些术语的限制,因为除非另有说明或上下文另有指示,否则这些术语仅用于将一个元件与另一元件区分开。如本文所使用的,术语“包括(includes)”是指包括(includes)但不限于,术语“包括(including)”是指包括(including)但不限于。术语“基于”是指“至少部分地基于”。
典型地,计算系统使用操作系统(OS)运行,该操作系统如但不限于Linux OS、Windows OS、MAC OS、android OS等。OS包括内核——OS的中央模块,该内核将计算系统的硬件(例如,CPU、存储设备、输入-输出端口等)连接到在OS上执行的应用程序软件(例如,用户级应用程序)。具体地,内核充当应用程序软件与硬件之间的接口并管理应用程序软件与硬件之间的通信。
在一些应用中,系统可以包括若干完整计算系统(例如,被实施为服务器刀片或模块的服务器),每个完整计算系统运行其自己的OS和存储设备(例如,被实施为存储刀片或模块的存储系统)。该系统还可以包括一个或多个管理系统,该一个或多个管理系统为该系统的完整计算系统和存储设备提供管理能力和某些带外服务。这些管理系统典型地包括如随机存取存储器(RAM)等易失性存储器以及如非易失性RAM(NVRAM)等非易失性存储器。另外,这种管理系统可以通过执行例如嵌入式Linux(eLinux)等轻量级或紧凑型OS来操作。有时,紧凑型OS可能不具备访问磁盘内存的能力,因为管理系统不需要物理存储磁盘来进行其操作。
典型地,在给定管理系统上执行的紧凑型OS的内核通过向在管理系统上运行的用户应用程序分配所需的内存来管理RAM。在给定管理系统上运行的这种用户应用程序可以包括管理完整计算系统和存储设备的带外服务的应用程序、管理给定系统内的任何其他备用管理系统之间的通信的应用程序、监测完整计算系统和存储设备的应用程序、管理与连接到给定系统的其他系统中的管理系统的通信的应用程序。
为了帮助将内存分配给在给定管理系统上运行的各种用户应用程序,内核维护RAM到已用内存、空闲内存和松预留内存的映射。已用内存可以被定义为RAM中已被在管理系统上运行的用户应用程序占用的空间。空闲内存可以指RAM中未被占用的空间,该空间不包括松预留内存。松预留内存可以包括缓存内存和缓冲区内存。缓冲区内存可以包括由内核缓冲区使用的内存。内核将对用户应用程序和/或OS经常引用的特定索引节点(例如,文件)的引用存储在缓存内存中。在一些示例中,缓存内存可以使用可以逐片分配的内存,其中,片可以表示一组一个或多个连续的内存页面。缓存内存可以包括可回收内存和不可回收内存。可回收内存可以指当内核的空闲内存不足时可以回收用于其他目的(如用户应用程序)的内存。不可回收内存可以指即使内核的空闲内存不足也无法分配给用户应用程序的内存。具体地,不可回收内存是为内核预留的。
在管理系统的操作期间,当没有足够的空闲内存来满足启动新用户应用程序的内存需求或已经运行的用户应用程序所需的任何附加内存时,内核可以开始释放松预留内存以满足内存需求。具体地,内核可以首先释放缓冲区内存,然后释放可回收内存。这指示内核正在释放其自己的缓存内存以保持管理系统运行。这可能会导致管理系统变得迟钝。在极端情况下,过度使用可回收内存可能会导致在管理系统上运行的OS崩溃。
应当理解,根据本公开的各方面,提出了一种系统,该系统包括第一管理系统。具体地,第一管理系统可以通过持续地监测内存使用量并将监测的内存使用量与相应的预定阈值进行比较来避免传统系统的上述挑战。为了实现这些结果,第一管理系统可以包括主存储器,该主存储器包括空闲内存、已用内存以及松预留内存,其中,松预留内存包括具有可回收内存的缓存内存。进一步地,第一管理系统可以包括耦接到主存储器的处理资源。处理资源可以在第一管理系统的运行时间期间监测已用内存的量和可用内存的量,其中,可用内存是对来自主存储器的可用于启动应用程序的内存量的估计。进一步地,如果已用内存的量大于内存耗尽第一阈值或者可用内存的量小于与内存耗尽第一阈值不同的内存耗尽第二阈值,则处理资源可以启用第一管理系统的同步重启。在一些示例中,内存耗尽第一阈值和内存耗尽第二阈值是基于可回收内存的使用量和主缺页中断的数量(稍后描述)确定的。
在一些示例中,第一管理系统的同步重启可以包括将存储在主存储器中的数据全部或部分备份到非易失性存储器中,然后重启第一管理系统。在某些示例中,在具有充当备用管理系统的冗余第二管理系统和充当活动管理系统的第一管理系统的系统中,第一管理系统的同步重启可以包括将第二管理系统的角色转换为活动管理系统,并将第一管理系统的角色转换为备用管理系统。进一步地,第一管理系统的同步重启还可以包括在第二管理系统的角色转换完成之后重启第一管理系统。
而且,在一些示例中,处理资源还可以确定已用内存的量是否大于已用内存衰减阈值或者可用内存的量是否小于可用内存衰减阈值。已用内存衰减阈值和可用内存衰减阈值分别表示可回收内存的量开始减少到低于某个阈值量时已用内存的量和可用内存的量。因此,通过将已用内存的量与已用内存衰减阈值进行比较或者通过将可用内存的量与可用内存衰减阈值进行比较,处理资源可以识别出可回收内存已开始减少。因此,处理资源可以生成某种警告,该警告可能有助于用户采取任何纠正性内存管理动作。另外,在一些示例中,处理资源可以将存储在主存储器中的数据备份到非易失性存储器中。
将已用内存的量和可用内存的量分别与内存耗尽第一阈值和内存耗尽第二阈值进行比较可以帮助确定主缺页中断的数量是否会急剧增加。一旦已用内存的量达到内存耗尽第一阈值或者可用内存的量达到内存耗尽第二阈值,处理资源就可以发起第一管理系统的同步重启。因此,可以将第一管理系统的OS突然崩溃的机会降到最低。
现在参考附图,在图1中,呈现了根据示例的系统100。在一些示例中,系统100可以是能够存储数据、处理数据、和/或通过网络与外部设备进行数据通信的任何电子设备。系统100的示例可以包括但不限于服务器、存储设备、网络交换机、路由器、移动通信设备、台式计算机、便携式计算机、计算系统资源机箱、以及包括一个或多个服务器和/或一个或多个存储设备的可组合计算系统。例如,服务器可以是刀片服务器。例如,存储设备可以是存储刀片。进一步地,在一些示例中,计算系统机箱可以是容纳一个或多个刀片(例如,刀片服务器、存储刀片等)的刀片机箱。
如图1中描绘的,在一些示例中,系统100可以包括第一管理系统102。第一管理系统102可以为系统100和安装在系统100内的任何服务器刀片和存储刀片(未示出)实施各种可访问性服务。可以使用与安装在系统100内的服务器刀片和存储刀片的处理资源分开的处理资源来实施第一管理系统102。在一些示例中,第一管理系统102可以允许用户(如系统管理员)对系统100执行管理操作,而不管服务器刀片和存储刀片是否可操作。第一管理系统102还可以具有针对系统100的子系统(例如,冷却系统)的管理能力。而且,在某些示例中,第一管理系统102可以提供所谓的“带外(out-of-band)”(OOB)服务,如远程控制台访问、远程重启和电源管理功能、监测系统100的健康状况、访问系统日志等。如本文所使用的术语OOB服务可以指由第一管理系统102提供的任何服务,该服务的执行不会干扰在安装在系统100中的存储刀片和/或服务器刀片上运行的指令或工作负载。第一管理系统102可以包括用于实现与第一管理系统102通信的接口(也被称为管理信道),如网络接口和/或串行接口。
第一管理系统102可以包括主存储器104、处理资源106以及非易失性存储器108。处理资源106可以是物理设备,例如,一个或多个中央处理单元(CPU)、一个或多个基于半导体的微处理器(单核或多核)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、能够取得并执行指令的其他硬件设备或其组合。处理资源106可以提取、解码并执行指令以在低内存情况下启用第一管理系统102的同步重启。作为执行指令的替代或补充方案,处理资源106可以包括至少一个集成电路(IC)、控制逻辑、电子电路或其包括用于执行旨在由第一管理系统102通过执行操作系统(OS)105来执行的功能的多个电子部件的组合。
在一些示例中,OS 105可以是紧凑型、轻量级、和/或嵌入式OS。在一些示例中,紧凑型、轻量级、和/或嵌入式OS可以被设计成执行特定任务集并且不需要管理磁盘存储。OS105的一个示例可以是嵌入式Linux OS。处理资源106可以通过执行存储在非易失性存储器108中的相应指令来运行OS 105,这些指令被提取到主存储器104中。OS 105还可以包括内核(未示出)。OS 105的内核将第一管理系统102的硬件(例如,处理资源106、主存储器104、非易失性存储器108、输入-输出端口(未示出)等)连接到在OS 105上执行的应用程序软件(例如,用户应用程序)。具体地,OS 105的内核通过充当应用程序软件与硬件之间的接口来管理应用程序软件与硬件之间的通信。在一些示例中,OS 105的内核可以占用主存储器104中的某些存储空间(例如,松预留内存以及已用内存(稍后描述)的至少某个部分)。可以在第一管理系统102上执行的用户应用程序可以包括:为服务器刀片和/或存储刀片管理带外服务的应用程序;管理系统100内的任何其他备用管理系统(如果有)(图1中未示出)之间的通信的应用程序;监测服务器刀片和/或存储刀片的应用程序;和/或管理与连接到系统100的其他系统(图1中未示出)的管理系统的通信的应用程序。
主存储器104和非易失性存储器108两者都是非暂态的。在一些示例中,主存储器104可以是如随机存取存储器(RAM)等电子存储器。进一步地,在一些示例中,非易失性存储器108可以是如电可擦除可编程只读存储器(EEPROM)、闪速存储器或非易失性RAM等电子存储器。在一些示例中,非易失性存储器108可以编码有可执行指令。这些指令可以包括作为操作系统105的一部分(稍后描述)的指令和使处理资源106执行一种或多种方法(例如,图3和图8至图10中描述的方法)的指令。在第一管理系统102的操作期间,这些指令从非易失性存储器108加载到主存储器104中以供处理资源106执行。附图标记110可以表示由处理资源106形成的虚拟化内存(以下称为虚拟内存110),该虚拟化内存可以包括指向从非易失性存储器108加载到主存储器104中的指令112和数据114的指针。
在一些示例中,主存储器104的内存空间可以被分类为已用内存116、空闲内存118以及松预留内存120。已用内存116可以被定义为主存储器104中已被在第一管理系统102上运行的用户应用程序占用的空间。空闲内存118可以指主存储器104中未被占用的空间,该空间不包括松预留内存120。松预留内存120可以包括缓冲区内存(BM)122和缓存内存124。缓冲区内存122可以包括由内核缓冲区使用的内存。内核将对用户应用程序和OS 105经常引用的特定索引节点(例如,文件)的引用存储在缓存内存124中。在一些示例中,缓存内存124可以使用可以逐片分配的内存,其中,片可以表示一组一个或多个连续的内存页面。
缓存内存124可以包括可回收内存(RM)126和不可回收内存(NRM)128。可回收内存126可以指当内核的空闲内存118不足时可以回收用于其他目的(如用户应用程序)的内存。不可回收内存128可以指即使内核的空闲内存不足也无法分配给用户应用程序的内存。具体地,不可回收内存128是为内核预留的。在一些实施方式中,除了缓冲区内存122和缓存内存124之外,松预留内存120还可以包括某些附加的内存区域,而不限制本公开的范围。进一步地,在某些实施方式中,除了可回收内存126和不可回收内存128之外,缓存内存124还可以包括某些附加的内存区域,而不限制本公开的范围。
除了主存储器104的上述分类之外,OS 105的内核还可以跟踪主存储器104内的可用内存。考虑到内核能够在需要时释放松预留内存120的一部分的事实,可用内存可以表示对可用于启动新用户应用程序的内存量的估计。例如,在第一管理系统102的操作期间,如果主存储器104耗尽空闲内存118,则内核可以释放缓冲区内存122的至少一部分,然后释放可回收内存126。在对可用内存的估计中还考虑松预留内存120的可由内核释放的这部分。因此,在任何给定时间,可用内存的量可以高于空闲内存118的量。
如上文简要地提及,在第一管理系统102的操作期间,随着用户应用程序被执行和/或当(多个)新用户应用程序被发起时,越来越多量的空闲内存118被占用,导致已用内存116的量增加。在某些情况下,如果已用内存116的量增加超过某个值,则第一管理系统102可能经历低内存情况。在这种低内存情况下,操作系统105的内核可以开始释放其自己的内存(例如,松预留内存120)以满足内存需求。具体地,内核可以首先释放缓冲区内存122,然后释放可回收内存126。
在传统的管理系统中,当已用内存的量增加并且没有足够的空闲内存来满足新用户应用程序所需的内存或已经运行的用户应用程序所需的任何附加内存时,内核可以开始释放其自己的缓存内存以保持传统的管理系统运行。这可能会导致传统的管理系统变得迟钝。在极端情况下,如果用户应用程序需要太多附加的内存,则过度使用可回收内存可能会导致在传统的管理系统上运行的OS崩溃。
在某些情况下,造成传统管理系统的这种迟钝和崩溃的一个可能原因是,在操作期间,由于已用内存的量的增加和/或可用内存的量的减少,主缺页中断的数量呈指数增加。典型地,缺页中断可以指当在虚拟内存中找不到由用户应用程序和/或操作系统请求的一个或多个页面(包含指令和/或数据)从而导致将该一个或多个页面从主存储器提取到虚拟内存中时内核引发的事件或异常。另一方面,术语主缺页中断可以被定义为当在虚拟内存中以及在主存储器中都找不到由用户应用程序和/或操作系统请求的一个或多个页面(包含指令和/或数据)时内核引发的事件或异常。当这种事件发生时,可能需要从与主存储器分开的非易失性存储器中取得(多个)所请求的页面。
而且,由于嵌入式OS不具有与存储磁盘交换的能力,因此可能需要将所有请求的页面从非易失性存储器复制到主存储器,而无需从主存储器中删除与用户应用程序有关的某些页面。由于内核无法换出已被分配给用户应用程序的页面,因此内核最终可能会换入和换出要执行的代码段。因此,可能发生的情况是空闲内存可能耗尽,已用内存已满,但是内核可能会尝试从非易失性存储器中换入和换出必须执行的代码段(例如,与OS 105相关的编程指令)。而且,这种主缺页中断可能会导致主存储器的利用率增加。因此,可用内存的量可能会急剧减少,而已用内存的量可能迅速增加。随着已用内存的量的增加,主缺页中断的数量也可能呈指数增加,这进而可能会减慢管理系统的速度并导致操作系统崩溃。
根据本公开的各方面,第一管理系统102的处理资源106可以在第一管理系统102的运行时间期间监测主存储器104,以便避免传统系统的上述缺点并启用第一管理系统102的同步重启。术语运行时间可以指当第一管理系统102正在系统100的实时现场应用程序中运行时第一管理系统102的操作。在一些示例中,在第一管理系统102的运行时间期间,处理资源106可以监测已用内存116的量和可用内存的量。进一步地,处理资源106可以确定已用内存116的量是否大于内存耗尽第一阈值(METH1)或者可用内存的量是否小于内存耗尽第二阈值(METH2)。内存耗尽第二阈值(METH2)不同于内存耗尽第一阈值(METH1)。
在一些示例中,内存耗尽第一阈值(METH1)和内存耗尽第二阈值(METH2)由处理资源106在第一管理系统102的测试阶段期间基于在第一管理系统102的测试阶段期间的可回收内存126的使用量和主缺页中断的数量来确定。在某些其他示例中,处理资源106在测试阶段期间还可以确定附加阈值,如用作指示可回收内存126开始耗尽的警告阈值的已用内存衰减阈值(UMDTH)和可用内存衰减阈值(AMDTH)。术语“测试阶段”可以指第一管理系统102的操作,在该操作期间,处理资源106确定各种内存阈值,如已用内存衰减阈值(UMDTH)、可用内存衰减阈值(AMDTH)、内存耗尽第一阈值(METH1)和内存耗尽第二阈值(METH2)。测试阶段可以包括结合图3A和图4至图7更详细地描述的内存分配和监测阶段。进一步地,测试阶段可以包括结合图3B和图4至图7更详细地描述的阈值确定阶段。
进一步地,处理资源106可以响应于确定已用内存的量大于内存耗尽第一阈值(METH1)或者可用内存的量小于内存耗尽第二阈值(METH2)而启用第一管理系统102的同步重启。在一个示例中,第一管理系统102的同步重启可以包括将存储在主存储器104中的数据全部或部分备份到非易失性存储器108中,然后重启第一管理系统102。关于第一管理系统102的同步重启的附加细节结合图8至图10中描述的方法来描述。
图2描绘了根据另一示例的系统200。系统200可以表示图1的系统100的一个示例。系统200的示例可以包括但不限于服务器、存储设备、网络交换机、路由器、移动通信设备、台式计算机、便携式计算机、计算系统资源机箱、以及包括一个或多个服务器和/或一个或多个存储设备的可组合计算系统。例如,服务器可以是刀片服务器。例如,存储设备可以是存储刀片。进一步地,在一些示例中,计算系统机箱可以是容纳一个或多个刀片(例如,刀片服务器、存储刀片等)的刀片机箱。进一步地,系统200可以包括与图1中描述的部件类似的某些部件,这些部件在本文中不再重复描述。例如,系统200包括已经在图1中描述的第一管理系统102。另外,系统200可以包括第二管理系统202和电子设备204、206、和208(以下统称为电子设备204至208)。第二管理系统202可以表示第一管理系统102的一个示例并且包括与第一管理系统102中包括的部件类似的部件。进一步地,在一些示例中,电子设备204至208可以包括服务器刀片、存储刀片、网络交换机、路由器等。
在一些示例中,在系统200中,在任何给定时间,第一管理系统102或第二管理系统202中的一个管理系统可以作为活动管理系统操作,而另一管理系统可以作为备用管理系统操作。在下文的描述中,第一管理系统102被图示为活动管理系统,而第二管理系统202被图示为备用管理系统。第一管理系统102和第二管理系统202两者都能够与电子设备204至208进行通信并为电子设备204至208提供管理服务。然而,在任何给定时间,只有活动管理系统可以具有与电子设备204至208的活动通信链接。第一管理系统的在图1中描述的某些细节在本文中不再重复描述。
在第一管理系统102的运行时间期间,处理资源106可以监测已用内存116的量和可用内存的量。进一步地,处理资源106可以确定已用内存116的量是否大于已用内存衰减阈值(UMDTH)或者可用内存的量是否小于可用内存衰减阈值(AMDTH)。如果确定已用内存116的量大于已用内存衰减阈值(UMDTH)或者可用内存的量小于可用内存衰减阈值(AMDTH),则处理资源106可以将存储在主存储器104中的数据与非易失性存储器108同步。在一些示例中,这种数据同步可以包括将某些日志文件备份到或将存储在主存储器104中的所有数据备份到非易失性存储器108中。事实上,已用内存116的量大于已用内存衰减阈值(UMDTH)或者可用内存的量小于可用内存衰减阈值(AMDTH)的情况指示以下事实:OS 105的内核已经开始释放可回收内存126,并且如果可回收内存126的使用超过一定限度,则第一管理系统102可能重启。因此,通过监测已用内存116的量和可用内存的量来检测可回收内存126的这种耗尽的开始可以通过在非易失性存储器108中为存储在主存储器104中的数据创建备份来帮助主动地完全或部分地保护该数据。
处理资源106可以在运行时间期间继续监测已用内存116的量和可用内存的量。进一步地,处理资源106可以确定已用内存116的量是否大于内存耗尽第一阈值(METH1)或者可用内存的量是否小于内存耗尽第二阈值(METH2)。在一些示例中,已用内存116的量大于内存耗尽第一阈值(METH1)或者可用内存的量小于内存耗尽第二阈值(METH2)的情况可以指示以下事实:可回收内存126已经下降并且来自主存储器104的任何过度内存分配可能导致OS105崩溃。
在任何时间点,如果处理资源106确定已用内存116的量大于内存耗尽第一阈值(METH1)或者可用内存的量小于内存耗尽第二阈值(METH2),则处理资源106可以启用第一管理系统102的同步重启。为了实现当前正作为活动管理系统操作的第一管理系统102的这种同步重启,处理资源106可以首先发起第二管理系统202从备用管理系统到活动管理系统的角色转换。一旦第二管理系统202变为活动管理系统,处理资源106就可以重启第一管理系统102。
然而,在一些示例中,如果第一管理系统102作为备用管理系统操作,而第二管理系统202作为活动管理系统操作,并且确定已用内存的量大于内存耗尽第一阈值(METH1)或者可用内存的量小于内存耗尽第二阈值(METH2),则处理资源106可以向第二管理系统202通知第一管理系统102即将重启。在通知第二管理系统202之后,处理资源106可以重启第一管理系统102。结合图10描述启用同步重启的方法。
应当理解,处理资源106可以在低内存情况下(例如,当已用内存116的量大于内存耗尽第一阈值(METH1)或者可用内存的量小于内存耗尽第二阈值(METH2)时)启用第一管理系统102的同步重启。这至少部分是由于对主存储器104的监测、具体是对已用内存116和可用内存的监测以及将已用内存116的量和可用内存的量与相应阈值进行比较而实现的。具体地,将已用内存116的量和可用内存的量分别与已用内存衰减阈值(UMDTH)和可用内存衰减阈值(AMDTH)进行比较可以帮助确定可回收内存126耗尽的开始。对可回收内存126耗尽的开始的这种确定可以帮助生成某些警告消息,使得如果用户希望执行用于降低内存消耗的任何内存管理操作,则用户可以这样做。而且,当确定已用内存116的量大于已用内存衰减阈值(UMDTH)或者可用内存的量小于可用内存衰减阈值(AMDTH)时,处理资源106可以主动地开始将存储在主存储器104中的数据备份到非易失性存储器108中。
而且,将已用内存116的量和可用内存的量分别与内存耗尽第一阈值(METH1)和内存耗尽第二阈值(METH2)进行比较可以帮助确定主缺页中断的数量是否会急剧增加。一旦已用内存116的量达到内存耗尽第一阈值(METH1)或者可用内存的量达到内存耗尽第二阈值(METH2),处理资源106就可以发起第一管理系统102的同步重启。因此,可以将第一管理系统102的OS 105突然崩溃的机会降到最低。
进一步地,第一管理系统102的同步重启可以帮助切换第二管理系统202的角色,作为活动管理系统操作的第一管理系统102经历低内存情况。在这种情况下,第二管理系统202的角色可以转换为活动管理系统。有利地,当第一管理系统102经历重启时,第二管理系统202开始执行第一管理系统102曾经执行的操作。因此,系统200的性能不会由于第一管理系统102遇到的低内存情况而受到影响。
图3A和图3B分别描绘了根据示例的共同定义第一管理系统102的测试阶段的方法300A和300B的流程图。通过示例的方式,方法300A图示了根据示例的测试阶段的内存分配和监测阶段。进一步地,方法300B图示了测试阶段的阈值确定阶段,其中可以确定用于已用内存116和可用内存的各种阈值。在一些示例中,方法300B可以与方法300A同时执行。在某些其他示例中,可以在执行方法300A之后执行方法300B。出于说明的目的,将结合图1和图2来描述方法300A和300B。
现在参考图3A,方法300A可以包括可以由基于处理器的系统(例如,第一管理系统102)执行的方法框302、304、306、308和310(以下统称为框302至310)。具体地,在方法框302至310中的每个框处的操作可以由第一管理系统102的处理资源106来执行。
在框302处,处理资源106可以从主存储器104向测试进程分配内存。例如,处理资源106可以在框302处向测试进程分配第一量的内存。测试进程可以是虚设进程,该虚设进程可以通过执行虚设指令来消耗来自主存储器104的所分配内存。进一步地,在框304处,处理资源106可以在测试进程利用主存储器104时监测和记载/记录可回收内存126的量、已用内存116的量、可用内存的量以及主缺页中断的数量。为了在框304处实现这种监测,处理资源106可以执行指令,这些指令在执行时使处理资源106命令OS 105的内核在测试进程利用主存储器104时提供可回收内存126的量、已用内存116的量、可用内存的量以及主缺页中断的数量。在某些其他示例中,处理资源106可以执行预定义应用编程接口(API),该API可以从OS 105的内核获得这种信息。处理资源106可以将这种监测到的量存储/记载在非易失性存储器108中。
进一步地,在一些示例中,在框306处,处理资源106可以执行检查以确定是否满足监测终止标准。在一个示例中,监测终止标准可以包括已用内存116的量等于或大于已用内存测试阈值。例如,可以将已用内存测试阈值设定为接近主存储器104的总内存大小的约90%的值。在另一示例中,监测终止标准可以包括可用内存的量等于或小于可用内存测试阈值。例如,可以将可用内存测试阈值设定为接近主存储器104的总内存大小的约10%的值。在又一示例中,监测终止标准可以包括主缺页中断的数量增加到超过某个值(例如主缺页中断阈值(稍后描述))。因此,在框306处,如果不满足监测终止标准,则在框308处,处理资源106可以进一步向测试进程分配附加的内存并在框304处继续执行监测。然而,在框306处,如果满足监测终止标准,则在框310处,可以终止内存分配和监测阶段(例如,方法300A)。在某些情况下,如果OS 105由于低内存状况而崩溃,则内存分配和监测阶段(例如,方法300A)也可以终止,并且可以将在框304处监测到的数据保存在非易失性存储器108中以供处理资源106稍后使用。
一旦方法300A被执行,就将关于可回收内存126的量、已用内存116的量、可用内存的量以及主缺页中断的数量的数据存储在非易失性存储器108中。下面描述的表-1表示当测试进程利用主存储器104时由处理资源106在各个时间实例存储的示例数据。
Figure BDA0003314129320000121
表-1:在内存分配和监测阶段期间记载的示例数据
为了便于说明,以在图4至图7中描绘的各种图形表示示出在测试阶段的内存分配和监测阶段期间收集的这种数据。在进入在图3B中描述的阈值确定阶段之前,在本文中简要地描述图4至图7。现在参考图4,描绘了根据一个示例的示出可回收内存126的量相对于已用内存116的量的变化的图形表示400。在图形表示400中,X轴402表示已用内存116的量(以KiB为单位),而Y轴404表示可回收内存126的量(以KiB为单位)。进一步地,线406表示在内存分配和监测阶段期间观察到的、可回收内存126的量相对于已用内存116的量的变化。如图4的图形表示400中所描绘的,当已用内存116的量为约72000KiB时,可回收内存126的量开始减少。
进一步地,图5描绘了根据一个示例的示出主缺页中断相对于已用内存116的量的变化的图形表示500。在图形表示500中,X轴502表示已用内存116的量(以KiB为单位),而Y轴504表示主缺页中断。进一步地,线406表示在内存分配和监测阶段期间观察到的、主缺页中断的数量相对于已用内存116的量的变化。如图5的图形表示500中所描绘的,当已用内存116的量为约82000KiB时,主缺页中断的数量开始上升。
而且,图6描绘了根据一个示例的示出可回收内存126的量相对于可用内存的量的变化的图形表示600。在图形表示600中,X轴602表示可用内存的量(以KiB为单位),而Y轴604表示可回收内存126的量(以KiB为单位)。进一步地,线606表示在内存分配和监测阶段期间观察到的、可回收内存126的量相对于可用内存的量的变化。如图6的图形表示600中所描绘的,当可用内存的量减少到约190000KiB时,可回收内存126的量开始减少。
而且,图7描绘了根据一个示例的示出主缺页中断相对于可用内存的量的变化的图形表示700。在图形表示700中,X轴702表示可用内存的量(以KiB为单位),而Y轴704表示主缺页中断。进一步地,线706表示在内存分配和监测阶段期间观察到的、主缺页中断的数量相对于可用内存的量的变化。如图7的图形表示700中所描绘的,当可用内存的量减少到约50000KiB时,主缺页中断的数量开始上升。
现在参考图3B,根据一个示例,测试阶段的阈值确定阶段。方法300B可以包括可以由基于处理器的系统(例如,第一管理系统102)执行的方法框312、314、316和318(以下统称为框312至318)。具体地,在方法框312至318中的每个框处的操作可以由第一管理系统102的处理资源106来执行。
在框312处,处理资源106可以将已用内存衰减阈值(UMDTH)确定为可回收内存126的量开始减少到低于预定义阈值(RMTH)时已用内存116的量。预定义阈值(RMTH)可以定义可回收内存126的量下降的开始。再次参考图4,例如,预定义阈值(RMTH)可以为约10700KiB。在图4的示例中,观察到当已用内存116的量为约72000KiB时,可回收内存126的量开始减少到低于预定义阈值(RMTH)。因此,在一个示例中,已用内存衰减阈值(UMDTH)可以被设定为72000KiB。
返回图3B,在框314处,处理资源106可以基于已用内存衰减阈值(UMDTH)以及主缺页中断的数量开始上升到高于主缺页中断阈值(MPFTH)时已用内存116的量来确定内存耗尽第一阈值(METH1)。参考图5的示例,可以观察到,一旦已用内存116的量达到某个值(以下称为已用内存缺页中断影响值(UMPFimpact)),主缺页中断的数量就开始呈指数增加。例如,如图5中所描绘的,当已用内存116的量增加到超过约82000KiB时,主缺页中断的数量开始呈指数上升。在一些示例中,已用内存耗尽第一阈值(METH1)可以高于已用内存衰减阈值(UMDTH)并且是使用以下等式(1)来确定的。
Figure BDA0003314129320000141
在一个示例中,考虑到可用内存缺页中断影响值(UMPFimpact)为82000KiB,可以使用等式(1)将内存耗尽第一阈值(METH1)确定为77000KiB。可以注意到,上文提出的等式(1)表示用于说明目的的示例计算,并且不应被解释为限制本公开的范围。
而且,在框316处,处理资源106可以将可用内存衰减阈值(AMDTH)确定为可回收内存126的量开始减少到低于预定义阈值(RMTH)时可用内存的量。在图6中呈现的示例图形表示600中,观察到当可用内存的量为约190000KiB时,可回收内存126的量开始减少到低于预定义阈值(RMTH)。因此,在一个示例中,可用内存衰减阈值(AMDTH)可以被设定为190000KiB。
而且,在框318处,处理资源106可以基于可用内存衰减阈值以及主缺页中断的数量开始上升到高于主缺页中断阈值(MPFTH)时可用内存的量来确定内存耗尽第二阈值(METH2)。在图7中呈现的示例图形表示700中,可以观察到,一旦可用内存的量达到某个值(以下称为可用内存缺页中断影响值(AMPFimpact)),主缺页中断的数量就开始呈指数增加。例如,如图7中所描绘的,当可用内存的量降低到低于约50000KiB时,主缺页中断的数量开始呈指数上升。在一些示例中,内存耗尽第二阈值(METH2)可以高于可用内存衰减阈值(AMDTH),并且是使用以下等式(2)来确定的。
Figure BDA0003314129320000142
在一个示例中,考虑到可用内存缺页中断影响值(AMPFimpact)为50000KiB,可以将可用内存耗尽第一阈值(METH1)确定为120000KiB。可以注意到,上文提出的等式(2)表示用于说明目的的示例计算,并且不应被解释为限制本公开的范围。
现在转向图8,呈现了根据一个示例的描绘用于操作如第一管理系统102等管理系统的方法800的流程图。出于说明的目的,将结合图1和图2的第一管理系统102来描述方法800。方法800可以包括可以由基于处理器的系统(例如,第一管理系统102)在其运行时间期间执行的方法框802、804、806和808(以下统称为框802至808)。具体地,在方法框802至808中的每个框处的操作可以由第一管理系统102的处理资源106来执行。
在框802处,处理资源106可以在第一管理系统102的运行时间期间监测已用内存116的量和可用内存的量。如前所述,可用内存是对主存储器104中可用于启动新应用程序的内存量的估计。为了在框802处实现这种监测,处理资源106可以执行指令,这些指令在执行时命令OS 105的内核在运行时间期间提供已用内存116的量和可用内存的量。在某些其他示例中,处理资源106可以执行预定义应用编程接口(API),该API可以从OS 105的内核获得这种信息。
进一步地,在框804处,处理资源106可以执行检查以确定已用内存116的量是否大于内存耗尽第一阈值(METH1)。具体地,在框804处,处理资源106可以将在框802处监测到的已用内存116的量与内存耗尽第一阈值(METH1)进行比较,以确定已用内存116的量是否大于内存耗尽第一阈值(METH1)。在框804处,如果确定已用内存116的量大于内存耗尽第一阈值(METH1),则处理资源106可以执行框808处的操作(稍后描述)。然而,在框804处,如果确定已用内存116的量不大于内存耗尽第一阈值(METH1),则处理资源106可以执行框806处的另一检查。
在框806处,处理资源106可以执行检查以确定可用内存的量是否小于内存耗尽第二阈值(METH2)。具体地,在框806处,处理资源106可以将在框802处监测到的可用内存的量与内存耗尽第二阈值(METH2)进行比较,以确定可用内存的量是否小于内存耗尽第二阈值(METH2)。在框806处,如果确定可用内存的量大于或等于内存耗尽第二阈值(METH2),则处理资源106可以在框802处再次继续监测已用内存116的量和可用内存的量。
然而,在框806处,如果确定可用内存的量小于内存耗尽第二阈值(METH2),则在框808处,处理资源106可以启用第一管理系统102的同步重启。启用第一管理系统102的同步重启的详细方法步骤在图10中进行描述(稍后描述)。在方法800中,尽管框806被示为在执行图8中的框804处的方法之后被执行,但是在一些示例中,框804和806处的方法可以并行执行。在某些其他示例中,框804和806的顺序可以颠倒。
现在参考图9,呈现了根据另一示例的描绘用于操作第一管理系统102的方法900的流程图。方法900可以表示图8的方法800的一个示例,并且包括与图8中描述的框类似的某些框,这些框在本文中不再重复描述。出于说明的目的,将结合图1和图2的第一管理系统102来描述方法900。方法900可以包括可以由基于处理器的系统(例如,第一管理系统102)执行的方法框902、904、906、908、910、912、914、916、918和920(下文统称为框902至920)。具体地,在方法框902至920中的每个框处的操作可以由第一管理系统102的处理资源106在该第一管理系统的运行时间期间执行。
在框902处,处理资源106可以在第一管理系统102的运行时间期间以与参考图8的框802描述的方式类似的方式监测已用内存116的量和可用内存的量。进一步地,在框904处,处理资源106可以执行检查以确定已用内存116的量是否大于已用内存衰减阈值(UMDTH)。具体地,在框904处,处理资源106可以将在框902处监测到的已用内存116的量与已用内存衰减阈值(UMDTH)进行比较,以确定已用内存116的量是否大于已用内存衰减阈值(UMDTH)。在框904处,如果确定已用内存116的量大于已用内存衰减阈值(UMDTH),则处理资源106可以执行框908处的方法(稍后描述)。然而,在框904处,如果确定已用内存116的量不大于已用内存衰减阈值(UMDTH),则处理资源106可以执行框906处的另一检查。
在框906处,处理资源106可以执行检查以确定可用内存的量是否小于可用内存衰减阈值(AMDTH)。具体地,在框906处,处理资源106可以将在框902处监测到的可用内存的量与可用内存衰减阈值(AMDTH)进行比较,以确定可用内存的量是否小于可用内存衰减阈值(AMDTH)。尽管框906处的操作被示为在执行框904处的操作之后被执行,但是在一些其他示例中,框904和906处的操作可以并行执行。在某些其他示例中,框904和906的执行顺序可以颠倒。
在框906处,如果确定可用内存的量大于或等于可用内存衰减阈值(AMDTH),则处理资源106可以在框902处继续监测已用内存116的量和可用内存的量。然而,在框906处,如果确定可用内存的量小于内存耗尽第二阈值(METH2),则在框908处,处理资源106可以将存储在主存储器104中的数据与非易失性存储器108同步。在一些示例中,由处理资源106执行的这种同步可以包括将主存储器104的所有内容存储到非易失性存储器108中。
当处理资源106第一次检测到已用内存116的量大于已用内存衰减阈值(UMDTH)或者可用内存的量小于可用内存衰减阈值(AMDTH)时,处理资源106可以将某些日志或在一些示例中将主存储器104的全部内容转储到非易失性存储器108中作为主存储器备份。对于已用内存116的量大于已用内存衰减阈值(UMDTH)或者可用内存的量小于可用内存衰减阈值(AMDTH)的未来实例,处理资源106可以递增地更新存储在非易失性存储器108中的主存储器备份,使得主存储器备份与主存储器104保持同步。
而且,可选地,在一些示例中,在框910处,处理资源106可以确定主存储器104将被耗尽的剩余时间(TR)。在一个示例中,主存储器104将被耗尽的剩余时间可以指在第一管理系统102的运行时间期间已用内存116达到内存耗尽第一阈值(METH1)的时间长度。在一些示例中,如下所述,可以基于在运行时间期间已用内存116的量的变化速率来确定剩余时间(TR)。在一个示例中,为了确定剩余时间(TR),处理资源106可以每天在若干间隔记载已用内存的量。下面呈现的表-2表示六天内已用内存116的量的示例日志。
Figure BDA0003314129320000171
表-2:已用内存的量的示例日志
另外,在一些示例中,处理资源106还可以记载与前一天相比具有更高量的已用内存116的任意一天的所有最新高点以及当达到高点时在第一管理系统102上运行的进程的数量。例如,下面呈现的表-3示出了已用内存116的每日高点以及当达到相应高点时在第一管理系统102上运行的进程的数量、以及一个进程的平均内存利用率。具体地,表-3表示与同前一天相比显示出已用内存116的量增加的日子(例如,第0天、第1天、第2天和第5天)相对应的数据。
Figure BDA0003314129320000181
表-3:与显示出已用内存的利用率增加的日子相对应的示例数据日志
从表-3中观察到,不仅示出了从第0天至第5天进程数量的增加,而且每个进程占用的已用内存116的平均量也增加。每个进程占用的已用内存116的平均量的这种增加也可以指示总体内存使用量正在增加。在一些示例中,对于给定的日子,处理资源106可以基于已用内存116的量的增加速率来确定已用内存116的量达到内存耗尽第一阈值(METH1)的时间长度。可以使用观察到已用内存116的量增加的前几天的峰值利用率来确定给定的第X天的已用内存116的量的变化速率(RATEX)(例如,增加速率)。例如,基于表-3的数据,可以将第2天的已用内存116的量的增加速率(即,RATEDAY2)确定为344164-340364=3800KiB/天。类似地,可以将第6天的已用内存116的量的增加速率(即,RATEDAY6)确定为(344164-340364)/(5-2)=7521KiB/天。
在一些示例中,处理资源106可以使用以下等式(3)来确定主存储器104将被耗尽的剩余时间(TR)(例如,已用内存达到内存耗尽第一阈值(METH1)的时间长度)。
Figure BDA0003314129320000182
其中,UMLatest Peak可以表示在第X天之前观察到的已用内存量的最新峰值,并且METH1=77000。例如,对于UMLatest Peak为344164KiB且RATEDAY2为3800KiB/天的第2天,剩余时间(TR)可以被确定为((77000+344164)/3800)=70.3天。类似地,在UMLatest Peak为368856KiB且RATEDAY6为7521KiB/天的第6天,剩余时间(TR)可以被确定为((77000+368856)/7521)=38.8天。
而且,可选地,在一些示例中,在框912处,处理资源106可以发出警告,该警告指示主存储器104已经开始耗尽内存并且用户可能想要采取任何合适的动作(例如,终止某些低优先级用户应用程序)以便可以释放一定量的内存。在一些示例中,在框912处发出的警告还可以包括关于剩余时间(TR)的信息,以向用户提供关于已用内存116还剩多少时间达到内存耗尽第一阈值(METH1)的想法。可以经由一种或多种消息传递技术向系统200(或系统100)的用户发出警告,这些消息传递技术包括但不限于经由如SMS、MMS和/或电子邮件等文本消息、经由音频、视频、或视听警报等在与系统100、200相关联的显示器上显示警告消息。在某些情况下,如果由于释放任何已用内存116而不存在导致创建主存储器备份的条件,则处理资源106可以从非易失性存储器108中擦除主存储器备份,由此高效地管理非易失性存储器108中的存储空间。
在一些示例中,图9的框914、916、918和920处的操作分别类似于图8的方法800的框802、804、806和808处的操作,这些操作在本文中不再重复描述。
图10是根据另一示例的描绘用于启用第一管理系统102的同步重启的方法1000的流程图。具体地,方法1000可以表示用于执行旨在在图8的框808处或图9的框920处执行的操作的示例方法。出于说明的目的,将结合图2的系统200来描述方法1000。方法1000可以包括可以由基于处理器的系统(例如,第一管理系统102)执行的方法框1002、1004、1006、1008和1010(以下统称为框1002至1010)。具体地,在方法框1002至1010中的每个框处的操作可以由第一管理系统102的处理资源106来执行。
在框1002处,处理资源106可以确定第一管理系统102是活动管理系统还是备用管理系统。在一些示例中,第一管理系统102可以将指示第一管理系统102作为活动管理系统或备用管理系统的角色的角色信息(例如,标志)存储在主存储器104和/或非易失性存储器108的预定义内存区域中。处理资源106可以验证这种角色信息以确认第一管理系统102是活动管理系统还是备用管理系统。在框1002处,如果确定第一管理系统102是活动管理系统,则处理资源106在框1004处可以发起第二管理系统202的角色转换。
在一些示例中,为了实现这种角色转换,第一管理系统102(其当前是活动管理系统)的处理资源106可以向第二管理系统202(其当前是备用管理系统)发送请求第二管理系统202成为活动管理系统的角色转换命令。在从第一管理系统102接收到这种命令时,第二管理系统202可以将其角色转换为活动管理系统。为了实现这种转换,第二管理系统202可以更新相应的角色信息(例如,标志)以指示第二管理系统202的角色转换为活动管理系统。此外,在一些示例中,第一管理系统102也可以更新相应的角色信息(例如,标志)以指示其角色从活动管理系统转换为备用管理系统。进一步地,在框806处,处理资源106可以在第二管理系统202的角色转换完成之后(即,在第二管理系统202成为活动管理系统之后)重启第一管理系统102。
在框1002处,如果确定第一管理系统102不是活动管理系统(例如,第一管理系统102是备用管理系统),则处理资源106在框1008处可以向第二管理系统202通知第一管理系统即将重启。此外,在框1010处,处理资源106可以在通知第二管理系统202之后重启第一管理系统102。
现在转向图11,呈现了根据示例的描绘处理资源1102和机器可读介质1104的框图1100,该机器可读介质编码有用于确定第一管理系统102的各种内存阈值的示例指令。机器可读介质1104可以是非暂态的,并且替代性地被称为非暂态机器可读介质1104。在一些示例中,机器可读介质1104可以由处理资源1102访问。在一些示例中,处理资源1102可以表示第一管理系统102的处理资源106的一个示例。进一步地,机器可读介质1104可以表示主存储器104或非易失性存储器108的一个示例。
机器可读介质1104可以分别编码有用于执行图3A和图3B中描述的方法300A和300B的可执行指令1106、1108、1110、1112、1114和1116(以下统称为指令1106至1116)。处理资源1102可以是物理设备,例如,一个或多个CPU、一个或多个基于半导体的微处理器、ASIC、FPGA、能够取得并执行存储在机器可读介质1104中的指令1106至1116的其他硬件设备或其组合。在一些示例中,处理资源1102可以提取、解码并执行存储在机器可读介质1104中的指令1106至1116以确定各种内存阈值,如已用内存衰减阈值(UMDTH)、可用内存衰减阈值(AMDTH)、内存耗尽第一阈值(METH1)以及内存耗尽第二阈值(METH2)。在某些示例中,作为取得并执行指令1106至1116的替代或补充方案,处理资源1102可以包括至少一个IC、其他控制逻辑、其他电子电路或其包括用于确定上述内存阈值的多个电子部件的组合。
在一些示例中,指令1106在由处理资源1102执行时可以使处理资源1102在内存分配和监测阶段期间引起测试进程对主存储器104的利用率递增(见图3A)。进一步地,指令1108在由处理资源1102执行时可以使处理资源1102在内存分配和监测阶段期间该测试进程利用主存储器104时监测可回收内存126的量、已用内存116的量、可用内存的量以及主缺页中断的数量。
而且,在一些示例中,指令1110至1116可以在测试阶段的阈值确定阶段(见图3B)期间被执行。指令1110在由处理资源1102执行时可以使处理资源1102将已用内存衰减阈值(UMDTH)确定为可回收内存126的量开始减少到低于预定义阈值(RMTH)时已用内存116的量。而且,指令1112在由处理资源1102执行时可以使处理资源1102基于已用内存衰减阈值(UMDTH)以及主缺页中断的数量开始上升到高于主缺页中断阈值(MPFTH)时已用内存的量(例如,UMPFimpact)来确定内存耗尽第一阈值(METH1)。
而且,在一些示例中,指令1114在由处理资源1102执行时可以使处理资源1102将可用内存衰减阈值(AMDTH)确定为可回收内存126的量开始减少到低于预定义阈值(RMTH)时可用内存的量。另外,指令1116在由处理资源1102执行时可以使处理资源1102基于可用内存衰减阈值(AMDTH)以及主缺页中断的数量开始上升到高于主缺页中断阈值(MPFTH)时可用内存的量(例如,AMPFimpact)来确定内存耗尽第二阈值(METH2)。
图12是根据示例的描绘处理资源1202和机器可读介质1204的框图1200,该机器可读介质编码有用于操作第一管理系统102的示例指令。处理资源1202可以表示处理资源1102的一个示例,而机器可读介质1204可以表示机器可读介质1104的一个示例。在一些示例中,机器可读介质1204可以编码有用于执行图8中描述的方法800的可执行指令1206、1208和1210(以下统称为指令1206至1210)。尽管未示出,但是在一些示例中,机器可读介质1204可以编码有用于执行图9和图10中描述的方法900和1000的某些附加的可执行指令,而不限制本公开的范围。
指令1206在由处理资源1202执行时可以使处理资源1202在第一管理系统102的运行时间期间监测已用内存116的量和可用内存的量。进一步地,指令1208在由处理资源1202执行时可以使处理资源1202确定已用内存116的量是否大于内存耗尽第一阈值(METH1)或者可用内存的量是否小于与内存耗尽第一阈值(METH1)不同的内存耗尽第二阈值(METH2)。此外,指令1210在由处理资源1202执行时可以使处理资源1202启用第一管理系统102的同步重启。
应当理解,处理资源106可以在因已用内存116的量达到内存耗尽第一阈值(METH1)或者可用内存的量达到内存耗尽第二阈值(METH2)而导致的低内存情况下启用第一管理系统102的同步重启。此外,将已用内存116的量和可用内存的量分别与已用内存衰减阈值(UMDTH)和可用内存衰减阈值(AMDTH)进行比较可以帮助确定可回收内存126耗尽的开始。对可回收内存126耗尽的开始的这种确定可以帮助生成某些警告消息,使得如果用户希望执行用于降低内存消耗的任何内存管理操作,则用户可以这样做。而且,当确定已用内存116的量大于已用内存衰减阈值(UMDTH)或者可用内存的量小于可用内存衰减阈值(AMDTH)时,处理资源106可以主动地开始将存储在主存储器102中的数据备份到非易失性存储器108中。
而且,将已用内存116的量和可用内存的量分别与内存耗尽第一阈值(METH1)和内存耗尽第二阈值(METH2)进行比较可以帮助确定主缺页中断的数量是否会急剧增加。一旦已用内存116的量达到内存耗尽第一阈值(METH1)或者可用内存的量达到内存耗尽第二阈值(METH2),处理资源106就可以发起第一管理系统102的同步重启。因此,可以将第一管理系统102的OS 105突然崩溃的机会降到最低。进一步地,第一管理系统102的同步重启可以帮助切换第一管理系统102的第二管理系统202的角色,该第二管理系统在活动管理系统经历由于已用内存116的量达到内存耗尽第一阈值(METH1)或者可用内存的量达到内存耗尽第二阈值(METH2)而引起的低内存情况时可操作。在这种情况下,第二管理系统202的角色可以转换为活动管理系统,使得当第一管理系统102经历重启时,第二管理系统202开始执行第一管理系统102曾经执行的操作。因此,系统200的性能不会由于第一管理系统102遇到的低内存情况而受到影响。
尽管上面已经示出并描述了特定的实施方式,但是可以做出形式和细节上的各种改变。例如,已经关于一种实施方式和/或过程描述的一些特征和/或功能可以与其他实施方式关联。换句话说,关于一种实施方式描述的过程、特征、部件和/或特性可用于其他实施方式。而且,应当理解,本文描述的系统和方法可以包括所描述的不同实施方式的部件和/或特征的各种组合和/或子组合。
此外,在前述描述中,阐述了许多细节以提供对本文中公开的主题的理解。然而,可以在没有这些细节中的一些或全部细节的情况下实践实施方式。其他实施方式可以包括上文所讨论的细节的修改、组合和变化。所附权利要求旨在覆盖这样的修改和变化。

Claims (20)

1.一种系统,包括:
第一管理系统,所述第一管理系统包括:
主存储器,所述主存储器包括已用内存和松预留内存,其中,所述松预留内存包括具有可回收内存的缓存内存;以及
耦接到所述主存储器的处理资源,其中,所述处理资源用于:
在所述第一管理系统的运行时间期间监测所述已用内存的量和可用内存的量,其中,所述可用内存是对来自所述主存储器的能用于启动应用程序的内存量的估计;以及
如果所述已用内存的量大于内存耗尽第一阈值或者所述可用内存的量小于与所述内存耗尽第一阈值不同的内存耗尽第二阈值,则启用所述第一管理系统的同步重启,其中,所述内存耗尽第一阈值和所述内存耗尽第二阈值是基于所述可回收内存的使用量和主缺页中断的数量确定的。
2.如权利要求1所述的系统,其中,所述处理资源用于确定所述已用内存的量是否大于所述内存耗尽第一阈值或者所述可用内存的量是否小于所述内存耗尽第二阈值。
3.如权利要求2所述的系统,进一步包括耦接到所述第一管理系统的第二管理系统,其中,所述第一管理系统是活动管理系统,而所述第二管理系统是备用管理系统,并且其中,为了启用所述第一管理系统的同步重启,所述处理资源用于:
响应于确定所述已用内存的量大于所述内存耗尽第一阈值或者所述可用内存的量小于所述内存耗尽第二阈值而发起所述第二管理系统的角色转换;以及
在所述第二管理系统的角色转换完成之后,重启所述第一管理系统。
4.如权利要求2所述的系统,进一步包括耦接到所述第一管理系统的第二管理系统,其中,所述第二管理系统是活动管理系统,而所述第一管理系统是备用管理系统,并且其中,为了启用所述第一管理系统的同步重启,所述处理资源用于:
响应于确定所述已用内存的量大于所述内存耗尽第一阈值或者所述可用内存的量小于所述内存耗尽第二阈值而向所述第二管理系统通知所述第一管理系统即将重启;以及
在通知所述第二管理系统之后,重启所述第一管理系统。
5.如权利要求1所述的系统,其中,所述处理资源用于:
确定所述已用内存的量是否大于已用内存衰减阈值或者所述可用内存的量是否小于可用内存衰减阈值;以及
响应于确定所述已用内存的量大于所述已用内存衰减阈值或者所述可用内存的量小于所述可用内存衰减阈值,将存储在所述主存储器中的数据与和所述主存储器分开的非易失性存储器同步。
6.如权利要求5所述的系统,其中,所述处理资源用于:
在所述第一管理系统的测试阶段期间,使测试进程对所述主存储器的利用率递增;以及
在所述测试阶段期间所述测试进程利用所述主存储器时,监测所述可回收内存的量、所述已用内存的量、所述可用内存的量以及所述主缺页中断的数量。
7.如权利要求6所述的系统,其中,所述处理资源用于在所述测试阶段期间将所述已用内存衰减阈值确定为所述可回收内存的量开始减少到低于预定义阈值时所述已用内存的量。
8.如权利要求7所述的系统,其中,所述处理资源用于在所述测试阶段期间基于所述已用内存衰减阈值以及所述主缺页中断的数量开始上升到高于主缺页中断阈值时所述已用内存的量来确定所述内存耗尽第一阈值。
9.如权利要求6所述的系统,其中,所述处理资源用于在所述测试阶段期间将所述可用内存衰减阈值确定为所述可回收内存的量开始减少到低于预定义阈值时所述可用内存的量。
10.如权利要求9所述的系统,其中,所述处理资源用于在所述测试阶段期间基于所述可用内存衰减阈值以及所述主缺页中断的数量开始上升到高于主缺页中断阈值时所述可用内存的量来确定所述内存耗尽第二阈值。
11.一种方法,包括:
在包括具有已用内存和松预留内存的主存储器的第一管理系统中进行以下操作,其中,所述松预留内存包括具有可回收内存的缓存内存:
在所述第一管理系统的运行时间期间监测所述已用内存的量和可用内存的量,其中,所述可用内存是对来自所述主存储器的能用于启动应用程序的内存量的估计;
确定所述已用内存的量是否大于内存耗尽第一阈值或者所述可用内存的量是否小于与所述内存耗尽第一阈值不同的内存耗尽第二阈值,其中,所述内存耗尽第一阈值和所述内存耗尽第二阈值是基于所述可回收内存的使用量和主缺页中断的数量确定的;以及
响应于确定所述已用内存的量大于所述内存耗尽第一阈值或者所述可用内存的量小于所述内存耗尽第二阈值而启用所述第一管理系统的同步重启。
12.如权利要求11所述的方法,其中,所述第一管理系统耦接到第二管理系统,并且其中,所述第一管理系统是活动管理系统,而所述第二管理系统是备用管理系统,其中,启用所述第一管理系统的同步重启包括:
响应于确定所述已用内存的量大于所述内存耗尽第一阈值或者所述可用内存的量小于所述内存耗尽第二阈值而发起所述第二管理系统的角色转换;以及
在所述第二管理系统的角色转换完成之后,重启所述第一管理系统。
13.如权利要求11所述的方法,其中,所述第一管理系统耦接到第二管理系统,并且其中,所述第二管理系统是活动管理系统,而所述第一管理系统是备用管理系统,其中,启用所述第一管理系统的同步重启包括:
响应于确定所述已用内存的量大于所述内存耗尽第一阈值或者所述可用内存的量小于所述内存耗尽第二阈值而向所述第二管理系统通知所述第一管理系统即将重启;以及
在通知所述第二管理系统之后,重启所述第一管理系统。
14.如权利要求11所述的方法,进一步包括:
确定所述已用内存的量是否大于已用内存衰减阈值或者所述可用内存的量是否小于可用内存衰减阈值;以及
响应于确定所述已用内存的量大于所述已用内存衰减阈值或者所述可用内存的量小于所述可用内存衰减阈值,将存储在所述主存储器中的数据与和所述主存储器分开的非易失性存储器同步。
15.如权利要求14所述的方法,进一步包括:
在所述第一管理系统的与所述第一管理系统的运行时间不同的测试阶段期间:
使测试进程对所述主存储器的利用率递增;
在所述测试进程利用所述主存储器时,监测所述可回收内存的量、所述已用内存的量、所述可用内存的量以及所述主缺页中断的数量;
将所述已用内存衰减阈值确定为所述可回收内存的量开始减少到低于预定义阈值时所述已用内存的量;
基于所述已用内存衰减阈值以及所述主缺页中断的数量开始上升到高于主缺页中断阈值时所述已用内存的量来确定所述内存耗尽第一阈值;
将所述可用内存衰减阈值确定为所述可回收内存的量开始减少到低于所述预定义阈值时所述可用内存的量;以及
基于所述可用内存衰减阈值以及所述主缺页中断的数量开始上升到高于所述主缺页中断阈值时所述可用内存的量来确定所述内存耗尽第二阈值。
16.如权利要求11所述的方法,进一步包括在所述运行时间期间,基于所述已用内存的量的变化速率来确定所述已用内存的量达到所述内存耗尽第一阈值的剩余时间。
17.一种非暂态机器可读介质,存储有能够由第一管理系统中的处理资源执行的指令,所述第一管理系统包括具有已用内存和松预留内存的主存储器,其中,所述松预留内存包括具有可回收内存的缓存内存,所述指令包括:
用于在所述第一管理系统的运行时间期间监测所述已用内存的量和可用内存的量的指令,其中,所述可用内存是对来自所述主存储器的能用于启动应用程序的内存量的估计;
用于确定所述已用内存的量是否大于内存耗尽第一阈值或者所述可用内存的量是否小于与所述内存耗尽第一阈值不同的内存耗尽第二阈值的指令,其中,所述内存耗尽第一阈值和所述内存耗尽第二阈值是基于所述可回收内存的使用量和主缺页中断的数量确定的;以及
用于响应于确定所述已用内存的量大于所述内存耗尽第一阈值或者所述可用内存的量小于所述内存耗尽第二阈值而启用所述第一管理系统的同步重启的指令。
18.如权利要求17所述的非暂态机器可读介质,进一步包括:
用于确定所述已用内存的量是否大于已用内存衰减阈值或者所述可用内存的量是否小于可用内存衰减阈值的指令;以及
用于响应于确定所述已用内存的量大于所述已用内存衰减阈值或者所述可用内存的量小于所述可用内存衰减阈值而将存储在所述主存储器中的数据与和所述主存储器分开的非易失性存储器同步的指令。
19.如权利要求17所述的非暂态机器可读介质,其中,所述第一管理系统耦接到第二管理系统,并且其中,所述第一管理系统是活动管理系统,而所述第二管理系统是备用管理系统,其中,所述用于启用所述第一管理系统的同步重启的指令包括:
用于响应于确定所述已用内存的量大于所述内存耗尽第一阈值或者所述可用内存的量小于所述内存耗尽第二阈值而发起所述第二管理系统的角色转换的指令;以及
用于在所述第二管理系统的角色转换完成之后重启所述第一管理系统的指令。
20.如权利要求17所述的非暂态机器可读介质,其中,所述第一管理系统耦接到第二管理系统,并且其中,所述第二管理系统是活动管理系统,而所述第一管理系统是备用管理系统,其中,所述用于启用所述第一管理系统的同步重启的指令包括:
用于响应于确定所述已用内存的量大于所述内存耗尽第一阈值或者所述可用内存的量小于所述内存耗尽第二阈值而向所述第二管理系统通知所述第一管理系统即将重启的指令;以及
用于在通知所述第二管理系统之后重启所述第一管理系统的指令。
CN202111226164.2A 2020-11-24 2021-10-21 对系统的同步重启的管理 Active CN114546634B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/102,501 US11442832B2 (en) 2020-11-24 2020-11-24 Managing synchronized reboot of a system
US17/102,501 2020-11-24

Publications (2)

Publication Number Publication Date
CN114546634A true CN114546634A (zh) 2022-05-27
CN114546634B CN114546634B (zh) 2023-07-25

Family

ID=81452719

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111226164.2A Active CN114546634B (zh) 2020-11-24 2021-10-21 对系统的同步重启的管理

Country Status (3)

Country Link
US (2) US11442832B2 (zh)
CN (1) CN114546634B (zh)
DE (1) DE102021126886A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116302572A (zh) * 2023-05-19 2023-06-23 长通智能(深圳)有限公司 基于ai智能推荐的算力资源调度分配系统及方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116069532A (zh) * 2021-10-29 2023-05-05 戴尔产品有限公司 使用对异常内存使用模式的基于规则的检测来识别和补救内存泄漏
CN116088747A (zh) * 2022-07-18 2023-05-09 荣耀终端有限公司 信息处理方法、装置、设备及存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100077128A1 (en) * 2008-09-22 2010-03-25 International Business Machines Corporation Memory management in a virtual machine based on page fault performance workload criteria
US20120079174A1 (en) * 2010-09-28 2012-03-29 Fusion-Io, Inc. Apparatus, system, and method for a direct interface between a memory controller and non-volatile memory using a command protocol
CN102929761A (zh) * 2012-11-16 2013-02-13 赛尔网络有限公司 一种应对崩溃性错误的系统及方法
US20130132699A1 (en) * 2011-11-18 2013-05-23 Apple Inc. Method for tracking memory usages of a data processing system
CN103297600A (zh) * 2012-03-01 2013-09-11 宇龙计算机通信科技(深圳)有限公司 移动终端和移动终端系统自动重启方法
CN103729314A (zh) * 2012-10-11 2014-04-16 珠海扬智电子科技有限公司 存储器存取指令的管理方法与管理系统
US8886866B2 (en) * 2010-11-30 2014-11-11 International Business Machines Corporation Optimizing memory management of an application running on a virtual machine
US20190042406A1 (en) * 2017-08-01 2019-02-07 International Business Machines Corporation System and method to manage and share managed runtime memory for java virtual machine
CN110489232A (zh) * 2019-08-12 2019-11-22 新华三技术有限公司成都分公司 资源隔离方法、装置、电子设备及存储介质
CN110888746A (zh) * 2019-12-10 2020-03-17 Oppo(重庆)智能科技有限公司 内存管理方法、装置、存储介质及电子设备

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE375553T1 (de) 2003-06-24 2007-10-15 Research In Motion Ltd Erkennung von speichermangel und feinabschaltung
US20070055843A1 (en) * 2005-09-02 2007-03-08 Silicon Graphics, Inc. Predictive prefaulting in the page fault handler
US7865901B2 (en) * 2007-05-21 2011-01-04 International Business Machines Corporation Managing memory resident objects to optimize a runtime environment
US8495267B2 (en) 2010-11-24 2013-07-23 International Business Machines Corporation Managing shared computer memory using multiple interrupts
US9183151B2 (en) * 2013-08-30 2015-11-10 Vmware, Inc. Thread cache allocation
US9934157B2 (en) * 2015-11-25 2018-04-03 Red Hat Israel, Ltd. Post-copy VM migration speedup using free page hinting
CN105701025B (zh) * 2015-12-31 2019-07-23 华为技术有限公司 一种内存回收方法及装置
US10055359B2 (en) * 2016-02-10 2018-08-21 Advanced Micro Devices, Inc. Pinning objects in multi-level memory hierarchies
US10346306B2 (en) * 2016-04-02 2019-07-09 Intel Corporation Processor and method for memory performance monitoring utilizing a monitor flag and first and second allocators for allocating virtual memory regions
US10635337B2 (en) * 2016-06-27 2020-04-28 Intel Corporation Dynamic configuration of compressed virtual memory
US10496547B1 (en) * 2017-05-10 2019-12-03 Parallels International Gmbh External disk cache for guest operating system in a virtualized environment
US11106442B1 (en) * 2017-09-23 2021-08-31 Splunk Inc. Information technology networked entity monitoring with metric selection prior to deployment
US20190391851A1 (en) * 2018-06-21 2019-12-26 Nutanix, Inc. System and method for managing memory in virtual machines
US11392491B2 (en) * 2018-06-27 2022-07-19 Intel Corporation Hardware-assisted paging mechanisms
CN112714904A (zh) * 2018-09-27 2021-04-27 英特尔公司 基于已存储数据或空闲空间的fifo缓冲器
CN109753361B (zh) * 2019-01-04 2020-10-23 合肥杰发科技有限公司 一种内存管理方法、电子设备及存储装置
US10776050B2 (en) * 2019-02-08 2020-09-15 Dell Products L.P. Systems and methods for improved write filter operation with provision for monitoring and prediction to delay system reboot
US11487671B2 (en) * 2019-06-19 2022-11-01 Advanced Micro Devices, Inc. GPU cache management based on locality type detection
US11593186B2 (en) * 2019-07-17 2023-02-28 Memverge, Inc. Multi-level caching to deploy local volatile memory, local persistent memory, and remote persistent memory
US11106501B2 (en) * 2019-07-30 2021-08-31 EMC IP Holding Company LLC Dynamic memory manager
US11372702B2 (en) * 2019-10-22 2022-06-28 International Business Machines Corporation Optimized high availability management using cluster-wide view

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100077128A1 (en) * 2008-09-22 2010-03-25 International Business Machines Corporation Memory management in a virtual machine based on page fault performance workload criteria
US20120079174A1 (en) * 2010-09-28 2012-03-29 Fusion-Io, Inc. Apparatus, system, and method for a direct interface between a memory controller and non-volatile memory using a command protocol
US8886866B2 (en) * 2010-11-30 2014-11-11 International Business Machines Corporation Optimizing memory management of an application running on a virtual machine
US20130132699A1 (en) * 2011-11-18 2013-05-23 Apple Inc. Method for tracking memory usages of a data processing system
CN103297600A (zh) * 2012-03-01 2013-09-11 宇龙计算机通信科技(深圳)有限公司 移动终端和移动终端系统自动重启方法
CN103729314A (zh) * 2012-10-11 2014-04-16 珠海扬智电子科技有限公司 存储器存取指令的管理方法与管理系统
CN102929761A (zh) * 2012-11-16 2013-02-13 赛尔网络有限公司 一种应对崩溃性错误的系统及方法
US20190042406A1 (en) * 2017-08-01 2019-02-07 International Business Machines Corporation System and method to manage and share managed runtime memory for java virtual machine
CN110489232A (zh) * 2019-08-12 2019-11-22 新华三技术有限公司成都分公司 资源隔离方法、装置、电子设备及存储介质
CN110888746A (zh) * 2019-12-10 2020-03-17 Oppo(重庆)智能科技有限公司 内存管理方法、装置、存储介质及电子设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116302572A (zh) * 2023-05-19 2023-06-23 长通智能(深圳)有限公司 基于ai智能推荐的算力资源调度分配系统及方法

Also Published As

Publication number Publication date
US20220382471A1 (en) 2022-12-01
DE102021126886A1 (de) 2022-05-25
US11442832B2 (en) 2022-09-13
US20220164271A1 (en) 2022-05-26
US11860754B2 (en) 2024-01-02
CN114546634B (zh) 2023-07-25

Similar Documents

Publication Publication Date Title
CN114546634B (zh) 对系统的同步重启的管理
US10817386B2 (en) Virtual machine recovery method and virtual machine management device
US9110806B2 (en) Opportunistic page caching for virtualized servers
CN108874624B (zh) 服务器、监控Java进程的方法及存储介质
US11360884B2 (en) Reserved memory in memory management system
CN107656834B (zh) 用于基于事务日志恢复主机访问的系统和方法及存储介质
US8677374B2 (en) Resource management in a virtualized environment
US9767015B1 (en) Enhanced operating system integrity using non-volatile system memory
CN108205474B (zh) 内存管理方法、终端设备、计算机装置以及可读存储介质
KR102219122B1 (ko) 다중-운영-체제 환경들에서 운영 체제 전환들을 위한 기술들
CN110806925B (zh) 音频播放方法及设备
CN111679914B (zh) 一种内存管理方法、系统、计算机设备及存储介质
JP2014178913A (ja) 電子機器、スナップショットイメージの作成方法及びプログラム
CN107408073B (zh) 使用存储器压缩来减少存储器提交开销
CN115407943A (zh) 一种内存转储文件生成方法、装置、设备及可读存储介质
CN114667506A (zh) 多物理功能非易失性存储器设备的管理
EP2757481B1 (en) Caching method and caching system using dual disks
US20190227957A1 (en) Method for using deallocated memory for caching in an i/o filtering framework
CN111752674B (zh) Linux系统环境中的技术架构、内存分配方法、设备及介质
US9691503B2 (en) Allocation technique for memory diagnostics
US10712952B1 (en) Metadata caches in a reliable distributed computing system
CN107273188B (zh) 一种虚拟机中央处理单元cpu绑定方法及装置
WO2009144383A1 (en) Memory management method and apparatus
US11914512B2 (en) Writeback overhead reduction for workloads
Lee et al. Enhanced configurable snapshot: snapshot-based fast booting on nand flash with lifetime control

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant