一种服务器节电控制方法、装置及电子设备节电控制装置的制造方法_2

文档序号:9786932阅读:来源:国知局
保护的范围。
[0057]实施例一
[0058]参考图1,图1为本申请提供的一种服务器节电控制方法实施例一的流程图,所述方法可应用于数据中心服务器集群场景中各服务器的节电控制,也可应用于单个服务器场景中的服务器节电控制,如图1所示,所述服务器节电控制方法可以包括以下步骤:
[0059]SlOl:在服务器内存符合预设的节电条件时,确定服务器需关闭的第一内存组件,及需保留的第二内存组件。
[0060]所述第一内存组件、第二内存组件可以为一个或多个内存条。本申请具体通过关闭部分非必要运行的内存条来实现服务器节电。
[0061]本实施例预先设定所述节电条件为:当前时间到达预设的低峰(服务器的访问低峰)时段且服务器当前的内存使用率低于预设阈值。
[0062]基于此,在当前时间到达预设的低峰时段时,可结合考虑服务器当前的内存使用情况来确定是否需对服务器进行节电控制,如果服务器当前的内存使用率较低,低于预设阈值,即服务器内存符合所述节电条件,则需对服务器进行节电控制,此种情况下,可继续依据服务器在当前时段的内存使用情况,来确定具体需关闭哪些内存条,以及需保留哪些内存条。
[0063]—般情况下,为了避免数据访问冲突,保持最优的内存性能,可使保留的各内存条尽可能均衡地分布在不同的内存通道中,参考图2(a)-图2(c),图2(a)-图2(c)示出了不同内存使用率情况下,内存条关闭及保留的结果示例图。
[0064]反之,如果服务器当前的内存使用率较高,比如因服务器当前的访问量较高而导致内存使用率高等,不符合所述节电条件,则需继续维持服务器内存正常运行,以确保服务器的正常数据处理。
[0065]S102:进行预设的数据转移操作,实现将所述第一内存组件所存储的当前数据转移至所述第二内存组件。
[0066]在服务器内存符合所述节电条件,并确定出需关闭的内存条以及需保留的内存条之后,为防止内存数据丢失,需将待关闭内存条中的当前数据转移至待保留的内存条中进行备份,以确保后续在关闭服务器的部分内存条,将服务器从正常模式切换为节电模式时,能够还原所关闭内存条中的现场数据。
[0067]S103:控制所述第一内存组件断电。
[0068]在进行内存数据转移,实现在待保留内存条上对待关闭内存条上的当前数据进行备份的基础上,可对待关闭的各内存条进行断电控制,切断所述待关闭内存条的电源,使其离线,从而可实现服务器节电,之后,服务器进入节电模式。
[0069]由以上方案可知,本申请公开的服务器节电控制方法,在服务器内存符合预设的节电条件时,确定服务器需关闭的第一内存组件及需保留的第二内存组件,并进行预设的数据转移操作,将所述第一内存组件存储的当前数据转移至所述第二内存组件,之后控制所述第一内存组件断电。可见,本申请通过在内存数据转移的基础上关闭一部分非必要运行的内存条,实现了服务器节电,应用本申请方法,可有效克服现有技术因未完全关闭闲置的内存条而导致的节电效率低,或因直接关闭服务器集群中的一部分服务器而导致的开关机耗时大、开机故障风险大等问题。
[0070]实施例二
[0071]参考图3,图3为本申请提供的一种服务器节电控制方法实施例二的流程图,本实施例二中,所述步骤S102具体可以通过以下步骤实现:
[0072]S301:控制服务器停止工作。
[0073]S302:在所述第二内存组件中,为所述第一内存组件所存储的当前数据分配相应的可用区域。
[0074]S303:将所述第一内存组件的所述当前数据复制至所述第二内存组件的所述可用区域中,并进行预设的第一内存管理。
[0075]S304:控制服务器恢复工作。
[0076]本实施例具体提供转移内存条数据的实现过程。
[0077]其中,首先可通过停止服务器的用户进程,停止I/Odnput/Output,输入/输出)操作,关闭中断等,来控制服务器停止工作。
[0078]之后顺序扫描服务器的物理内存占用表及页表,获知待关闭内存条上分布的数据,其中,对于待关闭内存条上分布的DMA(Direct1nal Memory Access,直接内存访问)数据,则需依据预设的内存映射算法,优先在待保留内存条的可用区域中为此类数据分配连续的物理内存区域,反之,对于待关闭内存条上分布的非DMA数据,则可依据待保留内存条的实际可用内存情况,为此类数据分配连续或非连续的物理内存区域。
[0079]—般来说,在进行数据移动时,一个较好的内存映射算法不会导致数据冲突,即不会为待关闭内存中的不同数据映射一个相同的内存区域,从而可直接复制数据至所述内存映射算法指示的新地址,实现数据的直接移动入位。而对于偶然出现的映射地址非空闲的情况,即出现数据冲突的情况(内存映射算法针对不同输入给出了相同的输出),则可采用连续扫描方式,以当前映射地址为起始点对内存空间进行连续扫描(以内存条上的物理页面为扫描单位),直至获取一个可用区域,来备份当前的待转移数据。
[0080]在完成数据转移,实现将待关闭内存条上的所有数据成功转移至待保留内存条的可用区域后,需针对此次的数据转移情况,对服务器内存进行相应的内存管理,具体地,需基于数据转移前、后所述待关闭内存条及待保留内存条的内存占用变化,重建或更新内存管理的数据结构,如重建或更新物理内存占用表、页表、段表及中断描述符表等等,以确保内存管理数据结构能够准确反映数据转移后服务器内存的实际占用情况。
[0081]之后可控制服务器恢复工作,如恢复中断,恢复I/O操作,恢复用户进程等,此时,服务器可基于所保留内存条中的新添数据,以及内存管理数据结构准确记录的当前内存占用情况,维持内存条关闭之前的内存现场数据。
[0082]实施例三
[0083]参考图4,图4为本申请提供的一种服务器节电控制方法实施例三的流程图,本实施例三中,所述服务器节电方法还可以包括以下步骤:
[0084]S401:在服务器内存符合预设的唤醒条件时,对所述第一内存组件进行加电控制;
[0085]S402:检测所述第一内存组件的可用性及健康程度;并在检测通过后,进行预设的第二内存管理;其中,所述进行预设的第二内存管理包括:基于对所述第一内存组件的加电唤醒情况,更新物理内存占用表、页表、段表及中断描述符表。
[0086]其中,所述唤醒条件可以是当前时间到达预期的峰值时段(即预先设置的服务器访问高峰时段),或非预期的峰值时段(实时检测的服务器访问高峰时段)等。
[0087]当服务器内存符合所述唤醒条件时,可对离线的内存条进行加电,使其重新恢复运行,并检测新加电内存条的可用性及健康程度(类似启动自检),在检测无误后,停止用户进程,停止I/O操作,关闭中断,之后基于这些内存条的加电唤醒情况,对其进行相应的内存管理,通过重建或更新物理内存占用表、页表、段表及中断描述符表等内存管理数据结构,实现对服务器内存的当前使用情况进行准确记录。
[0088]在此基础上,可通过恢复中断,恢复1/0,恢复用户进程等,使服务器恢复工作,从而服务器从节电模式恢复至正常模式运行。
[0089]在数据中心服务器集群这一应用场景中,为便于统一管理,可预先基于服务器集群的高峰、低峰访问规律,在集群管理节点中对服务器的低峰时段、高峰时段等进行相应设置,并在当前时间到达所设置的时间时,统一向集群中的各服务器发出内存条断电或唤醒请求,集群中的各服务器在接收到该请求后,可基于自身的内存使用情况,同意或拒绝集群管理节点的此次请求,并向管理节点反馈同意或拒绝的相关信息,以便于管理节点实时了解服务器的运行状况。
[0090]例如,假设在到达预置的低峰时段,某一服务器接收到集群管理节点发出的内存条断电请求时,其自身的内存使用率较高,则服务器可拒绝响应该请求,即拒绝对内存条进行断电,并向集群管理节点反馈这一情况。
[0091]实施例四
[0092]参考图5,图5为本申请提供的一种服务器节电控制装置实施例四的结构示意图,所述装置可应用于数据中心服务器集群场景中各服务器的节电控制,也可应用于单个服务器场景的服务器节电控制,如图5所示,所述服务器节电装置可以包括:
[0093]确定模块501,用于在服务器内存符合预设的节电条件时,确定服务器需关闭的第一内存组件,及需保留的第二内存组件条。
[0094]所述第一内存组件、第二内存组件可以为一个或多个内存条。
[0095]本实施例预先设定所述节电条件为:当前时间到达预设的低峰时段且服务器当前的内存使用率低于预设阈值。
[0096]基于此,在当前时间到达预设的低峰时段时,可结合考虑服务器当前的内存使用情况来确定是否需对服务器进行节电控制,如果服务器当前的内存使用率较低,低于预设阈值,即服务器内存符合所述节电条件,则需对服务器进行节电控制,此种情况下,可继续依据服务器在当前时段的内存使用情况,来确定具体需关闭哪些
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1