CN110019372B - 数据监控方法、装置、服务器及存储介质 - Google Patents

数据监控方法、装置、服务器及存储介质 Download PDF

Info

Publication number
CN110019372B
CN110019372B CN201810953206.4A CN201810953206A CN110019372B CN 110019372 B CN110019372 B CN 110019372B CN 201810953206 A CN201810953206 A CN 201810953206A CN 110019372 B CN110019372 B CN 110019372B
Authority
CN
China
Prior art keywords
current
memory
redis instance
data
redis
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.)
Active
Application number
CN201810953206.4A
Other languages
English (en)
Other versions
CN110019372A (zh
Inventor
张俞蕾
朱皓
祁明远
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.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen Co Ltd
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 Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201810953206.4A priority Critical patent/CN110019372B/zh
Publication of CN110019372A publication Critical patent/CN110019372A/zh
Application granted granted Critical
Publication of CN110019372B publication Critical patent/CN110019372B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Computational Linguistics (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据监控方法、装置、服务器及存储介质,该方法包括:服务器轮询本地Redis实例,获取轮询到的当前Redis实例对应的数据参数,根据数据参数计算当前Redis实例的内存量达到预设最大缓存阈值的预估时间;在当前运行时间接近所述预估时间时,按照预设分配比例将当前Redis实例中的目标迁移内存量转移到备用Redis实例;根据当前Redis实例中的数据参数、以及所述备用Redis实例中的数据参数生成监控数据,对所述监控数据进行展示。本发明针对一个服务器存在多个Redis实例的现象,当服务器访问量较大时,能够减少系统出现数据延迟的几率,进而能够及时获取各Redis实例的精确的监控数据。

Description

数据监控方法、装置、服务器及存储介质
技术领域
本发明涉及通信技术领域,尤其涉及一种数据监控方法、装置、服务器及存储介质。
背景技术
Redis是一种高级key-value数据库,属于一种缓存数据库NO-SQL非关系型数据库,它与关系型数据库SQL不同点在于,其数据是实时存放在缓存里,使用起来更加灵活方便。
在一个服务器中创建多个Redis实例时,若该服务器系统访问量较大,且服务器的Redis数据库的使用频率很高,那么会出现实例多不好统一管理,且Redis数据库中经常会出现各种延迟的现象,无法及时地对Redis进行统一监控,不能获得精确的监控数据,给用户带来了很大的不便。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种数据监控方法、装置、服务器及存储介质,针对上述一个服务器存在多个Redis实例,且该服务器系统访问量较大时,如何避免出现延迟现象的问题。
为实现上述目的,本发明提供一种数据监控方法,所述数据监控方法包括:
服务器轮询本地缓存数据库Redis实例,获取轮询到的当前Redis实例对应的数据参数,所述数据参数至少包括所述当前Redis实例的当前内存量、所连接的客户端数量以及历史运行时长;其中,所述服务器至少具有一个备用Redis实例;
根据所述当前内存量、所述连接的当前客户端数量以及所述历史运行时长计算所述Redis实例的内存量达到预设最大缓存阈值的预估时间;
读取所述当前Redis实例的当前运行时间,在所述当前运行时间与所述预估时间的时长差值处于预设时间差值范围时,按照预设分配比例从所述当前Redis实例中取出部分内存量作为目标迁移内存量,将所述目标迁移内存量转移到所述备用Redis实例,并确定所述当前Redis实例中未转移出去的当前剩余内存量;
根据所述当前Redis实例中所述当前剩余内存量对应的数据参数、以及所述备用Redis实例中的所述目标迁移内存量对应的数据参数生成监控数据,对所述监控数据进行展示。
优选地,所述根据所述当前内存量、所述连接的当前客户端数量以及所述历史运行时长计算所述Redis实例的内存量达到预设最大缓存阈值的预估时间,具体包括:
获得当前Redis实例已连接过的历史客户端的总数量,以及所述当前Redis实例的预设最大缓存阈值;
根据所述当前内存量、所述已连接过的客户端的总数量以及所述历史运行时长计算所述当前Redis实例的每个客户端在平均时间内的内存分配量;
根据所述当前客户端数量、所述预设最大缓存阈值、以及所述每个客户端在平均时间的内存分配量计算所述Redis实例的内存量达到预设最大缓存阈值的预估时间。
优选地,通过公式(1)计算所述当前Redis实例的每个客户端在平均时间内的内存分配量,所述公式(1)为:
Figure GDA0004069474870000021
其中,Clinet-total表示所述当前Redis实例已连接过的客户端的总数量,V-client-m表示每个客户端在平均时间内的内存分配量,T-total表示所述当前Redis实例的运行的历史运行时长,Memory-now表示所述当前Redis实例的当前内存量。
优选地,通过公式(2)计算所述Redis实例的内存量达到预设最大缓存阈值的预估时间,所述公式(2)为:
Figure GDA0004069474870000031
其中,T-cost表示所述预估时间,k表示预设转换系数,Memory-max表示所述当前Redis实例的预设最大缓存阈值,Clinet-now表示所述当前Redis实例所连接的当前客户端数量。
优选地,所述将所述目标迁移内存量转移到所述备用Redis实例,并确定所述当前Redis实例中未转移出去的当前剩余内存量之后,还包括:
对所述当前Redis实例进行碎片清理,获取经碎片清理后的当前Redis实例的当前内存可用空间;
在所述当前内存可用空间达到预设内存可用阈值时,将所述目标迁移内存量从所述备用Redis实例中转移到所述当前Redis实例。
优选地,所述将所述目标迁移内存量转移到所述备用Redis实例,并确定所述当前Redis实例中未转移出去的当前剩余内存量之后,还包括:
将所述目标迁移内存量对应的数据内容转换为JSON格式保存到所述备用Redis实例中。
优选地,所述将所述目标迁移内存量转移到所述备用Redis实例,并确定所述当前Redis实例中未转移出去的当前剩余内存量之后,还包括:
确定所述目标迁移内存量对应的进程标识以及对应的数据类型;
根据所述进程标识和所述数据类型生成恢复文件,将所述恢复文件保存到内存镜像文件中。
此外,为实现上述目的,本发明还提出一种数据监控装置,所述数据监控装置包括:
轮询模块,用于轮询本地缓存数据库Redis实例,获取轮询到的当前Redis实例对应的数据参数,所述数据参数至少包括所述当前Redis实例的当前内存量、所连接的客户端数量以及历史运行时长;其中,所述服务器至少具有一个备用Redis实例;
计算模块,用于根据所述当前内存量、所述连接的当前客户端数量以及所述历史运行时长计算所述Redis实例的内存量达到预设最大缓存阈值的预估时间;
转移模块,用于读取所述当前Redis实例的当前运行时间,在所述当前运行时间与所述预估时间的时长差值处于预设时间差值范围时,按照预设分配比例从所述当前Redis实例中取出部分内存量作为目标迁移内存量,将所述目标迁移内存量转移到所述备用Redis实例,并确定所述当前Redis实例中未转移出去的当前剩余内存量;
监控模块,用于根据所述当前Redis实例中所述当前剩余内存量对应的数据参数、以及所述备用Redis实例中的所述目标迁移内存量对应的数据参数生成监控数据,对所述监控数据进行展示。
此外,为实现上述目的,本发明还提出一种服务器,所述服务器包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据监控程序,所述数据监控程序配置为实现如上所述的数据监控方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有数据监控程序,所述数据监控程序被处理器执行时实现如上所述数据监控方法的步骤。
本发明的服务器轮询本地各个Redis实例,获取轮询到的当前Redis实例对应的数据参数,根据所述数据参数计算所述Redis实例的内存量达到预设最大缓存阈值的预估时间;在当前Redis实例的当前运行时间与所述预估时间的时长差值处于预设时间差值范围时,按照预设分配比例将当前Redis实例中的目标部分内存量转移到备用Redis实例;根据当前Redis实例中剩余的内存量对应的数据参数、以及由所述当前Redis实例转移到所述备用Redis实例的内存量对应的数据参数生成监控数据,对所述监控数据进行展示。本发明针对一个服务器存在多个Redis实例的现象,在服务器中增设一个备用Redis实例,当服务器访问量较大时,通过上述方案能够减少系统出现数据延迟的几率,进而能够第一时间获取各个Redis实例的精确的监控数据结果。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的用于数据监控的服务器的结构示意图;
图2为本发明一种数据监控方法第一实施例的流程示意图;
图3为本发明一种数据监控方法第二实施例的流程示意图;
图4为本发明一种数据监控方法第三实施例的流程示意图;
图5为本发明一种数据监控装置的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的服务器结构示意图。
如图1所示,该服务器可以包括:处理器1001,例如CPU,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,所述存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及数据监控程序。
在图1所示的服务器中,网络接口1004主要用于服务器,与服务器进行数据通信;本发明服务器中的处理器1001、存储器1005可以设置在服务器的装置中,所述服务器通过处理器1001调用存储器1005中存储的数据监控程序,并执行本发明实施例提供的数据监控方法的步骤。
参照图2,图2本发明一种数据监控方法的第一实施例流程示意图,所述数据监控方法包括以下步骤:
步骤S10:服务器轮询本地缓存数据库Redis实例,获取轮询到的当前Redis实例对应的数据参数,所述数据参数至少包括所述当前Redis实例的当前内存量、所连接的客户端数量以及历史运行时长;其中,所述服务器至少具有一个备用Redis实例;
需要说明的是,本实施例的执行主体为服务器的处理器,本实施例的服务器特指一个服务器,该服务器中存在多个Redis实例(或者称之为Redis实例节点),同时服务器中还存在至少一个备选Redis实例,而与Redis相应的后台数据库可以设置在该服务器上,也可以设置在其他服务器上,本实施例可以以关系型数据库MySQL作为所述后台数据库进行描述。该服务器中除备选Redis实例以外的Redis实例节点都能够用于响应(与该服务器对应的)客户端发起写入或者更改后台数据库等类似的访问请求。
具体地,本实施例中,可以设置服务器定时对服务器上的每个Redis实例节点进行轮询;也可以是设置为服务器的处理器检测到(与该服务器对应的)客户端向服务器发起写入或者更改数据库等类似访问请求时,服务器的处理器执行轮询本地各个Redis实例的步骤。
具体地,可以通过设置一组程序代码,服务器的处理器通过调用该程序代码来轮询本地各个Redis实例,所述程序代码可用等同于Redis系统的info命令。即处理器只需要运行该段程序代码,就能获得Redis系统的状态报告;执行结果会返回Server(服务)、Clients(客户端)、Memory(内存)、Stats(状态)等至少4个部分的该Redis实例节点上的数据参数。从返回的数据参数中提取相关信息,就可以达到有效监控的目的。
本实施例中,报告数据中Server(服务)展示的数据参数结果可以是:
process_id:1989,表示当前Redis实例的“进程标识”id为1989;
total_uptime_in_seconds:2232382,表示当前Redis实例的总的历史“运行时长”为223238秒,简称T-total
报告数据中Memory(内存)展示的数据参数结果可以是:
used_memory:821848,表示当前Redis实例节点上已分配的内存量为821848k,简称Memory-now
used_memory_peak_human:320M,表示当前Redis实例的预设最大缓存阈值(即该Redis实例节点的最大内存峰值)为320M,简称Memory-max,其中预设最大缓存阈值可以由开发人员自行设置。
报告数据中Clients(客户端)展示的数据参数结果可以是:
Now_connected_clients:2,表示“所述当前Redis实例所连接的当前客户端的数量”是2个,简称Clinet-now
报告数据中Stats(状态)展示的数据参数结果可以是:
total_connections_received:300,表示当前Redis实例运行以来连接过的客户端的总数量为300个,简称Clinet-total
步骤S20:根据所述当前内存量、所述连接的当前客户端数量以及所述历史运行时长计算所述Redis实例的内存量达到预设最大缓存阈值的预估时间;
可理解的是,根据所述当前Redis实例的当前内存量、所述当前Redis实例所连接的当前客户端数量以及所述当前Redis实例的运行的历史运行时长计算所述Redis实例的内存量达到预设最大缓存阈值的预估时间;
在具体实现中,在步骤S20还需要获得当前Redis实例已连接过的历史客户端的总数量(用C总数量表示),以及所述当前Redis实例的预设最大缓存阈值;相应地,所述步骤S20具体计算步骤分为两步:
第一步,根据所述当前Redis实例的当前内存量、所述当前Redis实例运行已连接过的客户端的总数量以及所述当前Redis实例的运行的历史运行时长计算出所述当前Redis实例的每个客户端在平均时间内的内存分配量;具体地,通过以下公式(1)计算每个客户端在平均时间内的内存分配量V-client-m,其中公式(1)为
Figure GDA0004069474870000071
第二步,根据所述当前Redis实例的已连接过的历史客户端的总数量、所述预设最大缓存阈值、以及每个客户端在平均时间的内存分配量计算所述Redis实例的内存量达到预设最大缓存阈值的预估时间,
Figure GDA0004069474870000072
其中,T-cost表示所述预估时间,k表示预设转换系数,Memory-max表示所述当前Redis实例的预设最大缓存阈值。
步骤S30:读取所述当前Redis实例的当前运行时间,在所述当前运行时间与所述预估时间的时长差值处于预设时间差值范围时,按照预设分配比例从所述当前Redis实例中取出部分内存量作为目标迁移内存量,将所述目标迁移内存量转移到所述备用Redis实例,并确定所述当前Redis实例中未转移出去的当前剩余内存量;
可理解的是,在执行步骤S30之前,需要预先设置一个预设时间差值范围,例如这个预设时间差值范围可以是200秒到400秒之间;
相应地,在步骤S20中计算出所述Redis实例的内存量达到预设最大缓存阈值的预估时间T-cost后(如1000秒),服务器会实时地读取所述当前Redis实例的当前运行时间(例如当前运行时间为1200秒),那么所述当前运行时间与所述预估时间的时长差值正处于200秒到400秒之间,则服务器执行按照预设分配比例将所述当前Redis实例中的目标迁移内存量转移到所述备用Redis实例的步骤,其中所述预设分配比例可以是程序开发人员根据服务器的自身情况预先自行设置。
进一步地,所述按照预设分配比例将所述当前Redis实例中的目标迁移内存量转移到所述备用Redis实例之后,还包括:将所述目标迁移内存量对应的数据内容转换为JSON格式保存到所述备用Redis实例中。可理解的是,本实施例中,各个Redis实例中的数据内容都需要转化成JSON格式进行缓存,因为JSON格式的数据具有占用空间小,解析速度快的优点。
步骤S40:根据所述当前Redis实例中所述当前剩余内存量对应的数据参数、以及所述备用Redis实例中的所述目标迁移内存量对应的数据参数生成监控数据,对所述监控数据进行展示。
具体地,本实施例中从原始Redis实例(即所述当前Redis实例)转移出去的目标迁移内存量的数据对象由备用Redis实例处理,那么需要将原始Redis实例的ID、转移出去的数据对象和(接收转移数据的)备用Redis实例的ID,这三者建立映射关系,那么在展示监控数据的时候,这部分数据虽然是由备用Redis实例处理,但是展示的监控数据中仍然对应显示着原始Redis实例的标识。
本实施例的服务器轮询本地缓存数据库Redis实例,获取轮询到的当前Redis实例对应的数据参数,根据所述数据参数计算所述Redis实例的内存量达到预设最大缓存阈值的预估时间;在当前Redis实例的当前运行时间与所述预估时间的时长差值处于预设时间差值范围时,按照预设分配比例将当前Redis实例中的目标迁移内存量转移到备用Redis实例;根据当前Redis实例中的数据参数、以及所述备用Redis实例中的数据参数生成监控数据,对所述监控数据进行展示。本实施例针对一个服务器存在多个Redis实例的现象,在服务器中增设一个备用Redis实例,当服务器访问量较大时,通过上述方案能够减少系统出现数据延迟的几率,进而能够第一时间获取各个Redis实例的精确的监控数据结果。
进一步的,参照图3,图3为本发明一种数据监控方法第二实施例的流程示意图,基于上述图2所示的实施例,提出本发明一种数据监控方法第二实施例;
本实施例中,所述步骤S30之后,还包括:
步骤S301:对所述当前Redis实例进行碎片清理,获取经碎片清理后的当前Redis实例的当前内存可用空间;
可理解的是,本实施例的服务器中装置的Redis可以是Redis4.0数据库,Redis4.0数据库支持内存碎片清理,本实施例可以在步骤S30之后设置开启自动清理内存碎片的功能,然后在步骤S30之后统计所述当前Redis实例的内存占碎片率;当所述内存占碎片率高于35%,则执行所述当前Redis实例进行碎片清理的步骤,并获取经碎片清理后的当前Redis实例的当前内存可用空间。
步骤S302:在所述当前内存可用空间达到预设内存可用阈值时,将所述目标迁移内存量从所述备用Redis实例中转移到所述当前Redis实例。
可理解的是,所述预设内存可用阈值可以表征为当前Redis实例节点的内存占用率小于65%,若所述当前内存可用空间的内存占用率小于65%,则表明所述当前Redis实例节点的内存具有处理之前转移出去的目标迁移内存量的数据内容的能力,服务器会执行将之前转移出去的目标迁移内存量从所述备用Redis实例取回到所述当前Redis实例节点的步骤;如果检测出当前Redis实例节点不具有处理之前转移出去的目标迁移内存量的数据内容的能力,则转移出去的目标迁移内存量由所述备用Redis实例处理。
本实施例通过在按照预设分配比例将所述当前Redis实例中的目标迁移内存量转移到所述备用Redis实例步骤之后设置清理所述当前Redis实例的内容碎片的步骤,获取经碎片清理后的当前Redis实例的当前内存可用空间,这样可以保证该Redis实例节点在下次有客户端发起写入或者更改Redis数据库的数据等类似访问请求时,确保其内存的充足。
进一步的,参照图4,图4为本发明一种数据监控方法第三实施例的流程示意图,基于上述图2所示的实施例,提出本发明一种数据监控方法第三实施例;
本实施例中,所述步骤S30之后,还包括:
步骤S310:确定所述目标迁移内存量对应的进程标识以及对应的数据类型;
在具体实现中,本实施例在步骤S30中执行所述按照预设分配比例将所述当前Redis实例中的目标迁移内存量转移到所述备用Redis实例的步骤的同时,也会将所述目标迁移内存量对应的数据参数转移到所述备用Redis实例中;此后会确定所述目标迁移内存量对应的进程标识以及对应的数据类型,其中,各个进程标识涉及的相关参数也包括对应连接的客户端的标识ID。
步骤S320:根据所述进程标识和所述数据类型生成恢复文件,将所述恢复文件保存到内存镜像文件中。
具体地,本实施例会将所述目标迁移内存量对应的进程标识、数据类型和数据内容进行关联,然后生成恢复文件,所述恢复文件可保存在Redis数据库的内存镜像文件dump中,如果该Redis实例节点万一出现假死甚至崩溃的现象,服务器能够通过调用dump文件中的恢复文件对Redis实例节点缓存中的数据进行还原。
此外,本发明还提出一种数据监控装置,所述数据监控装置包括:
轮询模块10,用于轮询本地缓存数据库Redis实例,获取轮询到的当前Redis实例对应的数据参数,所述数据参数至少包括所述当前Redis实例的当前内存量、所连接的客户端数量以及历史运行时长;其中,所述服务器至少具有一个备用Redis实例;
计算模块20,用于根据所述当前内存量、所述连接的当前客户端数量以及所述历史运行时长计算所述Redis实例的内存量达到预设最大缓存阈值的预估时间;
转移模块30,用于读取所述当前Redis实例的当前运行时间,在所述当前运行时间与所述预估时间的时长差值处于预设时间差值范围时,按照预设分配比例从所述当前Redis实例中取出部分内存量作为目标迁移内存量,将所述目标迁移内存量转移到所述备用Redis实例,并确定所述当前Redis实例中未转移出去的当前剩余内存量;
监控模块40,用于根据所述当前Redis实例中所述当前剩余内存量对应的数据参数、以及所述备用Redis实例中的所述目标迁移内存量对应的数据参数生成监控数据,对所述监控数据进行展示。
可理解的是,本实施例的数据监控装置可以是一种用于进行数据监控的应用程序软件,并装载于所述服务器中,本实施例的数据监控装置的具体实施方式请参照上述数据监控方法实施例,本实施例在此不予赘述。
此外,本发明实施例还提出一种存储介质,所述计算机可读存储介质上存储有数据监控程序,所述数据监控程序被处理器执行时实现如上文所述数据监控方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种数据监控方法,其特征在于,所述方法包括以下步骤:
服务器轮询本地缓存数据库Redis实例,获取轮询到的当前Redis实例对应的数据参数,所述数据参数至少包括所述当前Redis实例的当前内存量、所连接的客户端数量以及历史运行时长;其中,所述服务器至少具有一个备用Redis实例;
根据所述当前内存量、所述连接的当前客户端数量以及所述历史运行时长计算所述Redis实例的内存量达到预设最大缓存阈值的预估时间;
读取所述当前Redis实例的当前运行时间,在所述当前运行时间与所述预估时间的时长差值处于预设时间差值范围时,按照预设分配比例从所述当前Redis实例中取出部分内存量作为目标迁移内存量,将所述目标迁移内存量转移到所述备用Redis实例,并确定所述当前Redis实例中未转移出去的当前剩余内存量;
根据所述当前Redis实例中所述当前剩余内存量对应的数据参数、以及所述备用Redis实例中的所述目标迁移内存量对应的数据参数生成监控数据,对所述监控数据进行展示。
2.如权利要求1的方法,其特征在于,所述根据所述当前内存量、所述连接的当前客户端数量以及所述历史运行时长计算所述Redis实例的内存量达到预设最大缓存阈值的预估时间,具体包括:
获得当前Redis实例已连接过的历史客户端的总数量,以及所述当前Redis实例的预设最大缓存阈值;
根据所述当前内存量、所述已连接过的客户端的总数量以及所述历史运行时长计算所述当前Redis实例的每个客户端在平均时间内的内存分配量;
根据所述当前客户端数量、所述预设最大缓存阈值、以及所述每个客户端在平均时间的内存分配量计算所述Redis实例的内存量达到预设最大缓存阈值的预估时间。
3.如权利要求2的方法,其特征在于,通过公式(1)计算所述当前Redis实例的每个客户端在平均时间内的内存分配量,所述公式(1)为:
Figure FDA0004069474860000021
其中,Clinet-total表示所述当前Redis实例已连接过的客户端的总数量,V-client-m表示每个客户端在平均时间内的内存分配量,T-total表示所述当前Redis实例的运行的历史运行时长,Memory-now表示所述当前Redis实例的当前内存量。
4.如权利要求3的方法,其特征在于,通过公式(2)计算所述Redis实例的内存量达到预设最大缓存阈值的预估时间,所述公式(2)为:
Figure FDA0004069474860000022
其中,T-cost表示所述预估时间,k表示预设转换系数,Memory-max表示所述当前Redis实例的预设最大缓存阈值,Clinet-now表示所述当前Redis实例所连接的当前客户端数量。
5.如权利要求1-4任一项所述的方法,其特征在于,所述将所述目标迁移内存量转移到所述备用Redis实例,并确定所述当前Redis实例中未转移出去的当前剩余内存量之后,还包括:
对所述当前Redis实例进行碎片清理,获取经碎片清理后的当前Redis实例的当前内存可用空间;
在所述当前内存可用空间达到预设内存可用阈值时,将所述目标迁移内存量从所述备用Redis实例中转移到所述当前Redis实例。
6.如权利要求1-4任一项所述的方法,其特征在于,所述将所述目标迁移内存量转移到所述备用Redis实例,并确定所述当前Redis实例中未转移出去的当前剩余内存量之后,还包括:
将所述目标迁移内存量对应的数据内容转换为JSON格式保存到所述备用Redis实例中。
7.如权利要求1-4任一项所述的方法,其特征在于,所述将所述目标迁移内存量转移到所述备用Redis实例,并确定所述当前Redis实例中未转移出去的当前剩余内存量之后,还包括:
确定所述目标迁移内存量对应的进程标识以及对应的数据类型;
根据所述进程标识和所述数据类型生成恢复文件,将所述恢复文件保存到内存镜像文件中。
8.一种数据监控装置,其特征在于,所述数据监控装置包括:
轮询模块,用于服务器轮询本地缓存数据库Redis实例,获取轮询到的当前Redis实例对应的数据参数,所述数据参数至少包括所述当前Redis实例的当前内存量、所连接的客户端数量以及历史运行时长;其中,所述服务器至少具有一个备用Redis实例;
计算模块,用于根据所述当前内存量、所述连接的当前客户端数量以及所述历史运行时长计算所述Redis实例的内存量达到预设最大缓存阈值的预估时间;
转移模块,用于读取所述当前Redis实例的当前运行时间,在所述当前运行时间与所述预估时间的时长差值处于预设时间差值范围时,按照预设分配比例从所述当前Redis实例中取出部分内存量作为目标迁移内存量,将所述目标迁移内存量转移到所述备用Redis实例,并确定所述当前Redis实例中未转移出去的当前剩余内存量;
监控模块,用于根据所述当前Redis实例中所述当前剩余内存量对应的数据参数、以及所述备用Redis实例中的所述目标迁移内存量对应的数据参数生成监控数据,对所述监控数据进行展示。
9.一种服务器,其特征在于,所述服务器包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据监控程序,所述数据监控程序配置为实现如权利要求1至7中任一项所述的数据监控方法的步骤。
10.一种存储介质,其特征在于,所述存储介质上存储有数据监控程序,所述数据监控程序被处理器执行时实现如权利要求1至7中任一项所述数据监控方法的步骤。
CN201810953206.4A 2018-08-21 2018-08-21 数据监控方法、装置、服务器及存储介质 Active CN110019372B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810953206.4A CN110019372B (zh) 2018-08-21 2018-08-21 数据监控方法、装置、服务器及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810953206.4A CN110019372B (zh) 2018-08-21 2018-08-21 数据监控方法、装置、服务器及存储介质

Publications (2)

Publication Number Publication Date
CN110019372A CN110019372A (zh) 2019-07-16
CN110019372B true CN110019372B (zh) 2023-04-11

Family

ID=67188437

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810953206.4A Active CN110019372B (zh) 2018-08-21 2018-08-21 数据监控方法、装置、服务器及存储介质

Country Status (1)

Country Link
CN (1) CN110019372B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111580959B (zh) * 2020-04-26 2023-02-28 Oppo(重庆)智能科技有限公司 一种数据写入方法、数据写入装置、服务器及存储介质
CN112131179B (zh) * 2020-09-23 2023-11-21 平安科技(深圳)有限公司 任务状态检测方法、装置、计算机设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107832169A (zh) * 2017-08-09 2018-03-23 平安壹钱包电子商务有限公司 内存数据迁移方法、装置、终端设备和存储介质
CN108234170A (zh) * 2016-12-15 2018-06-29 北京神州泰岳软件股份有限公司 一种服务器集群的监控方法和装置
CN108304553A (zh) * 2018-02-01 2018-07-20 平安普惠企业管理有限公司 数据迁移方法、装置、计算机设备和存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9699205B2 (en) * 2015-08-31 2017-07-04 Splunk Inc. Network security system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108234170A (zh) * 2016-12-15 2018-06-29 北京神州泰岳软件股份有限公司 一种服务器集群的监控方法和装置
CN107832169A (zh) * 2017-08-09 2018-03-23 平安壹钱包电子商务有限公司 内存数据迁移方法、装置、终端设备和存储介质
CN108304553A (zh) * 2018-02-01 2018-07-20 平安普惠企业管理有限公司 数据迁移方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN110019372A (zh) 2019-07-16

Similar Documents

Publication Publication Date Title
CN109218133B (zh) 网络速度测试系统、方法、装置及计算机可读存储介质
CN111158613B (zh) 基于访问热度的数据块存储方法、装置及存储设备
US20180341527A1 (en) Task deployment method, task deployment apparatus, and storage medium
CN110471749B (zh) 任务处理方法、装置、计算机可读存储介质和计算机设备
CN109992406B (zh) 图片请求方法、响应图片请求的方法及客户端
CN109740089A (zh) 数据采集方法、装置、系统、可读存储介质及电子设备
CN109800204B (zh) 数据分配方法及相关产品
US10761888B2 (en) Method for deploying task to node based on execution completion point, task deployment apparatus and storage medium
CN111797091A (zh) 数据库中数据查询的方法、装置、电子设备和存储介质
CN110019372B (zh) 数据监控方法、装置、服务器及存储介质
CN110851987B (zh) 基于加速比预测计算时长的方法、装置和存储介质
CN111159131A (zh) 性能优化方法、装置、设备及计算机可读存储介质
CN109391658B (zh) 一种账号数据同步方法及其设备、存储介质、终端
CN113377817A (zh) 数据处理方法、系统、设备及存储介质
CN106941509B (zh) 用户信息流的请求方法及装置
CN110933070A (zh) 一种用户识别方法、系统、设备及计算机可读存储介质
CN110955460A (zh) 一种服务进程启动方法、装置、电子设备和存储介质
CN115563160A (zh) 数据处理方法、装置、计算机设备和计算机可读存储介质
US9996372B2 (en) Information processing apparatus, information processing system and program
CN111680014B (zh) 共享文件的获取方法、装置、电子设备及存储介质
US9270742B2 (en) Computer system and control method of computer system
CN110263110B (zh) 基于抽稀算法的地理空间数据加载方法、设备及存储介质
CN108804195B (zh) 一种页面显示方法、装置、服务器及客户端
CN108269104B (zh) 媒体信息投放方法、投放引擎服务器和媒体信息投放系统
CN109308653B (zh) 避免客户端访问服务器拥堵的方法、终端及存储介质

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