CN104516786A - 信息处理装置、故障避免方法和程序存储介质 - Google Patents

信息处理装置、故障避免方法和程序存储介质 Download PDF

Info

Publication number
CN104516786A
CN104516786A CN201410510736.3A CN201410510736A CN104516786A CN 104516786 A CN104516786 A CN 104516786A CN 201410510736 A CN201410510736 A CN 201410510736A CN 104516786 A CN104516786 A CN 104516786A
Authority
CN
China
Prior art keywords
thread
unit
fault
time
storer
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
CN201410510736.3A
Other languages
English (en)
Other versions
CN104516786B (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Publication of CN104516786A publication Critical patent/CN104516786A/zh
Application granted granted Critical
Publication of CN104516786B publication Critical patent/CN104516786B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/008Reliability or availability analysis
    • 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/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
    • G06F11/3433Recording 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 for load management
    • 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/0706Error 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 the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0715Error 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 the processing taking place on a specific hardware platform or in a specific software environment in a system implementing multitasking
    • 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/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • 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/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • 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
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及一种信息处理装置、故障避免方法和程序存储介质。该信息处理装置包括检测单元和避免单元。所述检测单元监视被分配到进程的存储器容量的利用率和用于处理请求所用的处理时间。基于监视结果,检测单元检测出在信息处理装置中故障有可能出现的状态。当检测出其中故障有可能出现的状态时,避免单元执行故障避免处理。所述故障避免处理是下述处理:该处理将线程的上限数量从标准值降低为小于标准值的极限值,并且将线程的等待时间从标准时间延长为比标准时间更长的扩大时间。

Description

信息处理装置、故障避免方法和程序存储介质
本申请基于并且要求于在2013年9月27日提交的日本专利申请No.2013-201451和在2014年9月1日提交的日本专利申请No.2014-176924的优先权权益,其公开通过引用被整体并入在此。
技术领域
本发明涉及一种避免其中因为计算机的处理延迟或存储器不足导致在计算机中出现故障的情况的技术。
背景技术
当信息处理装置(计算机)例如执行计算机程序(也简称为程序)时,该信息处理装置产生作为执行程序的单位的多个进程。另外,该信息处理装置在该处理中产生作为其中执行进程的单位的多个线程。
在这种信息处理装置中,当延迟例如在进程内的一个线程的处理时,该延迟不利地影响在同一进程内的其它线程的处理。因此,例如,诸如进程以异常方式结束的故障容易在信息处理装置中出现。
而且,也当向进程分配的存储器容量不足时,容易在信息处理装置中出现进程以异常方式结束的相同的故障。
参考文献1(日本特开专利申请公布No.H10-049219)公开了一种技术,其中,计算机检测故障有可能在计算机中出现的状态。参考文献2(日本特开专利申请公布No.2007-226399)公开了一种技术,其中,垃圾收集处理(以下也称为GC处理)用于计算机检测其中有可能在计算机中出现故障的状态。GC处理是下述处理,其中,当与程序的处理相关联的存储器区域当在执行该程序的同时即使在程序结束后也保持与该程序的处理相关联时,计算机取消(释放)该关联。在参考文献2中,计算机通过下述方式来检测故障有可能在计算机中出现的状态:测量其中执行GC处理的时间间隔和在GC处理后在存储器容量上的增大,并且将那些测量值与阈值作比较。
在参考文献3(日本特开专利申请公布No.2008-077266)和参考文献4(日本特开专利申请公布No.2008-250669)中,公开了方法,其中,基于在服务器上的消息处理时间的预测值来控制在服务器上的线程的上限数量。而且,在参考文献3和4中,也公开了方法,其中,基于在多个网络服务器中的请求的处理状态来控制分别连接到多个网络服务器的终端的上限数量。
在参考文献1至4中,没有关于下述技术的无论任何说明:该技术避免因为在线程的处理中的延迟或被分配到进程的存储器容量的不足导致在计算机中出现故障的情况。
发明内容
本发明的主要目的是提供一种技术,该技术避免因为在线程的处理中的延迟或被分配到进程的存储器容量的不足导致的在信息处理装置(计算机)中的故障。
换句话说,根据本发明的信息处理装置的一个方面包括:
检测单元,所述检测单元基于被分配给进程的存储器容量的利用率和由线程执行与由所述进程接收的请求相对应的处理所花费的处理时间之一或该两者,来检测出其中故障有可能出现的状态,所述进程是用于在其中执行计算机程序的单位,所述线程由所述进程产生的并且是用于在其中执行所述处理的单位;以及
避免单元,当检测出其中故障有可能出现的状态时,所述避免单元执行故障避免处理,所述故障避免处理:将由所述进程产生并且能够属于所述进程的线程的上限数量从标准值降低到小于所述标准值的极限值,并且将所述线程在完成处理后必须等待直到开始个别的处理的等待时间从标准时间延长为长于所述标准时间的扩大时间。
在根据本发明的故障避免方法的一个方面中,
基于被分配给进程的存储器容量的利用率和由线程执行与由所述进程接收的请求相对应的处理所花费的处理时间之一或该两者,计算机检测出其中故障有可能出现的状态,所述进程是用于在其中执行计算机程序的单位,所述线程由所述进程产生的并且是用于在其中执行所述处理的单位;以及
当检测出其中故障有可能出现的状态时,所述计算机将由所述进程产生并且能够属于所述进程的线程的上限数量从标准值降低为小于所述标准值的极限值,并且所述计算机将所述线程在完成处理后必须等待直到开始个别的处理的等待时间从标准时间延长为长于所述标准时间的扩大时间。
附图说明
通过结合附图的下面的详细说明,本发明的示例性特征和优点将变得清楚,在附图中:
图1是以简化方式描述根据本发明的第一示例性实施例的信息处理装置的配置的框图;
图2是以简化方式描述根据本发明的第二示例性实施例的信息处理装置的配置的框图;
图3是以简化方式描述第四示例性实施例的信息处理装置的配置的框图;
图4是图示在第四示例性实施例中的、在存储器中设置的存储单元的示例的图;
图5是图示在第四示例性实施例中的故障应对单元的配置的框图;
图6是描述在第四示例性实施例中的延迟检测单元的操作示例的流程图;
图7是描述在第四示例性实施例中的存储器不足检测单元的操作示例的流程图;以及
图8是描述在第四示例性实施例中的避免单元的操作示例的流程图。
具体实施方式
以下,将参考附图来描述根据本发明的示例性实施例。
[第一示例性实施例]
图1是以简化方式描述根据本发明的第一示例性实施例的信息处理装置的配置的框图。第一示例性实施例的信息处理装置101是设有例如中央处理单元(CPU)102的计算机。CPU102通过下述方式来控制信息处理装置101的一般操作:读取在存储装置(未示出)中存储的计算机程序(程序),并且执行该程序。
在该第一示例性实施例中,信息处理装置101(CPU102)产生作为其中执行程序的单位的多个进程。进程是CPU102的功能单位之一,并且设有管理进程的操作(处理)的功能。例如,进程(CPU102)产生(设置)作为其中执行与由进程接收的请求对应的处理的单位的线程。通常,该进程因为执行多个处理单位所以能够产生多个线程。进程能够设有的线程的上限数量被预先设置。
而且,向信息处理装置101内置存储器(未示出),并且,从存储器向进程分配可用存储器区域(存储器容量)。从所分配的存储器区域,进程分配由线程使用的存储器区域(存储器容量)。
在该第一示例性实施例中,信息处理装置101包括作为由执行程序的CPU102实现的功能单位的检测单元(检测部件)103和避免单元(避免部件)104。检测单元103设有下述功能,该功能用于监视向进程分配的存储器容量的利用率和从当线程接收到请求直到完成与请求对应的处理时所花费的处理时间之一或该两者。另外,检测单元103设有下述功能,该功能用于基于监视结果来检测在信息处理装置101(CPU102)中的故障有可能出现的状态(以下,也称为故障相关状态)。
避免单元104设有当检测出故障有可能出现的状态(故障相关状态)时执行故障避免处理的功能。故障避免处理是下述处理,该处理将线程的上限数量从标准值降低为小于该标准值的极限值,并且将线程等待时间从标准时间延长为比该标准时间更长的扩大时间。等待时间是线程必须在完成处理后等待直到开始个别的处理的时间。
第一示例性实施例的信息处理装置101能够通过设有如上所述的配置(功能)而实现下面的有益效果。换句话说,在该第一示例性实施例中,检测单元103基于存储器容量利用率和线程处理时间之一或该两者来检测故障相关状态。有可能通过存储器容量利用率来指示存储器不足状态,并且通过线程处理时间来指示处理的处理延迟状态。在信息处理装置101中出现的故障(其中,正常操作不可能的状态)的主要原因是处理被延迟,并且存储器容量不足。如上所述,该第一示例性实施例的信息处理装置101能够通过使用存储器容量利用率和处理时间之一或该两者来适当地监视存储器不足状态和处理延迟状态。因此,信息处理装置101能够精确地检测故障相关状态。
而且,当检测出故障相关状态时,信息处理装置101减少线程上限数量,并且延长线程等待时间。换句话说,信息处理装置101能够通过降低线程上限数量来抑制执行处理的线程的数量,并且能够通过延长线程等待时间来抑制并行执行的线程的数量。因此,信息处理装置101能够抑制在CPU102上的负载以改善故障相关状态。换句话说,信息处理装置101能够实现避免通过存储器不足或处理延迟导致的故障出现的情况的效果,而不停止操作(在继续操作的同时)。
[第二示例性实施例]
以下,将描述根据本发明的第二示例性实施例。
图2是以简化方式描述第二示例性实施例的信息处理装置的配置的框图。该信息处理装置120是应用服务器(计算机),并且能够经由信息通信网络150与多个客户端160进行通信。在图2中与信息通信网络150和客户端160一起描述信息处理装置120。客户端160例如是个人计算机或个人数字助理(PDA)。
广义而言,第二示例性实施例的信息处理装置120包括控制装置121和存储装置122。存储装置122是存储计算机程序(程序)和数据的存储介质。控制装置121设有例如CPU,并且通过CPU执行从存储装置122读取的计算机程序来控制信息处理装置120的一般操作。
控制装置121设有下述功能:当执行程序(例如,应用程序)时,作为功能单位产生作为程序的执行单位的多个进程130。注意,在图2中仅描述了一个进程130,以便简化说明。
当被产生时,进程130设有产生作为其中执行处理的单位的多个线程(未示出)的功能。当进程130首先产生线程时的线程的数量被预先设置为初始值。
检测单元103包括管理单元131,其管理进程130的操作。例如,当经由信息通信网络150从客户端160接收到请求时,管理单元131输出被引导到一个等待线程的请求。该接收到该请求的线程执行与该请求对应的处理。
而且,当从线程接收到处理结果(响应)时,管理单元131向发送请求的原始客户端160返回处理结果。
另外,当接收到请求并且没有等待线程时,管理单元131产生新的线程。然而,预先设置能够属于进程130的线程的上限数量。因此,当属于进程130的线程的数量达到上限时,管理单元131不能产生新的线程。因为该原因,当接收到请求,没有等待线程,并且新的线程不能被产生时,管理单元131存储该请求。然后,当完成处理并且进入等待状态的线程产生时,管理单元131输出被引导到线程的请求。
另外,当存在进入等待状态的线程,并且属于进程130的线程的数量超过初始值时,管理单元131删除在等待状态中的线程。
作为存储介质的存储器140被内置到控制装置121内。在存储器140中设置了作为堆存储器的存储区域。控制装置121设有下述功能:当产生进程130时,从作为进程区域的存储器140的堆存储器向进程130的每一个分配可用存储区域(容量)。每一个进程区域在其中存储与该区域被分配(相关联)到的进程130相关的数据。例如,在存储器140中的每一个处理区域在其中存储能够在相关联的进程130中产生的线程的上限数量。而且,每一个进程区域在其中存储关于线程等待时间的信息。该线程等待时间是线程必须在完成处理后等待直到开始个别的处理的时间。另外,每一个进程区域在其中存储关于该区域的存储容量(存储器容量)的信息。另外,每一个进程区域在其中存储属于每一个进程的线程的数量。当管理单元131产生线程或删除线程时,执行该处理的管理单元131更新线程的数量。另外,管理单元131设有下述功能:当产生线程时,从存储器140的进程区域向线程分配所产生的线程能够使用的区域。每一个进程区域在其中存储诸如向每一个线程分配的区域的存储容量(存储器容量)的信息。而且,管理单元131设有下述功能:当线程开始处理时,在被分配到开始处理的线程所属于的进程130的进程区域中写入用于指示作为开始时间的开始处理的时间的信息。另外,每一个进程区域具有其中写入的等待进程的数量。通过管理单元131来更新等待进程的数量。
在该第二示例性实施例中,控制装置121另外包括作为功能单位的检测单元(检测部件)132、避免单元(避免部件)133和恢复单元134。
检测单元132设有计算在存储器140中的每一个进程区域的利用率(存储器容量利用率)和每一个进程的线程的处理时间的功能。作为具体示例,检测单元132从存储器140读取关于被分配到每一个进程130的进程区域的存储器容量M的信息。而且,在每一个进程130中,检测单元132计算作为所使用容量m的向每一个线程分配的存储器容量的总量。检测单元132然后计算作为存储器容量利用率的、所使用容量m相对于与每一个进程130相关联的进程区域的存储器容量M的比率Rm(Rm=m+M)。在每一个预定时间间隔Th(例如,600秒)执行存储器容量利用率Rm的计算。
而且,当基于管理单元131的管理信息来检测线程完成处理时,检测单元132计算作为处理时间Tr的、由完成处理的线程执行处理所花费的时间。换句话说,管理单元131通过下述方式来计算线程处理时间Tr:从完成处理的线程完成处理的时间减去在存储器140中写入的开始时间。
另外,检测单元132设有下述功能:使用所计算的存储器容量利用率Rm或线程处理时间Tr来检测信息处理装置120处于故障有可能出现的状态(故障相关状态)。具体上,检测单元132确定对于每一个进程130计算的存储器容量利用率Rm是否等于或大于预定存储器阈值Pm(例如,0.85(85%))。预先在存储器140中登记存储器阈值Pm。
然后,当确定存储器容量利用率Rm等于或大于存储器阈值Pm时,检测单元132检测出信息处理装置120因为存储器不足而处于故障相关状态中。
而且,检测单元132确定所计算的线程处理时间Tr是否等于或大于预定延迟阈值Pt(例如,40秒)。预先在存储器140中登记延迟阈值Pt。
然后,当确定线程处理时间Tr等于或大于延迟阈值Pt时,检测单元132检测出信息处理装置120因为处理延迟而处于故障相关状态中。
顺便提及,即使当检测单元132检测出指示故障相关状态的存储器不足或处理延迟时,也存在存储器不足或处理延迟是暂时的并且不导致故障的情况。考虑到这一点,在该第二示例性实施例中,检测单元132设有验证该检测的功能。例如,当基于存储器容量利用率Rm而检测出故障相关状态时,检测单元132监视在预定存储器验证时间段(例如,300秒)上的存储器容量利用率Rm。在该存储器验证时间段中,检测单元132缩短其中计算存储器容量利用率Rm的时间间隔。例如,取代计算每一个时间间隔Th(例如,600秒)的存储器容量利用率Rm,检测单元132对于短于时间间隔Th的每一个时间间隔Ts(例如,60秒)执行计算。另外,检测单元132将所计算的存储器容量利用率Rm与验证存储器阈值Ptm作比较。验证存储器阈值Ptm可以与存储器阈值Pm相同,或者可以不同。作为示例,验证存储器阈值Ptm被设置为比存储器阈值Pm(例如,0.85(85%))更高的值(例如,0.9(90%))
当在存储器验证时间段期间确定存储器容量利用率Rm不变得等于或大于验证存储器阈值Ptm时,检测单元132确定它暂时在存储器容量利用率Rm增大为等于或大于存储器阈值Pm的值的状态中。相反,当在存储器验证时间段期间确定存储器容量利用率Rm等于或大于验证存储器阈值Ptm时,检测单元132确定因为存储器不足而在信息处理装置120中容易出现故障。换句话说,检测单元132确定故障相关状态的检测(确定)。
而且,当基于线程处理时间Tr来检测出故障相关状态时,检测单元132执行监视,以便验证在预定延迟验证时间段(例如,300秒)上的线程处理时间Tr。例如,也在延迟验证时间段中,检测单元132计算由完成处理的线程执行处理所花费的处理时间Tr,并且以与如上所述相同的方式将处理时间Tr与延迟阈值Pt作比较。然后,当在延迟验证时间段期间没有其中处理时间Tr变得等于或大于延迟阈值Pt的线程时,检测单元132确定线程的处理仅暂时被延迟。
相反,当检测出在延迟验证时间段期间存在其中处理时间Tr变得等于或大于延迟阈值Pt的线程时,检测单元132确定被延迟的线程所属于的进程130的整体是否处于延迟状态中。例如,检测单元132从存储器140读取属于所延迟的线程所属于的进程(验证目标进程)130的线程Sa的总数。而且,检测单元132从存储器140读取作为属于验证目标进程130的线程的等待线程St(对于请求的等待状态)的数量。检测单元132然后计算作为等待比的、作为等待线程St的数量相对于线程Sa的总数的比率Rs(Rs=St÷Sa),并且将等待比率Rs与预定线程阈值Ps(例如,0.1(10%))作比较。当等待比率Rs小于线程阈值Ps时,检测单元132确定验证目标进程的整个处理具有要被延迟的趋势。换句话说,检测单元132确认故障相关状态的检测(确定)。
避免单元133设有下述功能:当检测单元132确认故障相关状态的确定时,执行避免故障的处理(故障避免处理)。在该第二示例性实施例中,避免单元133执行作为故障避免处理的、降低线程的上限数量并且延长线程等待时间的处理。换句话说,在存储器140中,预先在与存储由管理单元131引用的线程的上限数量的存储区域分离的存储区域中登记线程的上限数量的标准值(例如,30)和小于标准值的极限值(例如,20)。注意,对于该标准值和极限值设置考虑到应用程序的内容和控制装置121的性能等的适当数值。而且,当产生进程时,将标准值在存储器140中的进程区域中写入作为被管理单元131引用的线程的上限数量。
作为故障避免处理,避免单元133将在存储器140中的线程的上限数量从标准值(例如,30)改变为极限值(例如,20)。
另外,在存储器140中,在与用于存储由管理单元131引用的线程等待时间的存储区域分离的存储区域中预先登记等待时间的标准时间(例如,0秒)和比标准时间长的扩大时间(例如,5秒)。注意,对于该标准时间和该扩大时间设置考虑到控制装置121的性能等的适当时间。而且,当产生进程时,将标准时间在存储器140中的进程区域中写入作为由管理单元131引用的线程等待时间。
作为故障避免处理,避免单元133将在存储器140中的线程等待时间从标准时间(例如,0秒)改变为扩大时间(例如,5秒)。
进程130的管理单元131在引用关于在存储器140中登记的线程的上限数量和等待时间的信息时管理线程的产生和线程的处理开始定时。
如上所述,因为通过避免单元133改变了由管理单元131引用的线程的上限数量和等待时间,所以抑制了属于进程130的线程的数量,并且线程等待时间增大。因此,并行执行处理的线程的数量降低,并且因此抑制了在信息处理装置120上的负荷。因此,信息处理装置120(避免单元133)能够避免由存储器不足或处理延迟引起的故障的出现。
恢复单元134设有下述功能:在避免单元133执行故障避免处理后,将被故障避免处理改变的部分恢复到原始状态。换句话说,当基于存储器容量利用率Rm执行故障避免处理时,恢复单元134以与检测单元132相同的方式来监视存储器容量利用率Rm。然后,当检测出存储器容量利用率Rm小于存储器阈值Pm时,恢复单元134将线程的上限数量恢复到标准值,并且将线程等待时间恢复到标准时间。而且,当基于线程处理时间Tr来执行故障避免处理时,恢复单元134以与检测单元132相同的方式来监视线程处理时间Tr。然后,当检测出线程处理时间Tr比延迟阈值Pt短时,恢复单元134将线程的上限数量恢复到标准值,并且将线程等待时间恢复到标准时间。
如在第一示例性实施例中,该第二示例性实施例的信息处理装置120能够实现抑制其中由存储器不足或处理延迟导致的故障出现的情况的效果。
而且,在该第二示例性实施例中,信息处理装置120设有当检测出在故障相关状态中时验证检测结果的功能。因此,有可能增大用于检测故障相关状态的精度。
另外,作为故障避免处理,信息处理装置120执行下述处理:通过抑制线程的上限数量并且延长线程等待时,降低负荷,而不停止操作(在继续操作的同时)。因此,在信息处理装置120中的故障避免处理对于其中期望连续操作的信息处理装置很有效。另外,检测单元132计算在验证时间段期间的存储器容量利用率Rm的时间间隔Ts比通常时间间隔Th更短。因此,信息处理装置120(检测单元132)能够迅速地验证存储器不足状态。而且,因为在信息处理装置120(检测单元132)中使得计算存储器容量利用率Rm的时间间隔对于除了验证时间段之外的时间段更长,所以能够防止在信息处理装置120上的负荷增大。
[第三示例性实施例]
以下,描述根据本发明的第三示例性实施例。注意,在第三示例性实施例中,向具有与在第二示例性实施例中相同的名称的部分附加了相同的附图标记,并且省略那些共同部分的重复说明。
在该第三示例性实施例中,当检测单元132在预定时间内确认基于存储器容量利用率Rm的故障相关状态的检测和基于线程处理时间Tr的故障相关状态的检测时,避免单元133执行故障避免处理。
除了在第三示例性实施例的信息处理装置120中的前述的配置(功能)与在第二示例性实施例中相同。该第三示例性实施例的信息处理装置120也能够实现与在第二示例性实施例中相同的效果。
而且,当在预定时间内检测出可能导致故障的存储器不足和处理延迟两者时,该第三示例性实施例的信息处理装置120执行故障避免处理。因此,信息处理装置120当故障出现的风险较高时执行故障避免处理。
注意在第二和第三示例性实施例中,检测单元132能够检测存储器不足和处理延迟两者。相反,检测单元132可以被配置使得检测存储器不足或处理延迟。在该情况下,能够减少检测单元132的处理。
而且,除了第二或第三示例性实施例之外,控制装置121可以设有获得与故障相关的信息的功能。例如,在避免单元133因为由检测单元132检测出的线程处理延迟或存储器不足而执行故障避免处理之前,控制装置121获取诸如下述的与故障相关的信息。具体地说,当检测出线程处理延迟时,控制装置121获取被延迟的线程的堆栈踪迹。而且,当检测出存储器不足时,控制装置121在那个时间获取存储器140的转储(状态信息)。以这种方式,避免单元133在获取该信息后执行故障避免处理。
[第四示例性实施例]
以下,描述第四示例性实施例。
图3是以简化方式描述第四示例性实施例的信息处理装置的配置的框图。该第四示例性实施例的信息处理装置是服务器装置(计算机)10,并且经由信息通信网络(网络)70连接到多个客户端30。而且,服务器装置10连接到数据库60。
客户端30包括:诸如键盘的输入部件,用于用户输入信息;以及,诸如显示器的输出部件,用于显示各种信息。例如,个人计算机、平板类型的终端和个人数字助理(PDA)终端被看作客户端30,然而,客户端30不限于此。
服务器装置10包括通信单元40,并且服务器装置10通过通信单元40执行与客户端30的数据的发送和接收。
服务器装置10另外包括例如CPU,并且包括作为由CPU实现的功能单位的进程11和故障应对单元100。另外,服务器装置10包括作为存储介质的存储器50。
进程11是计算机程序(程序)的执行单位,并且当执行程序时被产生。在存储器50中向所产生的进程11分配专用存储区域。虽然通常在服务器装置10中产生多个进程11,但是仅描述了一个进程11,以便简化说明。
进程11包括管理单元13。该管理单元13设有管理进程11的操作的功能。例如,当启动进程时,管理单元13产生预先被固定为初始值的在等待状态中的多个线程12。而且,管理单元13向每一个线程12附加用于识别每一个线程12的线程标识信息。另外,管理单元13从在向进程11分配的存储器50中的存储区域向所产生的线程12的每一个分配具有预定容量的存储区域。
而且,在存储器50中设置如图4中所述的存储与进程11相关的数据的存储单元。管理单元13在线程总数存储单元19中将属于进程11的线程12的数量写入作为线程的总数。而且,管理单元13在等待线程数量存储单元14中将在属于进程11的线程12中的等待线程12的数量写入作为等待线程的数量。另外,管理单元13在所分配的容量存储单元20中将在向进程11分配的存储器50内的存储区域的存储容量写入作为分配容量。另外,管理单元13在存储器使用量存储单元15中将通过相加从向进程11分配的分配容量向每一个线程12分配的存储区域的容量而获得的值写入作为存储器使用量。
也存在当需要时管理单元13产生(增加)线程12的情况。在该情况下,管理单元13从在存储器50中向进程11分配的存储区域向增加的线程12分配存储区域。而且,管理单元13更新在线程总数存储单元19中存储的线程的总数和在存储器使用量存储单元15中存储的存储器使用量。在最大线程数量存储单元16中,将能够属于进程11的线程12的预定最大数量存储为最大线程数量。管理单元13增加(产生)线程12,使得线程12的数量不超过最大线程数量。
通信单元40设有确定在多个进程11中的哪个进程传送从客户端30接收的请求的功能。该请求例如是在数据库60中检索数据的请求或更新数据的请求。
当从通信单元40接收到请求时,管理单元13将请求传送到等待准备随后的处理的等待线程线程12。接收到该请求的线程12开始与该请求对应的处理。当线程12开始处理时,管理单元13从内置到服务器装置10内的时钟机构(未示出)获取作为那时的当前时间的开始时间。管理单元13然后将该开始时间与开始处理的线程12的线程标识信息相关联,并且在线程开始时间存储单元18中写入该开始时间。而且,因为等待线程12的数量降低,所以管理单元13根据在等待线程的数量上的改变而更新在存储器50中的等待线程数量存储单元14中存储的等待线程的数量。当完成处理时,线程12将处理结果(响应)传送到管理单元13。管理单元13经由通信单元40向客户端30发回处理结果(响应)。
在接收到请求时,当属于进程11的所有线程12是处理其它请求时(换句话说,当没有等待线程12时),管理单元13产生新的线程12。然而,当属于进程11的线程12的数量达到在最大线程数量存储单元16中存储的最大线程数量时,管理单元13不能产生线程12。在该情况下,管理单元13存储该请求。其后,当检测出完成处理并且在等待准备随后处理的线程12的存在时,管理单元13将所存储的请求传送到线程12。注意,在存储器50中在处理间隔存储单元17中存储了关于预定处理间隔(等待时间)的时间信息。线程12不可能在完成处理后开始随后的处理,直到处理间隔的时间经过。
当没有存储的请求并且线程的总数超过初始值时,管理单元13删除完成处理并且在等待的线程。也在该情况下,管理单元13根据在属于进程11的线程的数量上的改变来更新在线程总数存储单元19中存储的线程的总数。而且,因为在向进程11分配的在存储器50中的存储区域中的由线程12使用的区域上的降低,所以管理单元13更新在存储器使用量存储单元15中存储的存储器使用量。
图5是以简化方式描述故障应对单元100的一个配置示例的框图。在该第四示例性实施例中,故障应对单元100包括:延迟检测单元200,其是检测单元(检测部件);存储器不足检测单元300,其是检测单元(检测部件);以及,避免单元(避免部件)400。
延迟检测单元200设有检测线程12的处理延迟的功能。图6是描述延迟检测单元200的操作示例的流程图。使用该流程图来描述延迟检测单元200的操作示例。
在该第四示例性实施例中,当管理单元13检测出完成了线程12的处理时,延迟检测单元200被通知完成处理的线程12的标识信息。基于拾接收的线程标识信息,延迟检测单元200从线程开始时间存储单元18读取关于当完成处理的线程12开始处理时的时间的信息。而且,延迟检测单元200例如从时钟机构读取关于当线程12完成处理时的时间的信息。基于所获得的时间信息,延迟检测单元200然后计算从线程12开始处理时的时间直到完成处理花费的处理时间Tr(在图6中的步骤S200)。
接下来,延迟检测单元200将所计算的处理时间Tr与作为预先提供的延迟阈值的上限Pt(例如,40秒)作比较,并且确定处理时间Tr是否等于或大于上限Pt(步骤S201)。作为该确定的结果,当确定处理时间Tr小于上限Pt时,延迟检测单元200确定线程12的处理未被延迟,并且结束操作。另一方面,当确定处理时间Tr等于或大于上限Pt时,延迟检测单元200确定很可能线程12的处理延迟。延迟检测单元200随后执行诸如下述部分的处理。延迟检测单元200读取在线程总数存储单元19中存储的线程的总数。而且,延迟检测单元200读取在等待线程数量存储单元14中存储的等待线程的数量。延迟检测单元200然后计算作为等待线程比Rs的、等待线程的数量St相对于线程的总数Sa的比率(步骤S202)。
其后,延迟检测单元200将等待线程比Rs与预定下限Ps(例如,10%)作比较,并且确定等待线程比Rs是否小于下限Ps(步骤S203)。作为该确定的结果,当确定等待线程比Rs等于或大于下限Ps时,延迟检测单元200确定对于由线程12的处理延迟引起的故障出现而言风险低,并且结束操作。相反,当确定等待线程比Rs小于下限Ps时,延迟检测单元200确定故障容易出现。在该情况下,延迟检测单元200例如在存储器50中设置的延迟标记存储单元(未示出)中写入作为延迟标记的数值“1”,用于指示由处理延迟引起的故障容易出现的检测(步骤S204)。由此,延迟检测单元200结束操作。
延迟检测单元200每当线程12完成处理时重复地执行上述操作。
存储器不足检测单元300设有用于检测有可能因为在存储器50中的存储器不足导致故障出现的状态的功能。图7是描述存储器不足检测单元300的操作示例的流程图。使用该流程图来描述存储器不足检测单元300的操作示例。
以每一个预定通常的监视时间间隔Th(例如,600秒),存储器不足检测单元300读取在存储器50中的存储器使用量存储单元15中存储的进程11的存储器使用量m。存储器不足检测单元300然后计算存储器利用率Rm,其是存储器使用量相对于向进程11分配的存储区域的容量(分配容量)M的比率(在图7中的步骤S300)。其后,存储器不足检测单元300将所计算的存储器利用率Rm与存储器阈值Pm作比较,并且确定存储器利用率Rm是否等于或大于存储器阈值Pm(步骤S301)。当确定存储器利用率Rm小于存储器阈值Pm时,存储器不足检测单元300确定对于由存储器不足引起的故障出现而言风险低,并且准备存储器利用率Rm的下一次计算。当达到计算定时时,存储器不足检测单元300重复步骤S300和其后的操作。
相反,在步骤S301中,当确定存储器利用率Rm等于或大于存储器阈值Pm时,存储器不足检测单元300缩短用于计算存储器利用率Rm的时间间隔。换句话说,存储器不足检测单元300以如上所述的每一个验证监视时间间隔Ts(例如,60秒)来计算存储器利用率Rm(步骤S302)。存储器不足检测单元300然后将所计算的存储器利用率Rm与预先提供的存储器上限Ptm作比较,并且确定存储器利用率Rm是否等于或大于存储器上限Ptm(步骤S303)。存储器上限Ptm是大于存储器阈值Pm的数值。
作为该确定的结果,当确定存储器利用率Rm小于存储器上限Ptm时,存储器不足检测单元300确定对于由存储器不足引起的故障出现而言风险低,并且执行在下面描述的操作。具体地说,存储器不足检测单元300确定是否从当开始以每一个验证监视时间间隔Ts来计算存储器利用率Rm时的时间起设置的验证时间段经过(步骤S304)。因此,当确定验证时间段未经过时,存储器不足检测单元300重复步骤S302和其后的操作。而且,当确定验证时间段经过时,存储器不足检测单元300重复步骤S300和其后的操作。
另一方面,当通过步骤S303的操作确定存储器利用率Rm等于或大于存储器上限Ptm时,存储器不足检测单元300确定因为存储器不足而容易在服务器装置10中出现故障。存储器不足检测单元300然后例如在存储器50中设置的存储器不足标记存储单元(未示出)中写入作为存储器不足标记的数值“1”,其指示由存储器不足引起的故障容易出现的检测(步骤S305)。其后,存储器不足检测单元300重复步骤S300和其后的操作。
避免单元400设有下述功能:基于延迟检测单元200和存储器不足检测单元300的检测结果来避免在服务器装置10中出现的故障。图8是描述避免单元400的操作示例的流程图。使用该流程图来描述避免单元400的操作示例。
在该第四示例性实施例中,避免单元400监视在延迟标记存储单元和存储器不足标记存储单元中写入的标记的状态。利用该监视,避免单元400确定是否在延迟标记存储单元和存储器不足标记存储单元的至少一个中写入了作为标记的数值“1”(是否存在标记)(步骤S400)。因此,当检测出存在标记时,避免单元400查看在存储器50中设置的延迟避免标记存储单元(未示出)和存储器不足避免标记存储单元(未示出)的状态。延迟避免标记存储单元是存储区域,其中,当避免单元400基于在线程12的处理中的延迟正在出现的检测来执行故障出现避免处理时要写入作为标记的数值“1”。存储器不足避免标记存储单元是存储区域,其中,当避免单元400基于存储器不足的检测来执行故障出现避免处理时要写入作为标记的数值“1”。
避免单元400查看延迟避免标记存储单元和存储器不足避免标记存储单元,以由此确定是否在那些存储单元两者中未写入作为标记的“1”(是否不存在标记)(步骤S401)。作为该确定的结果,当确定在那些存储单元两者中未写入标记“1”时,避免单元400执行故障避免处理,因为还没有执行故障避免处理(步骤S402)。换句话说,避免单元400将最大线程数量改变为低,并且将线程12的处理间隔(等待时间)改变为延长。
其后,避免单元400确定是否在延迟标记存储单元中写入作为标记的数值“1”(是否存在标记)(步骤S403)。换句话说,避免单元400确定延迟检测单元200是否检测出处理延迟和存储器不足检测单元300是否检测出存储器不足。
当在延迟标记存储单元中存在标记“1”时,避免单元400在延迟避免标记存储单元中写入作为标记的“1”(步骤S404)。其后,当基于管理单元13的操作信息(管理信息)检测出任何线程12完成处理时,避免单元400计算该处理所花费的处理时间Tr。另外,避免单元400将所计算的处理时间Tr与上限Pt(例如,40秒)作比较,并且确定处理时间Tr是否等于或小于上限Pt(步骤S405)。作为该确定的结果,当确定处理时间Tr比上限Pt长时,避免单元400重复计算处理时间Tr,并且将处理时间Tr与上限Pt作比较。
当确定处理时间Tr等于或小于上限Pt时,避免单元400删除在延迟避免标记存储单元中作为标记写入的“1”,并且写入例如“0”(步骤S406)。
另一方面,当通过步骤S403的确定操作在存储器不足标记存储单元中写入作为标记的数值“1”时,避免单元400在存储器不足避免标记存储单元中写入作为标记的数值“1”(步骤S407)。其后,避免单元400以每一个验证监视时间间隔Ts来计算存储器利用率Rm。避免单元400然后确定所计算的存储器利用率Rm是否小于存储器阈值Pm(步骤S408)。当确定存储器利用率Rm等于或大于存储器阈值Pm时,避免单元400重复计算存储器利用率Rm并且将存储器利用率Rm与存储器阈值Pm作比较。而且,当确定存储器利用率Rm小于存储器阈值Pm时,避免单元400删除在存储器短缺避免标记存储单元中作为标记写入的“1”,并且写入例如“0”(步骤S409)。
注意,当在步骤S403中在延迟标记存储单元和存储器不足标记存储单元两者中写入标记“1”时,避免单元400并行执行从步骤S404至S406的操作和从步骤S407至S409的操作。
其后,避免单元400确定是否在延迟避免标记存储单元和存储器不足避免标记存储单元两者中未写入作为标记的“1”(是否没有标记)(步骤S410)。换句话说,避免单元400确认消除了故障有可能出现的状态(故障相关状态)。避免单元400然后释放故障避免状态(步骤S411)。换句话说,避免单元400将最大线程数量和线程处理时间间隔恢复到原始数值。避免单元400然后删除在延迟标记存储单元和存储器不足标记存储单元中作为标记写入的“1”,并且写入例如“0”。
以这种方式,避免单元400执行与故障避免处理相关的操作。
如上所述配置第四示例性实施例的服务器装置10。也能够在该第四示例性实施例的服务器装置中达到与第一至第三示例性实施例的信息处理装置相同的效果。
[第五示例性实施例]
以下,描述第五实施例。注意,在该第五示例性实施例中,向具有与在第四示例性实施例中相同的名称的部分附加相同的附图标记,并且省略那些共同部分的重复说明。
在该第五示例性实施例中,避免单元400执行故障避免处理的条件与在第四示例性实施例中不同。具体地说,在第四示例性实施例中,避免单元400当检测出在线程12的处理中的延迟或存储器不足时执行故障避免处理。相反,在该第五示例性实施例中,避免单元400仅当在预定时间(例如,100秒)内检测和确认在线程12的处理时间的延迟和存储器不足时执行故障避免处理。
除了上面之外服务器装置10的配置与第四示例性实施例的服务器装置10的相同。也能够在该第五示例性实施例的服务器装置10中获得与第四示例性实施例的服务器装置10相同的效果。
实施例的以前的说明被提供来使得本领域内的技术人员能够制造和使用本发明。而且,对于这些示例性实施例的各种修改对于本领域内的技术人员容易清楚,并且,在此限定的一般原理和具体示例可以被应用到其它实施例,而不用创造性的劳动。因此,本发明不意欲限于在此所述的示例性实施例,并且要符合由权利要求和等同物限制限定的最宽范围。
而且,注意,本发明人的意愿是保留所要求保护的发明的所有等同物,即使在进行期间修改了权利要求。
有可能也如在下面的补充说明中描述上述示例性实施例的一部分或全部;然而,它们不限于下面的部分。
(补充说明1)
一种信息处理装置,包括:
当执行程序时产生并且作为程序的执行单位的进程;
在所述进程中产生并且作为所述进程的处理单位的多个线程;以及
故障应对单元,
并且进一步包括:
线程开始时间存储单元,其存储彼此相关联的线程标识信息和处理开始时间信息,所述线程标识信息识别所述线程的每一个,所述处理开始时间信息指示由所述线程标识信息指定的线程开始处理的时间;
最大线程数量存储单元,其存储作为最大线程数量的值,所述值指示能够当在所述进程中需要超过预定数量的数量的所述线程的产生时能够产生的所述线程的最大数量;以及
处理间隔存储单元,其存储作为处理间隔的值,所述值指示从所述形成完成处理的时间至是形成变得处于能够执行随后的处理的状态中的时间的时间段,其中
所述故障应对单元包括:
避免单元;以及
延迟检测单元,其具有下述功能,所述功能用于当所述线程的任何个完成处理时,基于当前时间和与所述线程的所述线程标识信息相关联地存储的所述处理开始时间信息来计算所述处理所花费的时间,并且
所述避免单元执行故障避免处理,所述故障避免处理在当所述线程的任何个完成处理时由所述延迟检测单元计算的处理时间等于或大于预定第一时间的情况下,将在所述最大线程数量存储单元中存储的所述最大线程数量从预定第一值改变为小于所述第一值的预定第二值,并且将在所述处理间隔存储单元中存储的所述处理间隔从预定第三值改变为大于所述第三值的预定第四值。
(补充说明2)
一种信息处理装置,包括:
当执行程序时产生并且作为程序的执行单位的进程;
在所述进程中产生并且作为所述进程的处理单位的多个线程;以及
故障应对单元,
并且进一步包括:
线程总数存储单元,其存储指示属于所述进程的线程的总数的值;
线程开始时间存储单元,其存储彼此相关联的线程标识信息和处理开始时间信息,所述线程标识信息识别所述线程,所述处理开始时间信息指示由所述线程标识信息指定的线程开始处理的时间;
最大线程数量存储单元,其存储作为最大线程数量的值,所述值指示能够当在所述进程中需要超过预定数量的数量的线程的产生时能够产生的线程的最大数量;
处理间隔存储单元,其存储作为处理间隔的值,所述值指示从所述线程完成处理的时间至是线程变得处于能够执行随后的处理的状态中的时间的时间段;以及
等待线程数量存储单元,其存储作为等待线程的数量的值,所述值指示等待准备随后的处理的线程的数量,其中
所述故障应对单元包括:
避免单元;以及
延迟检测单元,其设有下述功能:当所述任何线程完成处理时,基于当前时间和在所述线程开始时间存储单元中与标识所述线程的线程标识信息相关联地存储的处理开始时间信息来计算所述处理所花费的时间;以及,当所述任何线程完成处理时,计算作为等待线程比的在所述等待线程数量存储单元中存储的等待线程的数量相对于在所述线程总数存储单元中存储的线程的总数的比率;并且
所述避免单元执行故障避免处理,所述故障避免处理在当所述任何线程完成处理时由所述延迟检测单元计算的线程处理时间等于或大于预定第一时间,并且当所述任何线程完成处理时由所述延迟检测单元计算的等待线程比小于预定值的情况下,将在所述最大线程数量存储单元中存储的最大线程数量从预定第一值改变为小于所述第一值的预定第二值,并且将在所述处理间隔存储单元中存储的处理间隔从预定第三值改变为大于所述第三值的预定第四值。
(补充说明3)
根据补充说明1或2所述的信息处理装置,其中
所述避免单元在所述故障避免处理的执行后,在当所述任何线程完成数量时所述处理时间等于或小于比所述第一时间更短的预定第二时间的情况下,执行恢复处理,所述恢复处理将在所述最大线程数量存储单元中存储的最大线程数量从所述第二值改变为所述第一值,并且将在所述处理间隔存储单元中存储的处理间隔从所述第四值改变为所述第三值。
(补充说明4)
一种信息处理装置,包括:
当执行程序时产生并且作为程序的执行单位的进程;
在所述进程中产生并且作为所述进程的处理单位的多个线程;以及
故障应对单元;以及
存储单元,其包括向所述进程分配的存储区域,其中
所述存储单元存储:
分配容量,其是在向所述进程分配的在所述存储单元内的存储区域的容量;
存储器使用量,其是被所述进程在使用的存储区域的容量;
最大线程数量,其是用于指示能够被所述进程产生的线程的最大数量的值;以及
处理间隔,其是从所述线程完成处理的时间至所述线程变得处于能够执行随后的处理的状态中的时间的时间段,
所述故障应对单元包括:
避免单元;以及
存储器不足检测单元,其设有下述功能,所述功能计算作为所述存储器使用量相对于所述分配容量的比率的存储器利用率,并且
所述避免单元执行故障避免处理,在存储器不足存储单元在每个预定第一时间间隔中计算存储器利用率,并且当所述计算的存储器利用率变得等于或大于预定第一值时,所述存储器不足检测单元在比所述第一时间间隔更短的每个预定第二时间间隔中开始计算所述存储器利用率,并且所述存储器利用率在预定时间段经过之前不变得等于或小于比所述第一值更大的预定第二值的情况下,所述故障避免处理将所述进程的最大线程数量从预定第三值改变为小于所述第三值的预定第四值,并且将所述线程的处理间隔从预定第五值改变为大于所述第五值的预定第六值。
(补充说明5)
根据补充说明4所述的信息处理装置,其中
所述避免单元执行恢复处理,在所述存储器不足检测单元执行所述故障避免处理的执行后在所述第二时间间隔的每一个中计算所述存储器利用率,并且该所计算的存储器利用率变得小于所述第一值的情况下,所述恢复处理将所述进程的最小线程数量从所述第四值改变为所述第三值,并且将所述线程的处理间隔从所述第六值改变为所述第五值。
(补充说明6)
一种信息处理装置,包括:
当执行程序时产生并且作为程序的执行单位的进程;
在所述进程中产生并且作为所述进程的处理单位的多个线程;以及
故障应对单元;以及
存储单元,其包括向所述进程分配的存储区域,其中
所述存储区域存储:
分配容量,其是在向所述进程分配的存储区域的容量;
存储器使用量,其是被所述进程在使用的存储区域的容量;
处理开始时间信息,其与用于标识所述线程的线程标识信息相关联,并且指示由所述线程标识信息指定的线程开始处理的时间;
最大线程数量,其是能够被所述进程产生的线程的最大数量;以及
处理间隔,其是从所述线程完成处理的时间至所述线程变得处于能够执行随后的处理的状态中的时间的时间段,
所述故障应对单元包括:
避免单元;以及
存储器不足检测单元,其设有下述功能,所述功能计算作为所述存储器使用量相对于所述进程的分配容量的比率的存储器利用率;以及
延迟检测单元,其设有下述功能,所述功能用于当所述任何线程完成处理时,基于当前时间和与所述线程的线程标识信息相关联地存储的处理开始时间信息来计算所述处理所花费的时间,并且
所述避免单元执行故障避免处理,仅当在预定确认时间内满足下述两个条件时,所述故障避免处理将所述进程的最大线程数量从预定第四值改变为小于所述第四值的预定第五值,并且将所述线程的处理间隔从预定第六值改变为大于所述第六值的预定第七值:
第一条件,当所述线程的任何一个完成处理时,所述处理时间等于或大于预定第一时间,以及
第二条件,在每一个预定第一时间间隔中计算所述存储器利用率,并且当所述计算的存储器利用率变得等于或大于预定第一值时,开始在比所述第一时间间隔更短的每一个预定第二时间间隔中计算所述存储器利用率,并且所述存储器利用率在预定时间段经过之前不变得等于或小于比所述第一值更大的预定第二值。
(补充说明7)
一种信息处理装置,包括:
当执行程序时产生并且作为程序的执行单位的进程;
在所述进程中产生并且作为所述进程的处理单位的多个线程;以及
故障应对单元;以及
存储单元,其包括向所述进程分配的存储区域,其中
所述存储单元存储:
属于所述进程的线程的总数;
处理开始时间信息,其与用于标识所述线程的线程标识信息相关联,并且指示由所述线程标识信息指定的线程开始处理的时间;
最大线程数量,其是能够被所述进程产生的线程的最大数量;
处理间隔,其是从所述线程完成处理的时间至所述线程变得处于能够执行随后的处理的状态中的时间的时间段,
分配容量,其是在向所述进程分配的在所述存储单元内的存储区域的容量;以及
存储器使用量,其是被所述进程在使用的存储区域的容量,
所述故障应对单元包括:
避免单元;以及
存储器不足检测单元,其设有下述功能,所述功能计算作为所述存储器使用量相对于在所述进程中的分配容量的比率的存储器利用率;以及
延迟检测单元,其设有下述功能:当所述任何线程完成处理时,基于当前时间和与所述线程的线程标识信息相关联的处理开始时间信息来计算所述处理所花费的时间;以及当所述任何线程完成处理时,计算作为等待线程比的、等待准备随后的处理的线程的数量相对于在所述进程中产生的线程的数量的比率,并且
所述避免单元执行故障避免处理,仅当在预定确认时间内满足下述两个条件时,所述故障避免处理将所述进程的最大线程数量从预定第四值改变为小于所述第四值的预定第五值,并且将所述线程的处理间隔从预定第六值改变为大于所述第六值的预定第七值:
第一条件,当所述线程的任何一个完成处理时,所述处理所花费的处理时间等于或大于预定第一时间,并且所述等待线程比小于预定第一值,以及
第二条件,所述存储器不足检测单元在每一个预定第一时间间隔中计算所述存储器利用率,并且当该计算的存储器利用率变得等于或大于预定第二值时,所述存储器不足检测单元开始在比所述第一时间间隔更短的每个预定第二时间间隔中计算所述存储器利用率,并且所述存储器利用率在预定时间段经过之前不变得等于或小于比所述第二值更大的预定第三值。
(补充说明8)
根据补充说明6或7所述的信息处理装置,其中
所述避免单元在所述故障避免处理的执行后执行恢复处理,仅当满足下述两个条件时,所述恢复处理将所述进程的最大线程数量从所述第五值改变为所述第四值,并且将所述线程的处理间隔从所述第七值改变为所述第六值:
第三条件,当属于所述进程的线程的任何一个完成处理时,对于所述处理花费的处理时间等于或小于比所述第一时间更短的预定第二时间,以及
第四条件,所述存储器不足检测单元在所述第二时间间隔的每一个中计算所述存储器利用率,并且该计算的存储器利用率小于所述第一值。
(补充说明9)
一种故障避免方法,包括:
当执行程序时,产生作为所述程序的执行单位的进程;
产生属于所述进程并且作为所述进程的执行单位的多个线程;
当所述任何线程完成处理时,基于当前时间和与用于标识所述线程的线程标识信息相关联并且被存储在存储单元中的处理开始时间信息来计算对于所述处理所花费的处理时间;
当所述任何线程完成处理时,计算作为等待线程比的、在等待准备随后处理的线程的数量相对于属于所述进程的线程的总数的比率;并且
当所述计算的处理时间等于或大于预定时间,并且等待线程比小于预定值时,将所述进程的最大线程数量改变得更小,并且将所述进程的处理间隔改变得更长。
(补充说明10)
一种故障避免方法,包括:
当执行程序时,产生作为所述程序的执行单位的进程;
在每一个预定第一时间间隔中计算存储器利用率,所述存储器利用率是作为在被使用的存储容量的存储器使用量相对于向所述进程分配的存储区域的存储容量的比率;
在当所述存储器利用率变得等于或大于预定第一值,并且所述存储器利用率在预定时间段经过之前不变得等于或小于大于所述第一值的预定第二值时开始在比所述第一时间间隔更短的每一个预定第二时间间隔中开始计算所述存储器利用率的情况下,将能够属于所述进程的线程的最大数量改变得更小,并且将从所述线程完成处理的时间至所述线程变得处于能够执行随后处理的状态中的时间的处理间隔改变得更长。

Claims (11)

1.一种信息处理装置,包括:
检测单元,所述检测单元基于被分配给进程的存储器容量的利用率和由线程执行与由所述进程接收的请求相对应的处理所花费的处理时间之一或该两者,来检测出其中故障有可能出现的状态,所述进程是用于在其中执行计算机程序的单位,所述线程由所述进程产生的并且是用于在其中执行所述处理的单位;以及
避免单元,当检测出其中故障有可能出现的状态时,所述避免单元执行故障避免处理,所述故障避免处理:将由所述进程产生并且能够属于所述进程的线程的上限数量从标准值降低到小于所述标准值的极限值,并且将所述线程在完成处理后必须等待直到开始个别的处理的等待时间从标准时间延长为长于所述标准时间的扩大时间。
2.根据权利要求1所述的信息处理装置,其中,
当所述线程的处理时间被延迟了预定的延迟阈值或更多时,所述检测单元检测出其中所述故障有可能出现的状态。
3.根据权利要求1所述的信息处理装置,其中,
当所述存储器容量的利用率升高到预定的存储器阈值或更多时,所述检测单元检测出其中所述故障有可能出现的状态。
4.根据权利要求1所述的信息处理装置,其中,
所述检测单元进一步包括以下功能:当检测出其中所述故障有可能出现的状态时,监视所述线程的处理时间或者所述存储器容量的利用率,并且基于监视结果来验证所述检测是否正确,并且
当将其中所述故障有可能出现的状态确认为通过所述检测单元的验证的结果时,所述避免单元执行所述故障避免处理。
5.根据权利要求4所述的信息处理装置,其中,
当存在由所述进程产生并且属于所述进程的多个所述线程时,并且当要验证基于所述线程的处理时间的所述检测时,所述检测单元在预定的延迟验证时间段监视所述线程中的每一个线程的处理时间,将正在等待的所述线程的数量相对于属于所述进程的所述线程的总数的比率计算作为等待率,并且基于所述线程中的每一个线程的处理时间和所述等待率来验证所述检测。
6.根据权利要求4所述的信息处理装置,其中,
当通过在每一个预定的时间间隔中获取到的所述存储器容量的利用率升高到存储器阈值或升高到更多的事实而检测出其中所述故障有可能出现的状态时,并且当要验证所述检测时,所述检测单元在比其中获取到所述存储器容量的利用率的时间间隔短的每一个时间间隔中来获取所述存储器容量的利用率,并且基于所获取的存储器容量的利用率来验证所述检测。
7.根据权利要求1所述的信息处理装置,其中,
当通过所述检测单元基于所述存储器容量的利用率和所述线程的处理时间中的一个来检测出其中所述故障有可能出现的状态,并且然后,在经过预定时间段之前,基于所述存储器容量的利用率和所述线程的处理时间中的另一个来检测出其中所述故障有可能出现的状态时,所述避免单元执行故障避免处理。
8.根据权利要求1所述的信息处理装置,进一步包括恢复单元,所述恢复单元:
在所述避免单元执行所述故障避免处理后,监视所述存储器容量的利用率或者所述线程的处理时间,并且
当作为监视结果而检测出预定的改善状态时,将所述线程的上限数量恢复到所述标准值,并且还将所述线程的等待时间恢复到所述标准时间。
9.一种信息处理装置,包括:
检测部件,所述检测部件基于被分配给进程的存储器容量的利用率和由线程执行与由所述进程接收的请求相对应的处理所花费的处理时间之一或该两者,来检测出其中故障有可能出现的状态,所述进程是用于在其中执行计算机程序的单位,所述线程由所述进程产生的并且是用于在其中执行所述处理的单位;以及
避免部件,当检测出其中故障有可能出现的状态时,所述避免部件执行故障避免处理,所述故障避免处理:将由所述进程产生并且能够属于所述进程的线程的上限数量从标准值降低为小于所述标准值的极限值,并且将所述线程在完成处理后必须等待直到开始个别的处理的等待时间从标准时间延长为长于所述标准时间的扩大时间。
10.一种故障避免方法,其中:
通过计算机,基于被分配给进程的存储器容量的利用率和由线程执行与由所述进程接收的请求相对应的处理所花费的处理时间之一或该两者,来检测出其中故障有可能出现的状态,所述进程是用于在其中执行计算机程序的单位,所述线程由所述进程产生的并且是用于在其中执行所述处理的单位;以及
当检测出其中故障有可能出现的状态时,通过计算机,将由所述进程产生并且能够属于所述进程的线程的上限数量从标准值降低为小于所述标准值的极限值,并且计算机将所述线程在完成处理后必须等待直到开始个别的处理的等待时间从标准时间延长为长于所述标准时间的扩大时间。
11.一种非瞬态程序存储介质,所述非瞬态程序存储介质持有计算机程序,所述计算机程序使得计算机执行以下各处理:
基于被分配给进程的存储器容量的利用率和由线程执行与由所述进程接收的请求相对应的处理所花费的处理时间之一或该两者,来检测出其中故障有可能出现的状态,所述进程是用于在其中执行计算机程序的单位,所述线程由所述进程产生的并且是用于在其中执行所述处理的单位;以及
当检测出其中故障有可能出现的状态时,计算机将由所述进程产生并且能够属于所述进程的线程的上限数量从标准值降低为小于所述标准值的极限值,并且将所述线程在完成处理后必须等待直到开始个别的处理的等待时间从标准时间延长为长于所述标准时间的扩大时间。
CN201410510736.3A 2013-09-27 2014-09-28 信息处理装置、故障避免方法和程序存储介质 Active CN104516786B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2013201451 2013-09-27
JP2013-201451 2013-09-27
JP2014-176924 2014-09-01
JP2014176924A JP6387747B2 (ja) 2013-09-27 2014-09-01 情報処理装置、障害回避方法およびコンピュータプログラム

Publications (2)

Publication Number Publication Date
CN104516786A true CN104516786A (zh) 2015-04-15
CN104516786B CN104516786B (zh) 2019-02-19

Family

ID=52741375

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410510736.3A Active CN104516786B (zh) 2013-09-27 2014-09-28 信息处理装置、故障避免方法和程序存储介质

Country Status (3)

Country Link
US (1) US9558091B2 (zh)
JP (1) JP6387747B2 (zh)
CN (1) CN104516786B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018040115A1 (en) * 2016-09-05 2018-03-08 Telefonaktiebolaget Lm Ericsson (Publ) Determination of faulty state of storage device
CN114116237A (zh) * 2022-01-28 2022-03-01 深圳市玩物科技有限公司 一种大规模网络设备的分级自治远程管理方法

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10133827B2 (en) 2015-05-12 2018-11-20 Oracle International Corporation Automatic generation of multi-source breadth-first search from high-level graph language
US10127025B2 (en) 2015-07-22 2018-11-13 Oracle International Corporation Optimization techniques for high-level graph language compilers
US10810257B2 (en) 2015-08-27 2020-10-20 Oracle International Corporation Fast processing of path-finding queries in large graph databases
US9971570B2 (en) * 2015-12-15 2018-05-15 Oracle International Corporation Automated generation of memory consumption aware code
US10540398B2 (en) 2017-04-24 2020-01-21 Oracle International Corporation Multi-source breadth-first search (MS-BFS) technique and graph processing system that applies it
US9934287B1 (en) * 2017-07-25 2018-04-03 Capital One Services, Llc Systems and methods for expedited large file processing
US10585945B2 (en) 2017-08-01 2020-03-10 Oracle International Corporation Methods of graph-type specialization and optimization in graph algorithm DSL compilation
US10795672B2 (en) 2018-10-31 2020-10-06 Oracle International Corporation Automatic generation of multi-source breadth-first search from high-level graph language for distributed graph processing systems

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1423456A (zh) * 2001-12-03 2003-06-11 深圳市中兴通讯股份有限公司上海第二研究所 共享线程实现和调度方法
CN101382912A (zh) * 2008-09-02 2009-03-11 中国科学院软件研究所 一种面向应用服务器的资源敏感性能优化方法及其系统
CN102402459A (zh) * 2010-09-10 2012-04-04 中兴通讯股份有限公司 网管系统性能数据汇总的方法和装置
US20120174114A1 (en) * 2011-01-05 2012-07-05 Hitachi, Ltd. Method of calculating processor utilization rate in smt processor
US20120185737A1 (en) * 2010-06-07 2012-07-19 Ken Ishiou Fault detection apparatus, a fault detection method and a program recording medium

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5129080A (en) * 1990-10-17 1992-07-07 International Business Machines Corporation Method and system increasing the operational availability of a system of computer programs operating in a distributed system of computers
JP2001331348A (ja) * 2000-05-24 2001-11-30 Nec Software Kobe Ltd プロセスメモリ消費量増加傾向検出方式
US7725901B2 (en) * 2005-04-14 2010-05-25 International Business Machines Corporation Method and system for performance balancing in a distributed computer system
JP4876438B2 (ja) * 2005-05-31 2012-02-15 株式会社日立製作所 コンポーネントソフトウェアの運用方法および運用基盤
US7966514B2 (en) * 2005-09-19 2011-06-21 Millennium It (Usa), Inc. Scalable fault tolerant system
WO2007125942A1 (ja) * 2006-04-26 2007-11-08 Nippon Telegraph And Telephone Corporation 負荷制御装置およびその方法
JP2007310749A (ja) * 2006-05-19 2007-11-29 Hitachi Information Systems Ltd サーバリソース提供システム及びサーバリソース提供方法
US20090172674A1 (en) * 2007-12-28 2009-07-02 International Business Machines Corporation Managing the computer collection of information in an information technology environment
US8447859B2 (en) * 2007-12-28 2013-05-21 International Business Machines Corporation Adaptive business resiliency computer system for information technology environments
US9158606B2 (en) * 2009-01-22 2015-10-13 International Business Machines Corporation Failure repetition avoidance in data processing
JP5455111B2 (ja) * 2009-03-26 2014-03-26 日本ユニシス株式会社 流量制御装置および流量制御方法
US8424005B2 (en) * 2009-07-27 2013-04-16 International Business Machines Corporation System and method for time-aware run-time to guarantee time
WO2012124077A1 (ja) * 2011-03-16 2012-09-20 富士通株式会社 マルチコアプロセッサシステムおよびスケジューリング方法
WO2013014767A1 (ja) * 2011-07-27 2013-01-31 富士通株式会社 データ処理システム、およびスケジューリング方法
US9047396B2 (en) * 2011-10-31 2015-06-02 International Business Machines Corporation Method, system and computer product for rescheduling processing of set of work items based on historical trend of execution time
JP6019995B2 (ja) * 2012-09-24 2016-11-02 日本電気株式会社 分散システム、サーバ計算機、及び障害発生防止方法
US9342374B2 (en) * 2013-06-28 2016-05-17 Dell Products, L.P. Method of scheduling threads for execution on multiple processors within an information handling system
US9645877B2 (en) * 2013-08-21 2017-05-09 Hitachi, Ltd. Monitoring apparatus, monitoring method, and recording medium
US10334461B2 (en) * 2014-03-07 2019-06-25 Epitiro Holdings, Inc. System, device and method for testing app performance
US10061627B2 (en) * 2014-09-16 2018-08-28 Oracle International Corporation System and method for supporting waiting thread notification offloading in a distributed data grid

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1423456A (zh) * 2001-12-03 2003-06-11 深圳市中兴通讯股份有限公司上海第二研究所 共享线程实现和调度方法
CN101382912A (zh) * 2008-09-02 2009-03-11 中国科学院软件研究所 一种面向应用服务器的资源敏感性能优化方法及其系统
US20120185737A1 (en) * 2010-06-07 2012-07-19 Ken Ishiou Fault detection apparatus, a fault detection method and a program recording medium
CN102402459A (zh) * 2010-09-10 2012-04-04 中兴通讯股份有限公司 网管系统性能数据汇总的方法和装置
US20120174114A1 (en) * 2011-01-05 2012-07-05 Hitachi, Ltd. Method of calculating processor utilization rate in smt processor

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018040115A1 (en) * 2016-09-05 2018-03-08 Telefonaktiebolaget Lm Ericsson (Publ) Determination of faulty state of storage device
US11977434B2 (en) 2016-09-05 2024-05-07 Telefonaktiebolaget Lm Ericsson (Publ) Determination of faulty state of storage device
CN114116237A (zh) * 2022-01-28 2022-03-01 深圳市玩物科技有限公司 一种大规模网络设备的分级自治远程管理方法
CN114116237B (zh) * 2022-01-28 2022-05-10 深圳市玩物科技有限公司 一种大规模网络设备的分级自治远程管理方法

Also Published As

Publication number Publication date
CN104516786B (zh) 2019-02-19
US9558091B2 (en) 2017-01-31
JP2015088176A (ja) 2015-05-07
US20150095698A1 (en) 2015-04-02
JP6387747B2 (ja) 2018-09-12

Similar Documents

Publication Publication Date Title
CN104516786A (zh) 信息处理装置、故障避免方法和程序存储介质
CN108090225B (zh) 数据库实例的运行方法、装置、系统及计算机可读存储介质
US8117415B2 (en) Storage device estimating a completion time for a storage operation
CN102035697B (zh) 一种文件系统的并发连接数性能测试系统和方法
EP2488929B1 (en) Memory object relocation for power savings
US20120278533A1 (en) Semiconductor storage apparatus and method for controlling semiconductor storage apparatus
CN102207889B (zh) 命令控制方法和命令控制器
CN104407926A (zh) 一种云计算资源的调度方法
CN114564284B (zh) 虚拟机的数据备份方法、计算机设备及存储介质
CN113157411B (zh) 一种基于Celery的可靠可配置任务系统及装置
CN108763046B (zh) 线程运行监控方法、装置、计算机设备和存储介质
CN112579692A (zh) 一种数据同步方法、装置、系统、设备及存储介质
CN107707395B (zh) 一种数据传输方法、装置和系统
CN111580951A (zh) 一种任务分配方法及资源管理平台
CN109002381A (zh) 进程通信监控方法、电子装置及计算机可读存储介质
WO2008035352A2 (en) A method and a storage device estimating a completion time for a storage operation
JP4853390B2 (ja) 計測装置
US11556166B2 (en) Method for controlling energy saving, and apparatus therefor
JP5751372B2 (ja) データ処理システム、そのコンピュータプログラムおよびデータ処理方法
JP5614300B2 (ja) 処理時間予測装置、処理時間予測方法および処理時間予測プログラム
JP6885067B2 (ja) 情報処理装置及び情報処理システム
CN111752786A (zh) 压力测试过程中的数据存储方法、汇总方法、设备及介质
US20150149705A1 (en) Information-processing system
CN116400871B (zh) 碎片整理方法、装置、存储介质及电子设备
CN112965828B (zh) 多线程数据处理方法、装置、设备和存储介质

Legal Events

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