WO2014208139A1 - 異常検出装置、制御方法、及びプログラム - Google Patents

異常検出装置、制御方法、及びプログラム Download PDF

Info

Publication number
WO2014208139A1
WO2014208139A1 PCT/JP2014/055844 JP2014055844W WO2014208139A1 WO 2014208139 A1 WO2014208139 A1 WO 2014208139A1 JP 2014055844 W JP2014055844 W JP 2014055844W WO 2014208139 A1 WO2014208139 A1 WO 2014208139A1
Authority
WO
WIPO (PCT)
Prior art keywords
task
target range
target
progress
distribution
Prior art date
Application number
PCT/JP2014/055844
Other languages
English (en)
French (fr)
Inventor
理人 浅原
和世 成田
健全 劉
Original Assignee
日本電気株式会社
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 日本電気株式会社 filed Critical 日本電気株式会社
Priority to US14/900,718 priority Critical patent/US10255114B2/en
Priority to JP2015523883A priority patent/JP6191691B2/ja
Publication of WO2014208139A1 publication Critical patent/WO2014208139A1/ja

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/5083Techniques for rebalancing the load in a distributed system
    • 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/3419Recording 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 by assessing time
    • 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/3452Performance evaluation by statistical analysis
    • 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/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5009Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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

Definitions

  • the present invention relates to an abnormality detection device, a control method, and a program.
  • a distributed system has been developed in which a plurality of tasks generated by dividing a job are distributed and executed by a plurality of computers (hereinafter referred to as processing servers).
  • processing servers When the processing server is ready to execute a task, it receives a new task assignment.
  • new tasks are assigned in order from the processing server where the tasks have been completed, and therefore, it becomes easier to assign more tasks to a high-speed processing server. As a result, job execution efficiency increases.
  • Non-patent document 1 and patent documents 1 to 4 are disclosed as prior art documents disclosing a technology for assigning tasks to processing servers or technologies related thereto.
  • Non-Patent Document 1 discloses a technique for shortening the time required for processing a task being executed. Specifically, first, the time required for processing a task being executed on the processing server is calculated for two cases: 1) when the task is continued to be executed, and 2) when the task is re-executed. . If the time required for re-execution is shorter, the task is re-executed.
  • Patent Documents 1 and 2 disclose a technique for statically calculating a task allocation plan based on a task load index and a processing server performance index measured in advance.
  • Japanese Patent Application Laid-Open No. 2004-228688 divides a job into a plurality of tasks and assigns the divided tasks to a plurality of processing servers when the job completion time estimated based on the job progress status does not satisfy the job request completion time.
  • Patent Document 4 discloses a technique for assigning a task to a high-performance processing server based on a static performance index value calculated based on the configuration of the processing server.
  • the processing speed of some tasks may be temporarily reduced.
  • the cause is a failure of the processing server executing the task, a bug in the software executed on the processing server, fragmentation of data used by the task, and congestion in the network to which the processing server is connected. And so on.
  • Non-Patent Document 1 specifies a task whose processing speed is temporarily slow and controls the execution of the task.
  • Non-Patent Document 1 calculates a predicted time when a certain task is re-executed based on an average value of processing speeds in the phase of all tasks included in the same phase as the task. Therefore, the technique of Non-Patent Document 1 does not consider changes in task processing speed within the same phase.
  • An object of the present invention is to provide a technique for determining with high accuracy whether or not a task processing speed is abnormal in a distributed system.
  • the anomaly detection device is an anomaly detection device for processing tasks assigned to the server in a distributed system composed of a plurality of servers.
  • the abnormality detection apparatus includes a history acquisition unit that acquires progress history information related to the progress of the plurality of tasks at each of a plurality of recording points, a target range determination unit that determines a target range, and the history acquisition unit that acquires the history acquisition unit.
  • Distribution processing means for calculating a task speed distribution, which is a probability distribution of the processing speed of the task, using only the progress history information whose recording time is included in the target range among the progress history information, and processing of the target task
  • An abnormality determination unit that determines whether or not the processing speed of the target task is abnormal by comparing the speed and the task speed distribution;
  • the control method provided by the present invention is executed by a computer that processes a task assigned to the server in a distributed system including a plurality of servers.
  • the control method includes: a history acquisition step for acquiring progress history information regarding the progress of a plurality of tasks at each of a plurality of recording times; a target range determination step for determining a target range; and the progress acquired by the history acquisition step A distribution calculating step for calculating a task speed distribution, which is a probability distribution of the processing speed of the task, using only the progress history information in which the recording time is included in the target range among the history information, and a processing speed of the target task And the task speed distribution to determine whether or not the processing speed of the target task is abnormal.
  • the program provided by the present invention causes a computer to have a function of operating as an abnormality detection device provided by the present invention.
  • the program causes the computer to have the functions of each functional component of the abnormality detection device provided by the present invention.
  • FIG. 1 is a block diagram illustrating a configuration of an abnormality detection device according to a first embodiment.
  • 2 is a block diagram illustrating a hardware configuration of the abnormality detection apparatus according to the first embodiment.
  • FIG. 3 is a flowchart illustrating a flow of processing executed by the abnormality detection device according to the first embodiment. It is a figure which illustrates the structure of progress history information in a table format.
  • 6 is a flowchart illustrating a flow of a task speed distribution calculation process executed by the distribution calculation unit according to the first embodiment. 3 is a graph showing a task speed distribution in Example 1.
  • FIG. 10 is a flowchart illustrating a flow of a task speed distribution calculation process executed by a distribution calculation unit according to the second embodiment.
  • FIG. 6 is a block diagram illustrating an abnormality detection apparatus according to a second embodiment. 6 is a flowchart illustrating a flow of processing executed by the abnormality detection device according to the second embodiment.
  • FIG. 6 is a block diagram illustrating an abnormality detection apparatus according to a third embodiment.
  • FIG. 6 is a block diagram illustrating an abnormality detection apparatus according to a second embodiment. 6 is a flowchart illustrating a flow of processing executed by the abnormality detection device according to the second embodiment.
  • FIG. 6 is a block diagram illustrating an abnormality detection apparatus according to a second embodiment
  • FIG. 10 is a block diagram illustrating an abnormality detection apparatus according to a fifth embodiment. It is a graph for demonstrating notionally the process by the target range determination part. 10 is a flowchart illustrating the flow of processing executed by the abnormality detection device according to the fifth embodiment.
  • FIG. 10 is a block diagram illustrating an abnormality detection apparatus according to a sixth embodiment.
  • FIG. 10 is a block diagram illustrating an abnormality detection apparatus according to a seventh embodiment. It is a block diagram which shows the allocation determination apparatus which concerns on Example 3 with the use environment.
  • FIG. 10 is a diagram illustrating a processing server included in the distributed system according to the third embodiment. It is a figure which shows collectively the progress information stored in the progress information storage part of computers (c1) and (c2).
  • FIG. 1 is a block diagram illustrating an anomaly detection apparatus 2000 according to the first embodiment together with its use environment.
  • arrows indicate the flow of information.
  • each block represents a functional unit configuration, not a hardware unit configuration.
  • the distributed system 3000 includes a plurality of processing servers 3200. Each processing server 3200 is assigned a task.
  • the processing server 3200 is various computers such as a server, a personal computer (PC), and a tablet terminal.
  • the processing server 3200 executes the assigned task.
  • the abnormality detection apparatus 2000 sets a task assigned to the processing server 3200 as a processing target. Specifically, the abnormality detection device 2000 determines whether or not the processing speed of the task being executed on the processing server 3200 is abnormal.
  • the abnormality detection device 2000 is various computers, like the processing server 3200. Note that one or more tasks may be executed on the processing server 3200.
  • the processing server 3200 and the abnormality detection device 2000 are connected via a network.
  • This network may be a network constituted by wired lines, a network constituted by wireless lines, or a network constituted by mixing wired lines and wireless lines.
  • FIG. 2 is a block diagram illustrating the configuration of the abnormality detection apparatus 2000 according to the first embodiment.
  • arrows represent the flow of information.
  • each block represents a functional unit configuration, not a hardware unit configuration.
  • the abnormality detection device 2000 includes a history acquisition unit 2020, a target range determination unit 2040, a distribution calculation unit 2060, and an abnormality determination unit 2080. Each will be described below.
  • the history acquisition unit 2020 acquires progress history information.
  • the progress history information is information regarding the progress of a plurality of tasks at each of a plurality of recording points.
  • the target range determination unit 2040 determines the target range.
  • the distribution calculating unit 2060 calculates a probability distribution of task processing speeds from progress history information regarding a plurality of tasks. This probability distribution is expressed as a task speed distribution.
  • the distribution calculation unit 2060 calculates the task speed distribution using only the progress history information included in the target range whose recording time is determined by the target range determination unit 2040 among the progress history information.
  • the abnormality determination unit 2080 determines whether or not the processing speed of the determination target task is abnormal by comparing the processing speed of the determination target task and the task speed distribution.
  • a task to be determined is referred to as a target task.
  • Each functional component included in the abnormality detection device 2000 is realized as at least one hardware component, for example, individually or in combination.
  • each functional component is realized as at least one software component.
  • each functional component is realized by a combination of hardware components and software components.
  • FIG. 3 is a block diagram illustrating a hardware configuration of the abnormality detection apparatus 2000 according to the first embodiment.
  • the abnormality detection apparatus 2000 includes a bus 1020, a processor 1040, a memory 1060, a storage 1080, and a network adapter 1100.
  • the bus 1020 is a data transmission path through which the processor 1040, the memory 1060, the storage 1080, and the network adapter 1100 transmit / receive data to / from each other.
  • the processor 1040 is an arithmetic processing device such as a CPU (Central Processing Unit) and a GPU (Graphics Processing Unit).
  • the memory 1060 is a memory such as a RAM (Random Access Memory) or a ROM (Read Only Memory).
  • the storage 1080 is a storage device such as a hard disk, SSD (Solid State Drive), or memory card.
  • the storage 1080 may be a memory such as a RAM or a ROM.
  • the network adapter 1100 is an interface for the abnormality detection device 2000 to communicate with an external device via a network.
  • the network adapter 1100 may be an interface for connecting to a wireless line or an interface for connecting to a wired line.
  • the history acquisition module 1220 is a program for causing the abnormality detection device 2000 to have the function of the history acquisition unit 2020.
  • the processor 1040 implements the function of the history acquisition unit 2020 by executing the history acquisition module 1220.
  • the target range determination module 1240 is a program for causing the abnormality detection device 2000 to have the function of the target range determination unit 2040.
  • the processor 1040 implements the function of the target range determination unit 2040 by executing the target range determination module 1240.
  • the distribution calculation module 1260 is a program for causing the abnormality detection device 2000 to have the function of the distribution calculation unit 2060.
  • the processor 1040 implements the function of the distribution calculation unit 2060 by executing the distribution calculation module 1260.
  • the abnormality determination module 1280 is a program for causing the abnormality detection device 2000 to have the function of the abnormality determination unit 2080.
  • the processor 1040 implements the function of the abnormality determination unit 2080 by executing the abnormality determination module 1280.
  • the processor 1040 reads the above modules onto the memory 1060 and executes them. However, the processor 1040 may execute the modules without reading them onto the memory 1060.
  • Storage 1080 stores the above modules.
  • the hardware configuration of the abnormality detection device 2000 is not limited to the configuration shown in FIG.
  • each of the modules may be stored in the memory 1060.
  • the abnormality detection apparatus 2000 may not include the storage 1080.
  • FIG. 4 is a flowchart illustrating the flow of processing executed by the abnormality detection apparatus 2000 according to the first embodiment.
  • the target range determination unit 2040 determines the target range.
  • the history acquisition unit 2020 acquires progress history information whose recording time is included in the target range.
  • the distribution calculation unit 2060 calculates a task speed probability distribution using the progress history information acquired by the history acquisition unit 2020.
  • the abnormality determination unit 2080 determines whether or not the processing speed of the target task is abnormal.
  • the abnormality detection apparatus 2000 determines the target range at the time of recording the progress history information used for calculating the task speed distribution.
  • the task processing speed fluctuates even in a normal state. Therefore, if a task speed distribution is generated using a history of task processing speeds for a long period, fluctuations in the processing speed of normal tasks over a long period are reflected in the task speed distribution. Therefore, the task processing distribution does not accurately represent the speed range that the task should take at the time of determination by the abnormality determination unit 2080, and as a result, the accuracy of determination by the abnormality determination unit 2080 is reduced.
  • the task speed distribution is calculated using only the progress history information included in the target range determined by the target range determination unit 2040. Therefore, the accuracy of determination by the abnormality determination unit 2080 is higher than in the case where the process of determining the target range is not performed.
  • abnormality detection apparatus 2000 of the present embodiment will be described in more detail.
  • FIG. 5 is a diagram illustrating the configuration of progress history information in a table format.
  • the progress history information shown in FIG. 5 is referred to as a progress history information table 200.
  • the progress history information table 200 has a task ID 202, a recording time point 204, and a progress degree 206.
  • Each record of the progress history information table 200 indicates a progress degree 206 at the recording time 204 of the task specified by the task ID 202.
  • the progress degree 206 is information regarding the progress of the task.
  • the degree of progress 206 indicates information that can be used to calculate the task processing speed.
  • the progress degree 206 indicates a progress rate of a task, a ratio of a processed data amount to a processing target data amount, and the like.
  • the progress degree 206 may indicate a value obtained by accumulating the resource usage amount used by the task. By knowing how much resources a task has used, it is possible to predict the progress of the task.
  • the resource usage rate is, for example, “CPU usage rate”, memory usage rate, and disk bandwidth or network bandwidth usage rate.
  • the progress degree 206 may be a predicted value of the remaining processing time calculated by the mathematical model.
  • the progress degree 206 is not information that can be used to calculate the task processing speed, but may directly represent the task processing speed.
  • the task processing speed includes a task progress rate per unit time, a data processing amount per unit time, or a resource usage amount per unit time.
  • the history acquisition unit 2020 accesses an external device and acquires progress history information.
  • the history acquisition unit 2020 acquires progress history information input from an external device or progress history information input manually.
  • the history acquisition unit 2020 may acquire only the progress history information whose recording time is included in the target range, or may acquire the progress history information regardless of whether the recording time is included in the target range. Also good.
  • the distribution calculation unit 2060 calculates the task speed distribution using all the progress history information acquired by the history acquisition unit 2020.
  • the distribution calculation unit 2060 performs processing for selecting only progress history information whose recording time is included in the target range from the progress history information acquired by the history acquisition unit 2020.
  • the distribution calculation unit 2060 uses the task processing speed as a sample, and estimates the probability distribution of the task processing speed in the population.
  • the distribution calculation unit 2060 sets the estimated probability distribution as the task speed distribution.
  • the distribution calculation unit 2060 uses the processing speed indicated by the progress history information whose recording time is included in the target range as a sample, and the task speed Calculate the distribution.
  • the distribution calculation unit 2060 calculates the task processing speed using the progress history information. Then, the distribution calculation unit 2060 calculates a task speed distribution using the calculated processing speed as a sample.
  • the method by which the distribution calculation unit 2060 calculates the processing speed from the progress history information depends on the information indicated by the progress history information. For example, when the progress history information indicates the degree of progress of the same task at two different recording times, the distribution calculation unit 2060 calculates “difference in progress / difference in recording time” to calculate per unit time. Calculate the degree of progress. Then, the distribution calculation unit 2060 sets the progress per unit time as the task processing speed.
  • this probability distribution model is a model in which probabilities 1 and 0 are switched at a certain threshold, normal distribution, Poisson distribution, chi-square distribution, or exponential distribution.
  • which probability distribution model the distribution calculation unit 2060 uses to calculate the task speed distribution may be set in advance in the distribution calculation unit 2060 or may be set from the outside. Further, the distribution calculation unit 2060 itself may determine the probability distribution model to be used using the progress history information or the like.
  • Example 1 A specific example of processing in which the distribution calculation unit 2060 calculates the task speed distribution will be described as a first embodiment.
  • the task speed distribution calculated by the distribution calculation unit 2060 is a probability distribution using a model in which probabilities 1 and 0 are switched by a threshold.
  • a constant multiple of the fastest task speed is set as a threshold value.
  • FIG. 6 is a flowchart illustrating the flow of the task speed distribution calculation process executed by the distribution calculation unit 2060 according to the first embodiment.
  • a constant ⁇ (0 ⁇ ⁇ 1) is set for the distribution calculation unit 2060.
  • may be set in advance in the distribution calculation unit 2060, or may be set from outside the distribution calculation unit 2060.
  • step S202 the distribution calculation unit 2060 identifies the highest processing speed Vm from the processing speeds of the tasks to be sampled.
  • step S204 the distribution calculation unit 2060 sets ⁇ ⁇ Vm to the threshold value D.
  • step S206 for the task processing speed v ⁇ ⁇ ⁇ , the distribution calculation unit 2060 calculates a task speed distribution in which the probability that 0 ⁇ v ⁇ D is 0 and the probability that v> D is 1.
  • This task speed distribution is represented by the graph of FIG. In the graph of FIG. 7, the horizontal axis represents the processing speed v, and the vertical axis represents the occurrence probability p.
  • Example 2 Another specific example of the process in which the distribution calculation unit 2060 calculates the task speed distribution will be described as a second embodiment.
  • the task speed distribution calculated by the distribution calculation unit 2060 is a task speed distribution when the Poisson distribution is used as the probability distribution model.
  • the task processing speed is represented by an estimated time until task completion.
  • FIG. 8 is a flowchart illustrating the flow of the task speed distribution calculation process executed by the distribution calculation unit 2060 according to the second embodiment.
  • the distribution calculation unit 2060 generates a histogram of task processing speed.
  • the distribution calculation unit 2060 calculates the mode value k_mode from the histogram.
  • the distribution calculation unit 2060 calculates the Poisson distribution P ( ⁇ , k) as a task speed distribution.
  • k is determined by max (k ′-k_mode, 0). Note that k ′ is a bin number in the histogram.
  • Parameters such as the bin width and ⁇ may be values set in advance in the distribution calculation unit 2060, values set from outside the distribution calculation unit 2060, or may be set by the distribution calculation unit 2060. It may be a calculated value.
  • the distribution calculation unit 2060 calculates the bin width, for example, the distribution calculation unit 2060 calculates the bin width using a conversion formula such as square root selection.
  • the predicted time until task completion is used as a value representing the task processing speed
  • implementation of the method using the Poisson distribution is not limited to this.
  • k max (k_mode ⁇ k ′, 0)
  • the degree of progress per unit time of the task can be used as a value representing the processing speed of the task.
  • the distribution calculation unit 2060 may not use the progress history information regarding the target task for which the processing speed is determined to be abnormal by the abnormality determination unit 2080 for calculation of the task speed distribution after the determination. For example, assume that the abnormality detection device 2000 determines whether the processing speed of another target task 2 is abnormal after determining that the processing speed of a certain target task 1 is abnormal. In this case, the distribution calculation unit 2060 calculates the task speed distribution using the progress history information other than the progress history information related to the target task 1 among the progress history information included in the target range. As a result, the processing speed of the task determined to be abnormal is not included in the sample for calculating the task speed distribution, so the task speed distribution is more accurate than the processing speed distribution that the target task should take. It will be expressed as
  • the abnormality detection device 2000 determines that the processing speed of a certain target task is abnormal, the abnormality detection device 2000 deletes the progress history information regarding the target task from the storage unit in which the progress history information is stored. In addition, the abnormality detection device 2000 stores the progress history information related to the target task for which the processing speed is determined to be abnormal in association with a flag indicating that the information is related to the task having the abnormal processing speed. Then, the distribution calculation unit 2060 does not use the progress history information associated with this flag among the progress history information acquired by the history acquisition unit 2020 for calculation of the task speed distribution.
  • the abnormality determination unit 2080 determines whether the processing speed of the target task is abnormal using the task speed distribution. For example, the abnormality determination unit 2080 determines that the processing speed of the target task is abnormal when the occurrence probability p (v1) of the processing speed v1 of the target task is equal to or less than a predetermined threshold in the task speed distribution p (v). judge.
  • the abnormality determination unit 2080 calculates a cumulative frequency c (v1) corresponding to the processing speed v1 of the target task using the task speed distribution p (v). This cumulative frequency c (v1) is calculated by the following formula (1). Then, the abnormality determination unit 2080 determines that the processing speed of the target task is abnormal when the cumulative frequency c (v1) corresponding to the processing speed v1 of the target task is equal to or less than a predetermined threshold.
  • the anomaly detection apparatus 2000 selects the tasks included in the distributed system 3000 as target tasks in order from the task with the smallest ID or the task with the largest ID. Further, for example, the abnormality detection device 2000 randomly selects a target task from among tasks included in the distributed system 3000.
  • the abnormality detection device 2000 may accept the designation of the target task by an external device or manually. Further, the abnormality detection device 2000 may acquire information indicating which task is the target task by accessing an external device.
  • the anomaly detection device 2000 periodically processes each task as a target task.
  • the abnormality detection apparatus 2000 may change the time interval for performing processing with each task as a target task for each task.
  • information indicating the time point or time interval at which the task is executed as the target task is stored inside or outside the abnormality detection apparatus 2000.
  • the abnormality detection apparatus 2000 of this embodiment determines a target range at the time of recording progress history information used for calculation of task speed distribution.
  • the task processing speed fluctuates even in a normal state. Therefore, if a task speed distribution is generated using a history of task processing speeds for a long period, fluctuations in the processing speed of normal tasks over a long period are reflected in the task speed distribution. Therefore, the task processing distribution does not accurately represent the speed range that the task should take at the time of determination by the abnormality determination unit 2080, and as a result, the accuracy of determination by the abnormality determination unit 2080 is reduced.
  • the task speed distribution is calculated using only the progress history information included in the target range determined by the target range determination unit 2040. Therefore, the accuracy of determination by the abnormality determination unit 2080 is higher than in the case where the process of determining the target range is not performed.
  • FIG. 9 is a block diagram illustrating an anomaly detection apparatus 2000 according to the second embodiment.
  • arrows indicate the flow of information.
  • each block represents a functional unit configuration, not a hardware unit configuration.
  • the abnormality detection device 2000 of the second embodiment is the same as the abnormality detection device 2000 of the first embodiment.
  • the abnormality detection apparatus 2000 includes an execution control unit 2100.
  • the execution control unit 2100 controls the execution of the target task. For example, the execution control unit 2100 re-executes the target task on the processing server 3200 to which the target task is assigned. Further, for example, the execution control unit 2100 duplicates the target task, and assigns the duplicated task to a processing server 3200 different from the processing server 3200 to which the target task is assigned. At this time, the execution control unit 2100 may stop the execution of the target task or may continue the execution of the target task.
  • the execution control unit 2100 may duplicate a plurality of tasks from the target task.
  • the plurality of tasks may be assigned to the same processing server 3200 or may be assigned to different processing servers 3200.
  • FIG. 10 is a flowchart illustrating the flow of processing executed by the abnormality detection apparatus 2000 according to the second embodiment.
  • the execution control unit 2100 controls the execution of the target task.
  • the abnormality detection apparatus 2000 according to the second embodiment executes the processing of steps S102 to S108 shown in FIG. 4 in the same manner as the abnormality detection apparatus 2000 according to the first embodiment before executing step S402.
  • steps S102 to S108 are omitted in FIG.
  • execution of the target task is controlled when the processing speed of the target task is abnormal.
  • the abnormality detection apparatus 2000 re-executes the target task on the processing server 3200, or duplicates the target task and assigns it to another processing server 3200. As a result, the time taken to complete the process performed by the target task is shortened.
  • FIG. 11 is a block diagram illustrating an abnormality detection apparatus 2000 according to the third embodiment.
  • arrows indicate the flow of information.
  • each block represents a functional unit configuration, not a hardware unit configuration.
  • the abnormality detection device 2000 of the third embodiment is the same as the abnormality detection device 2000 of the first or second embodiment.
  • the abnormality detection apparatus 2000 includes a predetermined period acquisition unit 2160.
  • the predetermined period acquisition unit 2160 acquires a predetermined period.
  • the target range determination unit 2040 of the third embodiment determines the length of the target range from this predetermined period.
  • the target range determination unit 2040 sets the end point of the target range as the current time point.
  • the start time of the target range is a time obtained by subtracting the predetermined period from the current time.
  • the end time of the target range may not be the current time.
  • the target range determination unit 2040 sets the time point when a predetermined value is subtracted from the current time point as the end time point of the target range. This predetermined value may be set in advance in the target range determination unit 2040 or may be a value set from the outside of the target range determination unit 2040.
  • the target range determination unit 2040 may calculate the predetermined value as a random value.
  • the task speed distribution is calculated from the progress history information included in the target range of the length of the predetermined period.
  • the abnormality detection apparatus 2000 of this embodiment is effective when the timing at which the task state transitions can be predicted.
  • the task state refers to a state where data is read, a state where the read data is processed, a state where the processed data is written, and the like.
  • the time for which the task is in each state is predicted by executing the task in advance.
  • the distribution calculation unit 2060 can calculate the task speed distribution using the progress history information while the task is in one state.
  • the method of determining the target range using this predetermined period has an advantage that the time required for determining the target range is short because the process of determining the target range is simple.
  • FIG. 12 is a block diagram illustrating an abnormality detection apparatus 2000 according to the fourth embodiment.
  • arrows indicate the flow of information.
  • each block represents a functional unit configuration, not a hardware unit configuration.
  • the abnormality detection device 2000 of the fourth embodiment is the same as the abnormality detection device 2000 of the first or second embodiment.
  • the abnormality detection apparatus 2000 includes an allocation information acquisition unit 2180.
  • the allocation information acquisition unit 2180 acquires allocation information.
  • the allocation information indicates a correspondence between the processing server 3200 and a task allocated to the processing server 3200.
  • the target range determination unit 2040 determines the target range based on the allocation information. Specifically, the target range determination unit 2040 sets the time when task assignment to any of the processing servers 3200 changes as the start time of the target range. For example, the target range determination unit 2040 is in a state where a new task is assigned to a certain processing server 3200 or a task assigned to the processing server 3200 is not assigned to the processing server 3200. Let the time be the start time of the target range.
  • “the task assigned to the processing server 3200 is not assigned to the processing server 3200” means that, for example, execution of the task is completed or the task is assigned to another processing server 3200. It means that it was assigned to.
  • the assignment information may indicate the number of jobs assigned to the distributed system 3000.
  • the number of jobs assigned to the distributed system 3000 changes, the assignment of tasks to the processing server 3200 also changes. Therefore, the number of jobs assigned to the distributed system 3000 can be used as information for grasping a change in task assignment to the processing server 3200.
  • the target range determination unit 2040 detects a change in task assignment to the processing server 3200 by detecting a change in assignment information. For example, the target range determination unit 2040 periodically acquires allocation information and monitors whether there is a change in task allocation to the processing server 3200. Then, when there is a change in task assignment, the time is recorded as a candidate for the start time of the target range. When the target range is determined, the target range determination unit 2040 uses the recorded time as the start time of the target range.
  • the target range determination unit 2040 collectively acquires allocation information at each of a plurality of time points when determining the target range. In this case, the target range determination unit 2040 calculates a time point when the task assignment to the processing server 3200 has changed by comparing the plurality of pieces of obtained assignment information.
  • FIG. 13 is a diagram illustrating the configuration of allocation information in a table format.
  • the allocation information shown in FIG. 13 is referred to as an allocation information table 300.
  • the allocation information table 300 includes a recording time point 302, a processing server ID 304, and a task ID 306.
  • Each record of the allocation information table 300 indicates a task ID ID 306 indicating the task ID assigned to the processing server 3200 identified by the processing server ID 304 at the time of recording 302.
  • the end point of the target range determined by the target range determination unit 2040 of the fourth embodiment is the same as the end point of the target range determined by the target range determination unit 2040 of the third embodiment.
  • FIG. 14 is a flowchart illustrating the flow of processing executed by the abnormality detection apparatus 2000 according to the fourth embodiment.
  • the allocation information acquisition unit 2180 acquires allocation information.
  • the target range determination unit 2040 sorts the allocation information in order of newest time.
  • Steps S506 to S512 are loop processing A that is repeated while satisfying the condition.
  • this condition is expressed as loop condition A.
  • Loop condition A is that counter i is smaller than the total number N of allocation information.
  • the initial value of counter i is 1.
  • the counter i is incremented by 1 every time the loop process A is finished once.
  • the i-th allocation information is referred to as allocation information i.
  • Allocation information with the highest rank is allocation information 0.
  • step S506 the target range determination unit 2040 determines whether or not the loop condition A is satisfied. If the loop condition A is satisfied, the process in FIG. 14 proceeds to step S508. On the other hand, if the loop condition A is not satisfied, the process of FIG. 14 proceeds to step S516.
  • step S508 the target range determination unit 2040 compares the allocation information (i-1) with the allocation information i. Depending on the comparison result, the process of FIG. 14 branches in step S510. If there is no change in task assignment as a result of comparing the two assignment information, the process of FIG. 14 proceeds to step S512. On the other hand, if there is a change in task assignment, the process of FIG. 14 proceeds to step S514.
  • Step S512 is the end of the loop process A. Therefore, the process in FIG. 14 returns to step S506.
  • step S514 the target range determination unit 2040 decreases the value of i by one.
  • step S5166 the target range determination unit 2040 sets the time corresponding to the allocation information i as the start time of the target range.
  • the start time of the target range is the time indicated by the recording time 302 of the allocation information i.
  • the target range is determined based on the allocation information.
  • the processing speed of a task already executed may change due to the influence. For example, when a task is newly assigned to the processing server 3200, it is considered that the processing speed of the task already executed on the processing server 3200 is reduced. Accordingly, it is considered that the task processing speed changes before and after the task assignment changes even if the task state is normal.
  • the range after the time when task assignment changes is the target range. Therefore, the task speed distribution is calculated based on the task processing speed after the task assignment has changed. In this way, the task speed distribution calculated by the distribution calculation unit 2060 is not affected by the task processing speed before the task assignment changes. Therefore, the task speed distribution calculated by the abnormality detection apparatus 2000 according to the present embodiment more accurately represents the processing speed distribution that the target task should take. As a result, the accuracy of determination by the abnormality determination unit 2080 is increased.
  • FIG. 15 is a block diagram illustrating an abnormality detection apparatus 2000 according to the fifth embodiment.
  • arrows indicate the flow of information.
  • each block represents a functional unit configuration, not a hardware unit configuration.
  • the abnormality detection device 2000 of the fifth embodiment is the same as the abnormality detection device 2000 of the first or second embodiment.
  • the abnormality detection apparatus 2000 includes a representative value calculation unit 2200.
  • the representative value calculation unit 2200 calculates a representative value of the task processing speed for each of a plurality of periods.
  • the representative value calculation unit 2200 calculates a representative value in each period using progress history information included in the period.
  • the representative value in a certain period is a statistical value of the processing speed of the task corresponding to the progress history information included in the period.
  • the statistical value is, for example, an average value, a median value, a mode value, or the like.
  • the target range determination unit 2040 compares a representative value (hereinafter referred to as a reference representative value) in a period closest to the current time point with other representative values. Next, the target range determination unit 2040 specifies a period closest to the current time point among periods corresponding to a representative value having a significant difference from the reference representative value. Then, the target range determination unit 2040 determines the target range so as to include only a period after the specified period.
  • a representative value hereinafter referred to as a reference representative value
  • FIG. 16 is a graph for conceptually explaining the processing by the target range determination unit 2040.
  • the vertical axis of the graph represents the size of the representative value
  • the horizontal axis of the graph represents the flow of time.
  • the period closest to the current time point is defined as period 1. Further, the difference from the current time point is large in the order of period 2, period 3, and period 4.
  • the representative value 1 in the period 1 is a reference representative value.
  • the target range determination unit 2040 determines the target period so as to include only the period 3 and subsequent periods. Therefore, the target period includes period 3, period 2, and period 1.
  • the target range determination unit 2040 divides the current time point and the oldest recording time point in the progress history information into sections having a predetermined number of lengths.
  • the target range determination unit 2040 starts from the current time point, the length of the period is w (w is a real number greater than or equal to 0), and the interval between the start times of two adjacent periods is s (s is greater than or equal to w) And create multiple periods of real numbers greater than 0).
  • FIG. 17 is a flowchart illustrating the flow of processing executed by the abnormality detection apparatus 2000 according to the fifth embodiment.
  • the history acquisition unit 2020 acquires progress history information.
  • the target range determination unit 2040 sets an initial value ts at the end point t of the period. For example, ts is the current time.
  • the representative value calculation unit 2200 uses the progress history information included in the period [t ⁇ w, t] in which t ⁇ w is the start time and t is the end time, and the representative value of the task speed. Is calculated.
  • the target range determination unit 2040 sets this representative value as the reference representative value Vr.
  • Steps S608 to S614 are loop processing B that is repeatedly executed while satisfying a predetermined condition.
  • the predetermined condition (hereinafter, loop condition B) is t> te.
  • te is the oldest recording time among the recording times indicated by the progress history information.
  • the initial value of t in the loop process B is ts- s. s is a positive real number. Further, every time the loop processing B is executed once, the value of decreases by s.
  • the target range determination unit 2040 determines whether or not the loop condition B is satisfied. If the loop condition B is satisfied, the process in FIG. 17 proceeds to step S610. On the other hand, if the loop condition B is not satisfied, the process of FIG. 17 proceeds to step S616.
  • step S610 the target range determination unit 2040 uses the progress history information included in the period [t-w, t] where t-w is the start time and t is the end time, and the representative value of the task speed Is calculated.
  • step S612 the target range determination unit 2040 determines whether there is a significant difference between the representative value calculated in step S610 and the reference representative value Vr. If there is no significant difference between the two, the process of FIG. 17 proceeds to step S614. On the other hand, if there is a significant difference between the two, the process of FIG. 17 proceeds to step S618.
  • Step S614 is the end of loop processing B. The process of FIG. 17 proceeds to step S608.
  • Step S616 is a process executed when there is no significant difference between the calculated representative value and the reference representative value.
  • the target range determination unit 2040 sets a period including the recording points of all progress history information as the target period.
  • the target range determination unit 2040 determines the target period so that only the time point after t is included.
  • the target period is a period (t, ts].
  • the task processing speed may change even if the task is normal and there is no change in task assignment. For example, when the processing content of a task changes, the processing speed of the task is considered to change. This is the case, for example, when task processing changes from data analysis processing to data writing processing.
  • the target range determination unit 2040 determines the target period so as not to include a period before the time point when the task processing speed significantly changes.
  • the task speed distribution is calculated using only the progress history information included in the period in which the task processing speed is not significantly changed. Therefore, the task speed distribution calculated by the abnormality detection apparatus 2000 according to the present embodiment more accurately represents the processing speed distribution that the target task should take. As a result, the accuracy of determination by the abnormality determination unit 2080 is increased.
  • FIG. 18 is a block diagram illustrating an abnormality detection apparatus 2000 according to the sixth embodiment.
  • arrows indicate the flow of information.
  • each block represents a functional unit configuration, not a hardware unit configuration.
  • the abnormality detection device 2000 of the sixth embodiment is the same as the abnormality detection device 2000 of any of the first to fifth embodiments.
  • a task type is assigned to each task.
  • the same task type is assigned to tasks generated from the same job.
  • the distribution calculation unit 2060 according to the sixth embodiment calculates a task speed distribution using only progress history information regarding a task corresponding to the same task type as the target task. Therefore, the abnormality detection apparatus 2000 according to the sixth embodiment includes a type information acquisition unit 2140.
  • the type information acquisition unit 2140 acquires the task type corresponding to the task.
  • the distribution calculation unit 2060 calculates the task speed distribution using only the progress history information related to T1, T2, and T3 corresponding to the task type G1.
  • the distribution calculation unit 2060 calculates the task speed distribution using only the progress history information related to T4 and T5 corresponding to the task type G2.
  • the target range determination unit 2040 may determine the target range according to the task type of the target task. For example, it is assumed that the target range determination unit 2040 sets the predetermined period acquired by the predetermined period acquisition unit 2160 as the length of the target period as described in the third embodiment. In this case, the predetermined period acquisition unit 2160 acquires a predetermined period according to the task type of the target task.
  • the length of a period in which a task is in one state is considered to depend on the task type of the task. For example, a task type that requires a long time to read data, a task type that requires a long time to analyze data, and the like can be considered.
  • a period during which the tasks of the task type stay in the same state is predicted, and by setting the predicted value as a predetermined period, a predetermined period suitable for each task type can be set.
  • the predicted value can be calculated by performing a test execution of a task of each task type.
  • the task speed distribution is calculated using only progress history information related to a task corresponding to the same task type as the target task.
  • the task speed distribution is calculated using only the progress history information related to the task corresponding to the same task type as the target task, so the task speed distribution is more accurate and the processing speed of the target task is Represents the range of values to be taken. Therefore, according to the present embodiment, the accuracy of determination by the abnormality determination unit 2080 is higher than in the case where the task speed distribution is calculated without considering the task type.
  • FIG. 19 is a block diagram illustrating an anomaly detection apparatus 2000 according to the seventh embodiment.
  • arrows indicate the flow of information.
  • each block represents a functional unit configuration, not a hardware unit configuration.
  • the abnormality detection device 2000 of the seventh embodiment is the same as the abnormality detection device 2000 of any of the first to sixth embodiments.
  • the progress history information is stored in the history storage unit 100.
  • the history storage unit 100 may be provided inside the abnormality detection device 2000 or may be provided outside.
  • the history acquisition unit 2020 of the seventh embodiment acquires progress history information from the history storage unit 100.
  • the abnormality detection apparatus 2000 includes a history deletion unit 2220.
  • the history deletion unit 2220 deletes the progress history information whose recording time is not included in the target range determined by the target range determination unit 2040 from the history storage unit 100.
  • progress history information whose recording time is not included in the target range is deleted from the history storage unit 100.
  • the history acquisition unit 2020 and the target range The time required for processing by the determination unit 2040 is shortened.
  • the storage capacity of the history storage unit 100 can be reduced. Therefore, for example, when the history storage unit 100 is provided inside the abnormality detection device 2000, the abnormality detection device 2000 can be downsized or made inexpensive. Even when the history storage unit 100 is provided outside the abnormality detection device 2000, the entire system including the abnormality detection device 2000 and the distributed system 3000 can be made inexpensive.
  • FIG. 20 is a block diagram illustrating the abnormality detection device 2000 according to the third embodiment together with the usage environment.
  • arrows indicate the flow of information.
  • each block represents a functional unit configuration, not a hardware unit configuration.
  • the distributed system 3000 includes a master server 3100.
  • the master server 3100 includes an execution management unit 3120 and a history management unit 3140.
  • the execution management unit 3120 manages task execution. Specifically, the execution management unit 3120 assigns a new task to the processing server 3200, stops or restarts execution of the task assigned to the processing server 3200, or is assigned to the processing server 3200. Is assigned to another processing server 3200.
  • the history management unit 3140 collects progress information from each processing server 3200. The collected history of progress information is managed as progress history information.
  • the progress information represents the progress of the task at a certain point in time.
  • the processing server 3200 includes a task execution unit 3220 and a progress information storage unit 3240.
  • the task execution unit 3220 executes a task.
  • the task execution unit 3220 is a process, a thread, a virtual machine, or the like.
  • the processing server 3200 may include a plurality of task execution units 3220. Note that the task execution unit 3220 may execute a plurality of tasks.
  • the progress information storage unit 3240 stores progress information related to tasks executed on the processing server 3200 having the progress information storage unit 3240.
  • the history acquisition unit 2020 according to the third embodiment acquires progress history information from the history management unit 3140. Further, the abnormality detection apparatus 2000 according to the third embodiment includes the representative value calculation unit 2200 described in the fifth embodiment.
  • the target range determination unit 2040 calculates the target range by the method described in the fifth embodiment.
  • the distribution calculation unit 2060 calculates the task speed distribution using only the progress history information included in the target range determined by the target range determination unit 2040 among the progress history information acquired by the history acquisition unit 2020.
  • the abnormality determination unit 2080 determines whether or not the processing speed of the target task is abnormal.
  • the execution control unit 2100 receives the determination result from the abnormality determination unit 2080 and controls the execution of the task.
  • the execution control unit 2100 sends an instruction to control the execution of the task to the execution management unit 3120. Upon receiving this instruction, the execution management unit 3120 controls the execution of the task. Note that the execution control unit 2100 may directly control the execution of the task without using the execution management unit 3120.
  • FIG. 21 is a diagram illustrating the processing server 3200 included in the distributed system 3000 according to the third embodiment.
  • the distributed system 3000 according to the third embodiment includes computers c1 and c2 as the processing server 3200.
  • Computers c1 and c2 are connected via a single network switch.
  • the computer c1 includes processes P1 and P2 as the task execution unit 3220.
  • the computer c2 includes processes P3 and P4 as the task execution unit 3220.
  • Processes P1, P2, P3, and P4 are executing tasks T1, T2, T3, and T4, respectively.
  • the master server 3100 and the progress information storage unit 3240 are omitted.
  • FIG. 22 is a diagram showing the progress information stored in the progress information storage unit 3240 of computers c1 and c2.
  • the progress information in this embodiment represents the processing progress rate per second of the task.
  • the record on the first line in FIG. 22 indicates that the processing progress rate per second of task T1 is 5% at the recording time 1:30:01.
  • the processing progress rate per second is also a value representing the processing speed of the task.
  • FIG. 23 is a diagram showing progress history information managed by the history management unit 3140.
  • the record in the first line in FIG. 23 indicates that the processing progress rate per second of task T1 was 50% at the recording time 1:28:02.
  • the processing progress rate per second is also a value representing the processing speed. Therefore, in this embodiment, the progress history information directly indicates the task processing speed.
  • the history acquisition unit 2020 acquires the progress history information illustrated in FIG. 23 from the history management unit 3140.
  • the target range determination unit 2040 determines the target range by the method described in the fifth embodiment.
  • the initial value t is 1:31:00
  • the window width w is 0:01:00
  • the step width s is 0:01:00.
  • the target range determination unit 2040 calculates the average value of the processing progress rates per second indicated by the progress history information included in the period as a representative value for the period.
  • the target range determination unit 2040 determines that there is a significant difference between the representative value and the reference representative value when a certain representative value is twice or more the reference representative value.
  • the first period during which the target range determination unit 2040 calculates the representative value is [1:30:00, 1:31:00].
  • the progress history information whose recording time is included in this period is records 5 to 8 in FIG. Therefore, the target range determination unit 2040 calculates a representative value using the processing progress rate per second shown in the four records.
  • the typical value is 16.25% / s.
  • This representative value is a reference representative value.
  • the second period is [1:29:00, 1:30:00].
  • the progress history information included in this period is records 3 and 4 in FIG. Therefore, the target range determination unit 2040 calculates a representative value using the processing progress rate per second indicated in the two records.
  • the third period is [1:28:00, 1:29:00].
  • the progress history information included in this period is records 1 and 2 in FIG. Therefore, the target range determination unit 2040 calculates a representative value using the processing progress rate per second indicated in the two records.
  • the target range determination unit 2040 sets the target period so as to include a time point after the third period.
  • the target range determination unit 2040 sets a period ⁇ [1:29:00, 1:31:00] that is a combination of the first period and the second period as the target period.
  • the distribution calculation unit 2060 calculates the task speed distribution using the progress history information included in the target period.
  • the progress history information included in this target period is records 3 to 8 in FIG.
  • the distribution calculation unit 2060 calculates the task speed distribution by the method described in the first embodiment.
  • 0.5.
  • a probability distribution in which the probability of “0 ⁇ v ⁇ 12.5” is 0 and the probability of “v> 12.5” is 1 is calculated as the task speed distribution.
  • FIG. 24 is a graph showing the task speed distribution calculated by the distribution calculation unit 2060.
  • the abnormality determination unit 2080 compares each task ⁇ ⁇ ⁇ T1 to T4 being executed as a target task with this task speed distribution, and determines whether or not the processing speed is abnormal. It is assumed that the processing speed of each task at the time of determination is represented by records 5 to 8 in FIG. Of the tasks T1 to T4, only the processing speed of task T1 has a probability of occurrence of 0 in the task speed distribution. Therefore, abnormality determination unit 2080 determines that the processing speed of task T1 is abnormal.
  • the execution control unit 2100 sends an instruction to the execution management unit 3120 to control the execution of task T1. Upon receiving this instruction, the execution management unit 3120 controls the execution of task T1. For example, the execution management unit 3120 re-executes task T1 on process P1.
  • Example 4 A specific operation of the abnormality detection apparatus 2000 will be described using still another embodiment.
  • the embodiment shown in the present embodiment is also an example of the operation of the abnormality detection device 2000, and the abnormality detection device 2000 of the present invention is not limited at all by the following embodiment. Assume that the configurations of the abnormality detection apparatus 2000 and the distributed system 3000 in the fourth embodiment are the same as those in the third embodiment.
  • FIG. 25 is a diagram showing the progress information stored in the progress information storage unit 3240 of the computers c1 and c2.
  • the progress information in the present embodiment indicates a predicted value or actual value of the task completion time (the remaining time required until task processing is completed).
  • the abnormality detection apparatus 2000 of the present embodiment uses the predicted value or actual value of the task completion time as a value representing the task processing speed.
  • FIG. 26 is a diagram illustrating progress history information managed by the history management unit 3140.
  • tasks T1 ′, T2 ′, T3 ′, and T4 ′ are tasks that have been executed in the past.
  • FIG. 27 shows progress history information included in the target range determined by the target range determination unit 2040.
  • the determination of the target range by the target range determination unit 2040 is performed in the same manner as in the third embodiment.
  • the distribution calculation unit 2060 calculates the task speed distribution using the task completion time shown in the progress history information of FIG. 27 as a sample.
  • the task speed distribution model calculated by the distribution calculation unit 2060 is a Poisson distribution.
  • the distribution calculation unit 2060 sets the bin width of the histogram used for calculating the Poisson distribution to 5 seconds and the parameter ⁇ to 1.
  • the distribution calculation unit 2060 generates a histogram using the task completion time indicated in the progress history information as a sample. Since the bin (bin 1) with task completion time range [0, 5) includes T'4 and T4 ⁇ , the number of elements in bin 1 is two. The bin (bin 2) whose task completion time range is [5, 10) includes T'3, T2, and T3, so the number of elements in bin 2 is 3. Since there is no element included in the bin (bin 3) of the task completion time range [10, 15), the number of elements in bin 3 is zero. Since there is no element included in the bin (bin 4) whose task completion time range is [15, 20), the number of elements in bin 4 is zero. Since the bin (bin 5) with task completion time range [20, 25) includes ⁇ ⁇ T1, the number of elements in bin 5 is one.
  • the abnormality determination unit 2080 determines whether or not the processing speed of the task is abnormal by using the Poisson distribution P (1, k) as the target task T1 to T4. In the present embodiment, the abnormality determination unit 2080 determines that the processing speed of the target task is abnormal when the occurrence rate of the processing speed of the target task is 0.1 or less in the task speed distribution.
  • the probabilities of task completion times for tasks T2 to T4 are approximately 0.37, 0.37, and 0.37, respectively, all of which are greater than the threshold of 0.1. Therefore, the abnormality determination unit 2080 determines that the processing speed of these tasks is not abnormal.
  • FIG. 28 is a block diagram illustrating the abnormality detection apparatus 2000 according to the fifth embodiment together with the usage environment.
  • arrows indicate the flow of information.
  • each block represents a functional unit configuration, not a hardware unit configuration.
  • the distribution system 3000 in FIG. 28 is the same as the distribution system 3000 in FIG. 20, and is the same as the distribution system 3000 in the third and fourth embodiments.
  • the abnormality detection apparatus 2000 includes the allocation information acquisition unit 2180 described in the fourth embodiment.
  • the target range determination unit 2040 in Example 5 calculates the target range by the method described in the fourth embodiment.
  • the allocation information in the present embodiment represents the transition of the number of jobs allocated to the distributed system 3000.
  • FIG. 29 is a diagram showing the allocation information acquired by the allocation information acquisition unit 2180.
  • the processing servers included in the distributed system 3000 are represented in FIG. 21 as in the third and fourth embodiments.
  • the task information stored in the progress information storage unit 3240 of the computers c1 and c2 is represented in FIG. 22 as in the fourth embodiment. Therefore, in this embodiment, as in the fourth embodiment, a predicted value or actual value of task completion time is used as a value representing the task processing speed.
  • FIG. 30 is a diagram showing progress history information stored in the history management unit 3140.
  • T'1 to T'6 are progress history information regarding tasks executed in the past.
  • the progress history information has an abnormality flag.
  • the abnormality flag indicates whether the processing speed is determined to be abnormal by the abnormality determination unit 2080 for the task indicated by the progress history information. For example, in the sixth record in FIG. 30, the value of the abnormality flag is “true”. This record represents that it is determined that the processing speed is abnormal for the task T'6.
  • the target range determination unit 2040 determines the target range using the transition of the number of jobs indicated by the allocation information.
  • the number of jobs changes from 1 to 2 at 1:29:01. Therefore, the target range determination unit 2040 sets 1:29:01: as the start time of the target range. Therefore, the progress history information included in the target range is the progress history information related to tasks T′4 to T′6 and T1 to T4.
  • the distribution calculation unit 2060 except for the progress history information related to the task whose processing speed is determined to be abnormal by the abnormality determination unit 2080 among the progress history information regarding the tasks T'4 'to T'6 and T1 to T4
  • the task speed distribution is calculated using the progress history information.
  • the distribution calculation unit 2060 uses progress history information other than the task T′6 ⁇ ⁇ among the progress history information included in the target range.
  • the distribution calculation unit 2060 calculates a task speed distribution using the model shown in the first embodiment.
  • 2.
  • the distribution calculation unit 2060 calculates a probability distribution in which the occurrence probability of a task whose prediction completion time is [0 seconds, 8 seconds] is 1 and the occurrence probability of a task whose prediction completion time is (8 seconds, + ⁇ ) is 0. 31 shows the task speed distribution calculated by the distribution calculation unit 2060.
  • the abnormality determination unit 2080 compares each task ⁇ ⁇ ⁇ T1 to T4 being executed as a target task with this task speed distribution, and determines whether or not the processing speed is abnormal. Note that the current processing speed (predicted completion time) of each task is represented by records 7 to 10 in FIG. Of the tasks T1 to T4, only the processing speed of task T1 has a probability of occurrence of 0 in the task speed distribution. Therefore, abnormality determination unit 2080 determines that the processing speed of task T1 is abnormal.
  • the execution control unit 2100 sends an instruction to the execution management unit 3120 to control the execution of task T1. Upon receiving this instruction, the execution management unit 3120 controls the execution of task T1. For example, the execution management unit 3120 re-executes task T1 on process P1.
  • an anomaly detection device that processes tasks assigned to the servers, History acquisition means for acquiring progress history information regarding the progress of the plurality of tasks at each of a plurality of recording points; A target range determining means for determining a target range; Of the progress history information acquired by the history acquisition means, a task speed distribution that is a probability distribution of the processing speed of the task is calculated using only the progress history information whose recording time is included in the target range. Distribution calculation means; An abnormality determination means for determining whether or not the processing speed of the target task is abnormal by comparing the processing speed of the target task and the task speed distribution; An anomaly detection device. 2.
  • the target task is re-executed on the first server to which the target task is assigned or the target task is duplicated
  • Execution control means for allocating the assigned task to a second server different from the first server.
  • the abnormality detection device described in 1. 3. Having a predetermined period acquisition means for acquiring a predetermined period;
  • the target range determining means sets the length of the target range as the predetermined period. Or 2.
  • Allocation information acquisition means for acquiring allocation information indicating association between the server and the task allocated to the server;
  • the target range determining means sets a time point when the task assignment to any of the servers has changed as a start time of the target range. Or 2.
  • the recording time point includes a representative value calculation means for calculating a representative value of the processing speed of the task in each period using progress history information included in each period
  • the target range determination means includes the target range so as to include only a period in which there is no significant difference between the representative value in the period and the representative value in the period closest to the current time point. decide, 1. Or 2.
  • Type acquisition means for acquiring a task type corresponding to the task
  • the distribution calculation means calculates the task speed distribution using only the progress history information related to the task corresponding to the task type that is the same as the target task. 1.
  • the abnormality detection device according to any one of the above. 7). 5.
  • the target range determining unit calculates the target range based on the task type corresponding to the target task.
  • the progress history information is stored in history storage means,
  • the history acquisition means acquires the progress history information from the history storage means, History deletion means for deleting the progress history information not included in the target range from the history storage means; 1.
  • the distribution calculation means does not use the progress history information related to the target task for which the processing speed is determined to be abnormal by the abnormality determination means for calculation of the task speed distribution after the determination.
  • the abnormality detection device according to any one of the above. 10.
  • a control method executed by a computer that processes a task assigned to the server A history acquisition step of acquiring progress history information regarding the progress of the plurality of tasks at each of a plurality of recording points;
  • a task speed distribution that is a probability distribution of the processing speed of the task is calculated using only the progress history information whose recording time is included in the target range.
  • Distribution calculation step An abnormality determination step for determining whether or not the processing speed of the target task is abnormal by comparing the processing speed of the target task and the task speed distribution; Control method. 11.
  • the target task is re-executed on the first server to which the target task is assigned, or the target task is duplicated
  • the control method described in 1. 12 A predetermined period acquisition step of acquiring a predetermined period; In the target range determination step, the length of the target range is set as the predetermined period. Or 11.
  • the control method described in 1. 13 An allocation information acquisition step of acquiring allocation information indicating an association between the server and the task allocated to the server; 9.
  • the target range determination step sets a time point when the assignment of the task to any of the servers has changed as a start time of the target range. Or 11.
  • a representative value calculating step for calculating a representative value of the processing speed of the task in each period using the progress history information included in each period of the recording time point,
  • the target range determining step includes the target range so as to include only a period in which there is no significant difference between the representative value in the period and the representative value in the period closest to the current time point. decide, 10. Or 11.
  • the distribution calculating step calculates the task speed distribution using only the progress history information related to the task corresponding to the task type that is the same as the target task. 10.
  • the control method as described in any one. 16. 15.
  • the target range determining step calculates the target range based on the task type corresponding to the target task.
  • the progress history information is stored in history storage means,
  • the history acquisition step acquires the progress history information from the history storage means,
  • the distribution calculating step does not use the progress history information related to the target task for which the processing speed is determined to be abnormal in the abnormality determining step for calculating the task speed distribution after the determination. To 17.
  • a program for causing a computer to have a function of operating as an anomaly detection device that targets a task assigned to the server A history acquisition function for acquiring progress history information related to the progress of a plurality of tasks at each of a plurality of recording points; A target range determination function for determining a target range; Of the progress history information acquired by the history acquisition function, a task speed distribution that is a probability distribution of the processing speed of the task is calculated using only the progress history information whose recording time is included in the target range.
  • Distribution calculation function An abnormality determination function for determining whether or not the processing speed of the target task is abnormal by comparing the processing speed of the target task and the task speed distribution; A program to give 20.
  • the target task is re-executed on the first server to which the target task is assigned, or the target task is duplicated
  • An execution control function for allocating the assigned task to a second server different from the first server;
  • the program described in. 21 The computer has a predetermined period acquisition function for acquiring a predetermined period, 18.
  • the target range determination function sets the length of the target range as the predetermined period. Or 20.
  • the program described in. 22. The computer has an allocation information acquisition function for acquiring allocation information indicating an association between the server and the task allocated to the server, 18.
  • the target range determination function sets the time when the task assignment to any of the servers has changed as the start time of the target range. Or 20.
  • the computer For each of a plurality of periods, the computer has a representative value calculation function for calculating a representative value of the processing speed of the task in each period using the progress history information including the recording time points included in each period,
  • the target range determining function includes the target range so as to include only a period in which there is no significant difference between the representative value in the period and the representative value in the period closest to the current time point. decide, 19. Or 20.
  • the computer has a type acquisition function for acquiring a task type corresponding to the task, The distribution calculation function calculates the task speed distribution using only the progress history information related to the task corresponding to the task type that is the same as the target task. 19. Thru 23.
  • the target range determination function calculates the target range based on the task type corresponding to the target task.
  • the program described in. 26. The progress history information is stored in history storage means, The history acquisition function acquires the progress history information from the history storage means, The computer has a history deletion function for deleting the progress history information not included in the target range from the history storage unit. 19. To 25. The program as described in any one. 27. 18. The distribution calculation function does not use the progress history information regarding the target task for which the processing speed is determined to be abnormal by the abnormality determination function for the calculation of the task speed distribution after the determination. Thru 26. The program as described in any one.

Abstract

 異常検出装置(2000)は、複数の処理サーバ(3200)で構成される分散システム(3000)において、処理サーバ(3200)に割り当てられているタスクを処理対象とする。履歴取得部(2020)は、複数の記録時点における、複数のタスクの進捗に関する情報である進捗履歴情報を取得する。対象範囲決定部(2040)は対象範囲を決定する。分布算出部(2060)は、複数のタスクに関する進捗履歴情報から、タスクの処理速度の確率分布であるタスク速度分布を算出する。異常判定部(2080)は、判定対象のタスクの処理速度とタスク速度分布とを比較することで、判定対象のタスクの処理速度が異常であるか否かを判定する。

Description

異常検出装置、制御方法、及びプログラム
 本発明は、異常検出装置、制御方法、及びプログラムに関する。
 ジョブを分割することで生成された複数のタスクを、複数の計算機(以下、処理サーバ)に分散して実行させる分散システムが開発されている。処理サーバは、タスクを実行できる状態になると、新たなタスクの割り当てを受ける。このような形態の分散システムでは、タスクが終了した処理サーバから順に新たなタスクが割り当てられるため、高速な処理サーバに対してより多くのタスクが割り当てられやすくなる。その結果、ジョブの実行効率が高くなる。
 処理サーバに対してタスクを割り当てる技術又はそれに関連する技術を開示している先行技術文献として、非特許文献1及び特許文献1~4がある。非特許文献1は、実行中のタスクの処理に要する時間を短くする技術を開示している。具体的には、まず、処理サーバ上で実行されているタスクの処理に要する時間を、1)そのままタスクの実行を続けた場合、及び2)タスクを再実行した場合の2つの場合について算出する。そして、再実行した場合の所要時間の方が短い場合、そのタスクを再実行する。
 特許文献1及び2は、予め計測しておいたタスクの負荷指標と処理サーバの性能指標に基づいて、タスクの割当計画を静的に算出する技術を開示する。特許文献3は、ジョブの進捗状況に基づいて推定したジョブの完了時間がジョブの要求完了時間を満たさない場合に、そのジョブを複数のタスクに分割し、分割したタスクを複数の処理サーバに割り当てることで、タスクを並列処理する技術を開示する。特許文献4は、処理サーバの構成に基づいて算出された静的な性能指標値に基づき、高性能な処理サーバに対してタスクを割り当てる技術を開示する。
特開2008-243216号公報 特開2010-277604号公報 特開2008-123205号公報 特開2007-317038号公報
Ganesh Ananthanarayanan、外6名、「Reining in the Outliers in Map-Reduce Clusters using Mantri」、Proceedings of the 9th USENIX Symposium on Operating Systems Design and Implementation (OSDI '10)、2010年10月4日
 分散システムにおいて、一部のタスクの処理速度が一時的に遅くなることがある。その要因は、そのタスクを実行している処理サーバの故障、その処理サーバ上で実行されているソフトウエアのバグ、タスクが利用するデータの断片化、その処理サーバが接続されているネットワークにおける輻輳など、多岐に渡る。ここで、ジョブを完了するためには、そのジョブを分割することで生成された全てのタスクを完了する必要がある。そのため、一部のタスクの処理速度が遅くなると、そのタスクを含むジョブ全体の終了が遅くなってしまう。
 特許文献1または2記載の技術では、事前に計測したタスクの負荷指標と処理サーバの性能指標に基づいてタスクの割当計画を算出するため、タスクの処理速度の一時的な遅れが割当計画に反映されない。特許文献3記載の技術は、実行されているタスクの完了に要する時間を短くするための技術であり、タスクの処理速度の一時的な遅れを解決する技術ではない。特許文献4記載の技術は、事前に算出した処理サーバの性能指標値に基づいてタスクの割り当てを行う技術であり、実行されているタスクの処理速度がタスクの割り当てに反映されない。
 これらに対し、非特許文献1の技術は、一時的に処理速度が遅くなっているタスクを特定し、そのタスクの実行を制御する。
 ここで、タスクが正常に動作している場合でも、タスクの処理速度は変化する。そのため、タスクの処理速度が一時的に遅くなっているか否かを判定する際、「正常時においてもタスクの処理速度が変化する」ということを考慮しないと、判定の精度が低くなる。非特許文献1の技術は、あるタスクを再実行する場合の予測所用時間を、そのタスクと同じフェーズに含まれている全てのタスクの、そのフェーズにおける処理速度の平均値に基づいて算出する。したがって、非特許文献1の技術は、同じフェーズ内におけるタスクの処理速度の変化を考慮していない。
 本発明は、以上の課題に鑑みてなされたものである。本発明の目的は、分散システムにおいて、タスクの処理速度が異常になっているか否かを高い精度で判定する技術を提供することである。
 本発明が提供する異常検出装置は、複数のサーバで構成される分散システムにおいて、前記サーバに割り当てられているタスクを処理対象とする異常検出装置である。当該異常検出装置は、複数の記録時点それぞれにおける複数の前記タスクの進捗に関する進捗履歴情報を取得する履歴取得手段と、対象範囲を決定する対象範囲決定手段と、前記履歴取得手段によって取得された前記進捗履歴情報のうち、前記記録時点が前記対象範囲に含まれる前記進捗履歴情報のみを用いて、前記タスクの処理速度の確率分布であるタスク速度分布を算出する分布算出手段と、対象タスクの処理速度と前記タスク速度分布とを比較することで、前記対象タスクの処理速度が異常であるか否かを判定する異常判定手段と、を有する。
 本発明が提供する制御方法は、複数のサーバで構成される分散システムにおいて、前記サーバに割り当てられているタスクを処理対象とするコンピュータによって実行される。当該制御方法は、複数の記録時点それぞれにおける複数の前記タスクの進捗に関する進捗履歴情報を取得する履歴取得ステップと、対象範囲を決定する対象範囲決定ステップと、前記履歴取得ステップによって取得された前記進捗履歴情報のうち、前記記録時点が前記対象範囲に含まれる前記進捗履歴情報のみを用いて、前記タスクの処理速度の確率分布であるタスク速度分布を算出する分布算出ステップと、対象タスクの処理速度と前記タスク速度分布とを比較することで、前記対象タスクの処理速度が異常であるか否かを判定する異常判定ステップと、を有する。
 本発明が提供するプログラムは、コンピュータに、本発明が提供する異常検出装置として動作する機能を持たせる。当該プログラムは、このコンピュータに、本発明が提供する異常検出装置の各機能構成部が有する機能を持たせる。
 本発明によれば、分散システムにおいて、タスクの処理速度が異常になっているか否かを高い精度で判定する技術が提供される。
 上述した目的、およびその他の目的、特徴および利点は、以下に述べる好適な実施の形態、およびそれに付随する以下の図面によってさらに明らかになる。
実施形態1に係る異常検出装置をその使用環境と共に例示するブロック図である。 実施形態1に係る異常検出装置の構成を例示するブロック図である。 実施形態1に係る異常検出装置のハードウエア構成を例示するブロック図である。 実施形態1に係る異常検出装置によって実行される処理の流れを例示するフローチャートである。 進捗履歴情報の構成をテーブル形式で例示する図である。 実施例1に係る分布算出部によって実行されるタスク速度分布の算出処理の流れを例示するフローチャートである。 実施例1におけるタスク速度分布を示すグラフである。 実施例2に係る分布算出部によって実行されるタスク速度分布の算出処理の流れを例示するフローチャートである。 実施形態2に係る異常検出装置を例示するブロック図である。 実施形態2に係る異常検出装置によって実行される処理の流れを例示するフローチャートである。 実施形態3に係る異常検出装置を例示するブロック図である。 実施形態4に係る異常検出装置を例示するブロック図である。 割当情報の構成をテーブル形式で例示する図である。 実施形態4に係る異常検出装置によって実行される処理の流れを例示するフローチャートである。 実施形態5に係る異常検出装置を例示するブロック図である。 対象範囲決定部による処理を概念的に説明するためのグラフである。 実施形態5に係る異常検出装置によって実行される処理の流れを例示するフローチャートである。 実施形態6に係る異常検出装置を例示するブロック図である。 実施形態7に係る異常検出装置を例示するブロック図である。 実施例3に係る割当判定装置を、その使用環境と共に示すブロック図である。 実施例3の分散システムに含まれる処理サーバを示す図である。 コンピュータ c1 と c2 の進捗度情報格納部に格納されている進捗度情報を併せて示す図である。 履歴管理部によって管理されている進捗履歴情報を示す図である。 分布算出部によって算出されたタスク速度分布を表すグラフである。 コンピュータ c1 と c2 の進捗度情報格納部に格納されている進捗度情報を併せて示す図である。 履歴管理部によって管理されている進捗履歴情報を示す図である。 対象範囲決定部によって決定される対象範囲に含まれる進捗履歴情報を示す図である。 実施例5に係る異常検出装置を、その使用環境と共に示すブロック図である。 割当情報取得部によって取得される割当情報を示す図である。 履歴管理部に格納されている進捗履歴情報を示す図である。 分布算出部によって算出されたタスク速度分布を示すグラフである。
 以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
[実施形態1]
 図1は、実施形態1に係る異常検出装置2000をその使用環境と共に例示するブロック図である。図1において、矢印は情報の流れを表している。さらに、図1において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。
 分散システム3000は、複数の処理サーバ3200を有する。各処理サーバ3200には、タスクが割り当てられる。処理サーバ3200は、サーバ、パーソナルコンピュータ(PC)、タブレット端末など、種々の計算機である。処理サーバ3200は、割り当てられたタスクを実行する。異常検出装置2000は、処理サーバ3200に割り当てられているタスクを処理対象とする。具体的には、異常検出装置2000は、処理サーバ3200上で実行されているタスクの処理速度が異常であるか否かを判定する。異常検出装置2000は、処理サーバ3200同様、種々の計算機である。なお、処理サーバ3200上で実行するタスクは1つであってもよいし、複数であってもよい。
 処理サーバ3200と異常検出装置2000は、ネットワークを介して接続されている。このネットワークは、有線回線で構成されるネットワークでもよいし、無線回線で構成されるネットワークでもよいし、有線回線と無線回線とを混在させて構成されているネットワークでもよい。
 図2は、実施形態1に係る異常検出装置2000の構成を例示するブロック図である。図2において、矢印は情報の流れを表している。さらに、図2において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。異常検出装置2000は、履歴取得部2020、対象範囲決定部2040、分布算出部2060、及び異常判定部2080を有する。以下、それぞれについて説明する。
<履歴取得部2020>
 履歴取得部2020は、進捗履歴情報を取得する。進捗履歴情報は、複数の記録時点それぞれにおける、複数のタスクの進捗に関する情報である。
<対象範囲決定部2040>
 対象範囲決定部2040は対象範囲を決定する。
<分布算出部2060>
 分布算出部2060は、複数のタスクに関する進捗履歴情報から、タスクの処理速度の確率分布を算出する。この確率分布を、タスク速度分布と表記する。ここで、分布算出部2060は、進捗履歴情報のうち、記録時点が対象範囲決定部2040によって決定された対象範囲に含まれる進捗履歴情報のみを用いて、タスク速度分布を算出する。
<異常判定部2080>
 異常判定部2080は、判定対象のタスクの処理速度とタスク速度分布とを比較することで、判定対象のタスクの処理速度が異常であるか否かを判定する。以下、判定対象のタスクを、対象タスクと表記する。
<ハードウエア構成>
 異常検出装置2000が有する各機能構成部は、例えば、個々に又は複数組み合わせられた状態で、少なくとも1つのハードウエア構成要素として実現される。その他にも例えば、各機能構成部は、少なくとも1つのソフトウエア構成要素として実現される。その他にも例えば、各機能構成部は、ハードウエア構成要素とソフトウエア構成要素の組み合わせにより実現される。
 図3は、実施形態1に係る異常検出装置2000のハードウエア構成を例示するブロック図である。図3において、異常検出装置2000は、バス1020、プロセッサ1040、メモリ1060、ストレージ1080、及びネットワークアダプタ1100を有する。
 バス1020は、プロセッサ1040、メモリ1060、ストレージ1080、及びネットワークアダプタ1100が、相互にデータを送受信するためのデータ伝送路である。プロセッサ1040は、例えば CPU (Central Processing Unit) や GPU (Graphics Processing Unit) などの演算処理装置である。メモリ1060は、例えば RAM (Random Access Memory) や ROM (Read Only Memory) などのメモリである。ストレージ1080は、例えばハードディスク、SSD (Solid State Drive)、メモリカードなどの記憶装置である。また、ストレージ1080は、RAM や ROM 等のメモリであってもよい。ネットワークアダプタ1100は、異常検出装置2000が外部の装置とネットワークを介して通信を行うためのインタフェースである。ネットワークアダプタ1100は、無線回線に接続するためのインタフェースであってもよいし、有線回線に接続するためのインタフェースであってもよい。
 履歴取得モジュール1220は、異常検出装置2000に、履歴取得部2020の機能を持たせるためのプログラムである。プロセッサ1040は、履歴取得モジュール1220を実行することで、履歴取得部2020の機能を実現する。
 対象範囲決定モジュール1240は、異常検出装置2000に、対象範囲決定部2040の機能を持たせるためのプログラムである。プロセッサ1040は、対象範囲決定モジュール1240を実行することで、対象範囲決定部2040の機能を実現する。
 分布算出モジュール1260は、異常検出装置2000に、分布算出部2060の機能を持たせるためのプログラムである。プロセッサ1040は、分布算出モジュール1260を実行することで、分布算出部2060の機能を実現する。
 異常判定モジュール1280は、異常検出装置2000に、異常判定部2080の機能を持たせるためのプログラムである。プロセッサ1040は、異常判定モジュール1280を実行することで、異常判定部2080の機能を実現する。
 例えばプロセッサ1040は、上記各モジュールをメモリ1060上に読み出して実行する。ただし、プロセッサ1040は、上記各モジュールを、メモリ1060上に読み出さずに実行してもよい。
 ストレージ1080は、上記各モジュールを格納する。
 異常検出装置2000のハードウエア構成は、図3に示した構成に限定されない。例えば、上記各モジュールはメモリ1060に格納されてもよい。この場合、異常検出装置2000は、ストレージ1080を備えていなくてもよい。
<処理の流れ>
 図4は、実施形態1に係る異常検出装置2000によって実行される処理の流れを例示するフローチャートである。ステップS102において、対象範囲決定部2040は対象範囲を決定する。ステップS104において、履歴取得部2020は、記録時点が対象範囲に含まれる進捗履歴情報を取得する。ステップS106において、分布算出部2060は、履歴取得部2020によって取得された進捗履歴情報を用いて、タスク速度確率分布を算出する。ステップS108において、異常判定部2080は対象タスクの処理速度が異常であるか否かを判定する。
 以上のように、本実施形態の異常検出装置2000は、タスク速度分布の算出に用いる進捗履歴情報の記録時点の対象範囲を決定する。ここで、タスクの処理速度は正常時であっても変動する。そのため、長い期間のタスクの処理速度の履歴を用いてタスク速度分布を生成すると、長い期間における正常なタスクの処理速度の変動がタスク速度分布に反映されてしまう。したがって、タスク処理分布が、異常判定部2080による判定時点においてタスクがとるべき速度の範囲を正確に表さなくなってしまい、結果として、異常判定部2080による判定の精度が低くなってしまう。本実施形態によれば、対象範囲決定部2040によって決定された対象範囲に含まれる進捗履歴情報のみを用いて、タスク速度分布を算出する。したがって、対象範囲を決定する処理を行わない場合と比較し、異常判定部2080による判定の精度が高くなる。
 以下、本実施形態の異常検出装置2000について、さらに詳しく説明する。
<履歴取得部2020の詳細>
 図5は、進捗履歴情報の構成をテーブル形式で例示する図である。図5で表された進捗履歴情報を、進捗履歴情報テーブル200と表記する。進捗履歴情報テーブル200は、タスク ID 202、記録時点204、及び進捗度206を有する。進捗履歴情報テーブル200の各レコードは、タスク ID 202で特定されるタスクの記録時点204における進捗度を、進捗度206に示す。
 進捗度206は、タスクの進捗に関する情報である。例えば進捗度206は、タスクの処理速度の算出に利用できる情報を示す。具体的には、進捗度206は、タスクの進捗率、処理対象のデータ量に対する処理済みのデータ量の割合などを示す。その他にも、進捗度206は、タスクが利用したリソース使用量を累積した値などを示してもよい。タスクがどの程度リソースを使用してきたかを把握することで、タスクの進捗を予測することができる。リソース使用率は、例えば CPU 使用率、メモリ使用率、及びディスク帯域やネットワーク帯域の使用率である。さらに、進捗度206は、数学モデルによって計算された残り処理時間の予測値であってもよい。また、進捗度206は、タスクの処理速度の算出に利用できる情報ではなく、タスクの処理速度を直接表してもよい。タスクの処理速度は、単位時間当たりのタスクの進捗率、単位時間当たりのデータ処理量、又は単位時間当たりのリソース使用量などである。
 履歴取得部2020が進捗履歴情報を取得する方法は様々である。例えば履歴取得部2020は、外部の装置にアクセスして進捗履歴情報を取得する。その他にも例えば、履歴取得部2020は、外部の装置から入力される進捗履歴情報や、手動で入力される進捗履歴情報を取得する。ここで、履歴取得部2020は、記録時点が対象範囲に含まれる進捗履歴情報のみを取得してもよいし、記録時点が対象範囲に含まれるか否かに関係なく進捗履歴情報を取得してもよい。前者の場合、分布算出部2060は、履歴取得部2020によって取得された進捗履歴情報を全て用いてタスク速度分布を算出する。一方、後者の場合、分布算出部2060は、履歴取得部2020によって取得された進捗履歴情報の中から、記録時点が対象範囲に含まれている進捗履歴情報のみを選択する処理を行う。
<分布算出部2060の詳細>
 分布算出部2060は、タスクの処理速度を標本とし、その母集団におけるタスクの処理速度の確率分布を推定する。分布算出部2060は、この推定した確率分布を、タスク速度分布とする。ここで、進捗履歴情報が直接タスクの処理速度を示している場合、分布算出部2060は、記録時点が対象範囲に含まれている進捗履歴情報によって示されている処理速度を標本として、タスク速度分布を算出する。一方、進捗履歴情報が直接タスクの処理速度を示していない場合、分布算出部2060は、進捗履歴情報を用いてタスクの処理速度を算出する。そして、分布算出部2060は、算出した処理速度を標本として、タスク速度分布を算出する。
 分布算出部2060が進捗履歴情報から処理速度を算出する方法は、進捗履歴情報が示している情報に依存する。例えば進捗履歴情報が、2つの異なる記録時点における同一のタスクの進捗度を示している場合、分布算出部2060は、「進捗度の差/記録時点の差」を計算することで、単位時間当たりの進捗度を算出する。そして、分布算出部2060は、この単位時間当たりの進捗度をタスクの処理速度とする。
 分布算出部2060によって推定されるタスクの処理速度の、確率分布のモデルは様々である。例えばこの確率分布モデルは、ある閾値で確率1と0が切り替わるモデル、正規分布、ポアソン分布、カイ二乗分布、又は指数分布などである。分布算出部2060がどの確率分布モデルを用いてタスク速度分布を算出するのかは、予め分布算出部2060に設定されていてもよいし、外部から設定されてもよい。また、分布算出部2060自身が、進捗履歴情報などを用いて、使用する確率分布モデルを決定しても良い。
<<実施例1>>
 分布算出部2060がタスク速度分布を算出する処理の具体例を、実施例1として示す。この実施例において分布算出部2060が算出するタスク速度分布は、閾値で確率1と0が切り替わるモデルを使用した確率分布である。本実施例では、最も速いタスクの速度の定数倍を閾値とする。
 図6は、実施例1に係る分布算出部2060によって実行されるタスク速度分布の算出処理の流れを例示するフローチャートである。ここで、分布算出部2060に対して、定数α (0 <α≦ 1) が設定される。αは、予め分布算出部2060に設定されていてもよいし、分布算出部2060の外部から設定されてもよい。
 ステップS202において分布算出部2060は、標本とするタスクの処理速度の中から、最も大きい処理速度 Vm を特定する。ステップS204において、分布算出部2060は、α・Vm を閾値 D に設定する。ステップS206において分布算出部2060は、タスクの処理速度 v について、0 ≦ v ≦ D となる確率が 0 であり、v > D となる確率が1であるタスク速度分布を算出する。このタスク速度分布は、図7のグラフで表される。図7のグラフにおいて、横軸は処理速度 v を表し、縦軸は発生確率 p を表している。
<<実施例2>>
 分布算出部2060がタスク速度分布を算出する処理の別の具体例を、実施例2として示す。この実施例において分布算出部2060が算出するタスク速度分布は、確率分布モデルとしてポアソン分布を使用する場合のタスク速度分布である。また、本実施例では、タスクの処理速度は、タスク完了までの予測時間によって表される。
 図8は、実施例2に係る分布算出部2060によって実行されるタスク速度分布の算出処理の流れを例示するフローチャートである。ステップS302において、分布算出部2060は、タスクの処理速度のヒストグラムを生成する。ステップS304において、分布算出部2060は、ヒストグラムから最頻値 k_mode を算出する。ステップS306において、分布算出部2060は、ポアソン分布P(λ, k) を、タスク速度分布として算出する。ここで、k は、max(k' - k_mode, 0) で定まる。なお、k' はヒストグラムにおけるビン番号である。
 ビンの幅やλなどのパラメタは、予め分布算出部2060に内部に設定されている値でもよいし、分布算出部2060の外部から設定される値であってもよいし、分布算出部2060によって算出される値であってもよい。分布算出部2060がビンの幅を算出する場合、例えば分布算出部2060は、平方根選択などの変換式を利用してビンの幅を算出する。
 なお本実施例では、タスクの処理速度を表す値としてタスク完了までの予測時間を用いたものの、ポアソン分布を使用する方法の実装はこれに限らない。例えば、k = max(k_mode - k', 0)とすることで、タスクの単位時間当たりの進捗度を、タスクの処理速度を表す値として用いることができる。
 また、分布算出部2060は、異常判定部2080によって処理速度が異常であると判定された対象タスクに関する進捗履歴情報を、その判定以降におけるタスク速度分布の算出に利用しなくてもよい。例えば、異常検出装置2000が、ある対象タスク1の処理速度が異常であると判定した後に、別の対象タスク2について処理速度が異常であるか否かを判定するとする。この場合、分布算出部2060は、対象範囲に含まれる進捗履歴情報のうち、対象タスク1に関する進捗履歴情報以外の進捗履歴情報を用いて、タスク速度分布を算出する。これにより、処理速度が異常であると判定されたタスクの処理速度がタスク速度分布を算出するための標本に含まれないため、タスク速度分布が、対象タスクがとるべき処理速度の分布をより正確に表すようになる。
 例えば異常検出装置2000は、ある対象タスクの処理速度が異常であると判定した場合に、その対象タスクに関する進捗履歴情報を、進捗履歴情報が格納されている格納部から削除する。また、異常検出装置2000は、処理速度が異常であると判定された対象タスクに関する進捗履歴情報に、処理速度が異常であるタスクに関連する情報であることを示すフラグを対応付けて格納する。そして、分布算出部2060は、履歴取得部2020によって取得された進捗履歴情報のうち、このフラグが対応付けられている進捗履歴情報を、タスク速度分布の算出に利用しない。
<異常判定部2080の詳細>
 異常判定部2080が、タスク速度分布を用いて対象タスクの処理速度が異常であるか否かを判定する方法は、様々である。例えば、異常判定部2080は、タスク速度分布 p(v) において、対象タスクの処理速度 v1 の発生確率 p(v1) が所定の閾値以下である場合に、対象タスクの処理速度が異常であると判定する。
 その他にも例えば、異常判定部2080は、タスク速度分布 p(v) を用いて、対象タスクの処理速度 v1 に対応する累積頻度 c(v1) を算出する。この累積頻度 c(v1) は、以下の数式(1)によって算出される。そして、異常判定部2080は、対象タスクの処理速度 v1 に対応する累積頻度 c(v1) が所定の閾値以下である場合に、対象タスクの処理速度が異常であると判定する。
Figure JPOXMLDOC01-appb-M000001
<対象タスクの詳細>
 異常検出装置2000がどのタスクを対象タスクとするかを決定する方法は様々である。例えば異常検出装置2000は、分散システム3000に含まれるタスクのうち、IDが小さいタスク又は大きいタスクから順に、対象タスクとして選択する。また、例えば異常検出装置2000は、分散システム3000に含まれるタスクの中から、ランダムに対象タスクを選択する。また、異常検出装置2000は、外部の装置や人手による対象タスクの指定を受け付けてもよい。また、異常検出装置2000は、外部の装置にアクセスしてどのタスクを対象タスクとするかを示す情報を取得してもよい。
 例えば異常検出装置2000は、各タスクを定期的に対象タスクとして処理を行う。また、異常検出装置2000は、各タスクを対象タスクとして処理を行う時間間隔を、タスクごとに異ならせてもよい。その場合、例えば異常検出装置2000の内部又は外部に、各タスクについて、そのタスクを対象タスクとして処理を実行する時点や時間間隔を示す情報が格納されている。
<作用・効果>
 本実施形態の異常検出装置2000は、タスク速度分布の算出に用いる進捗履歴情報の記録時点の対象範囲を決定する。ここで、タスクの処理速度は正常時であっても変動する。そのため、長い期間のタスクの処理速度の履歴を用いてタスク速度分布を生成すると、長い期間における正常なタスクの処理速度の変動がタスク速度分布に反映されてしまう。したがって、タスク処理分布が、異常判定部2080による判定時点においてタスクがとるべき速度の範囲を正確に表さなくなってしまい、結果として、異常判定部2080による判定の精度が低くなってしまう。本実施形態によれば、対象範囲決定部2040によって決定された対象範囲に含まれる進捗履歴情報のみを用いて、タスク速度分布を算出する。したがって、対象範囲を決定する処理を行わない場合と比較し、異常判定部2080による判定の精度が高くなる。
[実施形態2]
 図9は、実施形態2に係る異常検出装置2000を例示するブロック図である。図9において、矢印は情報の流れを表している。さらに、図9において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。以下で説明する点を除き、実施形態2の異常検出装置2000は、実施形態1の異常検出装置2000と同様である。
 実施形態2の異常検出装置2000は実行制御部2100を有する。実行制御部2100は、異常判定部2080によって対象タスクの処理速度が異常であると判定された場合、対象タスクの実行を制御する。例えば実行制御部2100は、対象タスクを、対象タスクが割り当てられている処理サーバ3200上で再実行する。また例えば実行制御部2100は、対象タスクを複製し、複製したタスクを、対象タスクが割り当てられている処理サーバ3200とは異なる処理サーバ3200に割り当てる。この際、実行制御部2100は、対象タスクの実行を停止してもよいし、対象タスクの実行をそのまま続けさせてもよい。対象タスクを元の処理サーバ3200上で実行させ続け、かつ対象タスクを複製することで生成したタスクを他の処理サーバ3200上で実行すれば、この2つのタスクのどちらか一方が処理を完了した時点で、目的の処理が完了したことになる。なお、実行制御部2100は、対象タスクから複数のタスクを複製してもよい。これら複数のタスクは、同一の処理サーバ3200に割り当てられてもよいし、異なる処理サーバ3200に割り当てられてもよい。
<処理の流れ>
 図10は、実施形態2に係る異常検出装置2000によって実行される処理の流れを例示するフローチャートである。ステップS402において、実行制御部2100は対象タスクの実行を制御する。なお、実施形態2の異常検出装置2000は、ステップS402を実行する前に、図4に示したステップS102~S108の処理を実施形態1の異常検出装置2000と同様に実行する。図を簡潔にするために、図10において、ステップS102~S108は省略されている。
<作用・効果>
 実施形態2の異常検出装置2000によれば、対象タスクの処理速度が異常な場合に、対象タスクの実行が制御される。例えば異常検出装置2000は、対象タスクを処理サーバ3200上で再実行したり、対象タスクを複製して他の処理サーバ3200へ割り当てたりする。これにより、対象タスクによって行われる処理が完了するまでにかかる時間が短くなる。
[実施形態3]
 図11は、実施形態3に係る異常検出装置2000を例示するブロック図である。図11において、矢印は情報の流れを表している。さらに、図11において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。以下で説明する点を除き、実施形態3の異常検出装置2000は、実施形態1又は2の異常検出装置2000と同様である。
 実施形態3の異常検出装置2000は所定期間取得部2160を有する。所定期間取得部2160は、所定期間を取得する。実施形態3の対象範囲決定部2040は、対象範囲の長さを、この所定期間から決定する。
 例えば対象範囲決定部2040は、対象範囲の終了時点を現在時点とする。この場合、対象範囲の開始時点は、現在時点から上記所定期間を引いた時点である。ただし、対象範囲の終了時点は、現在時点でなくてもよい。例えば対象範囲決定部2040は、現在時点から所定の値を引いた時点を、対象範囲の終了時点とする。この所定の値は、予め対象範囲決定部2040の内部に設定されていてもよいし、対象範囲決定部2040の外部から設定される値であってもよい。また、対象範囲決定部2040は、この所定の値を、ランダムな値などとして算出してもよい。
<作用・効果>
 以上により、本実施形態の異常検出装置2000によれば、所定期間の長さの対象範囲に含まれる進捗履歴情報から、タスク速度分布が算出される。例えば本実施形態の異常検出装置2000は、タスクの状態が遷移するタイミングが予想できる場合に有効である。ここで、タスクの状態とは、データの読み込みを行う状態、読み込んだデータを処理する状態、処理したデータを書き出す状態などを指す。例えば、予めタスクをテスト実行させることで、タスクが各状態にある時間を予測しておく。そして、予測した時間を用いて設定された所定期間を用いることで、分布算出部2060は、タスクが1つの状態にある間の進捗履歴情報を用いてタスク速度分布を算出できる。この所定期間を用いて対象範囲を決定する方法は、対象範囲を決定する処理がシンプルであるため、対象範囲の決定にかかる時間が短いという利点がある。
[実施形態4]
 図12は、実施形態4に係る異常検出装置2000を例示するブロック図である。図12において、矢印は情報の流れを表している。さらに、図12において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。以下で説明する点を除き、実施形態4の異常検出装置2000は、実施形態1又は2の異常検出装置2000と同様である。
<割当情報取得部2180>
 実施形態4の異常検出装置2000は、割当情報取得部2180を有する。割当情報取得部2180は割当情報を取得する。割当情報は、処理サーバ3200と、その処理サーバ3200に割り当てられたタスクとの対応付けを示す。
<対象範囲決定部2040>
 実施形態4の対象範囲決定部2040は、割当情報に基づいて対象範囲を決定する。具体的には、対象範囲決定部2040は、いずれかの処理サーバ3200に対するタスクの割り当てが変化した時点を、対象範囲の開始時点とする。例えば対象範囲決定部2040は、ある処理サーバ3200に対して新たなタスクが割り当てられた時点や、処理サーバ3200に対して割り当てられていたタスクがその処理サーバ3200に割り当てられていない状態になった時点を、対象範囲の開始時点とする。ここで、「処理サーバ3200に対して割り当てられていたタスクがその処理サーバ3200に割り当てられていない状態になる」とは、例えばそのタスクの実行が完了したり、そのタスクを別の処理サーバ3200に割り当てたりしたことを意味する。
 なお、割当情報は、分散システム3000に割り当てられているジョブの数を示してもよい。分散システム3000に割り当てられているジョブの数が変化すると、処理サーバ3200に対するタスクの割り当ても変化する。したがって、分散システム3000に割り当てられているジョブの数は、処理サーバ3200に対するタスクの割り当ての変化を把握するための情報として利用することができる。
 対象範囲決定部2040は、割当情報の変化を検出することで、処理サーバ3200に対するタスクの割り当てに変化があったことを検出する。例えば対象範囲決定部2040は、定期的に割当情報を取得し、処理サーバ3200に対するタスクの割り当てに変化が無いか否かを監視する。そして、タスクの割り当てに変化があった場合に、その時点を対象範囲の開始時点の候補として記録しておく。対象範囲決定部2040は、対象範囲を決定する際、この記録されている時点を、対象範囲の開始時点として用いる。
 その他にも例えば、対象範囲決定部2040は、対象範囲を決定する際に、複数の時点それぞれにおける割当情報をまとめて取得する。この場合、対象範囲決定部2040は、取得した複数の割当情報を比較することで、処理サーバ3200に対するタスクの割り当てに変化があった時点を算出する。
 図13は、割当情報の構成をテーブル形式で例示する図である。図13に示されている割当情報を、割当情報テーブル300と表記する。割当情報テーブル300は、記録時点302、処理サーバ ID 304、及びタスク ID 306を有する。割当情報テーブル300の各レコードは、記録時点302において、処理サーバ ID 304で特定される処理サーバ3200に割り当てられているタスクの ID を、タスク ID 306に示す。
 実施形態4の対象範囲決定部2040が決定する対象範囲の終了時点は、実施形態3の対象範囲決定部2040が決定する対象範囲の終了時点と同様である。
<処理の流れ>
 図14は、実施形態4に係る異常検出装置2000によって実行される処理の流れを例示するフローチャートである。ステップS502において、割当情報取得部2180は、割当情報を取得する。ステップS504において、対象範囲決定部2040は、割当情報を、時点が新しい順にソートする。ステップS506~S512は、条件を満たす間繰り返し行うループ処理Aである。以下、この条件を、ループ条件 A と表記する。ループ条件 A は、カウンタ i が割当情報の総数 N より小さいことである。ここで、カウンタ i の初期値を 1 とする。また、カウンタ i は、ループ処理 A が一回終わるごとに1加算される。以下、 i 番目の割当情報を割当情報 i と表記する。最も順位が前の割当情報は、割当情報 0 である。
 ステップS506において、対象範囲決定部2040は、ループ条件 A が満たされているか否かを判定する。ループ条件 A が満たされている場合、図14の処理は、ステップS508に進む。一方、ループ条件 A が満たされていない場合、図14の処理は、ステップS516に進む。
 ステップS508において、対象範囲決定部2040は、割当情報 (i-1)と割当情報 iとを比較する。この比較結果に応じ、ステップS510において、図14の処理は分岐する。2つの割当情報を比較した結果、タスクの割り当てに変化がなかった場合、図14の処理はステップS512に進む。一方、タスクの割り当てに変化があった場合、図14の処理はステップS514に進む。
 ステップS512は、ループ処理 A の終端である。そのため、図14の処理は、ステップS506に戻る。
 ステップS514において、対象範囲決定部2040は、i の値を1減らす。
 ステップS516において、対象範囲決定部2040は、割当情報 i に対応する時点を、対象範囲の開始時点とする。例えば割当情報が割当情報テーブル300で表される場合、対象範囲の開始時点は、割当情報 i の記録時点302に示されている時点となる。
<作用・効果>
 実施形態4の異常検出装置2000によれば、割当情報に基づいて、対象範囲が決定される。ここで、処理サーバ3200に対するタスクの割り当てが変化すると、その影響を受けて、既に実行されているタスクの処理速度が変化する場合がある。例えば、処理サーバ3200に対して新たにタスクを割り当てた場合、その処理サーバ3200上で既に実行されているタスクの処理速度は小さくなると考えられる。したがって、タスクの割り当てが変化する前と後では、タスクの状態が正常であっても、タスクの処理速度が変化すると考えられる。
 本実施形態の異常検出装置2000によれば、タスクの割り当てが変化した時点以降が対象範囲となる。そのため、タスクの割り当てが変化した後におけるタスクの処理速度に基づいて、タスク速度分布が算出される。このように、分布算出部2060によって算出されるタスク速度分布が、タスクの割り当てが変化する前におけるタスクの処理速度の影響を受けない。そのため、本実施形態の異常検出装置2000によって算出されるタスク速度分布は、対象タスクがとるべき処理速度の分布をより正確に表すようになる。その結果、異常判定部2080による判定の精度が高くなる。
[実施形態5]
 図15は、実施形態5に係る異常検出装置2000を例示するブロック図である。図15において、矢印は情報の流れを表している。さらに、図15において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。以下で説明する点を除き、実施形態5の異常検出装置2000は、実施形態1又は2の異常検出装置2000と同様である。
<代表値算出部2200>
 実施形態5の異常検出装置2000は、代表値算出部2200を有する。代表値算出部2200は、複数の期間それぞれについて、タスクの処理速度の代表値を算出する。代表値算出部2200は、各期間における代表値を、その期間に含まれる進捗履歴情報を用いて算出する。例えばある期間における代表値は、その期間に含まれる進捗履歴情報に対応するタスクの処理速度の統計値である。この統計値は、例えば平均値、中央値、最頻値などである。
 実施形態5の対象範囲決定部2040は、現在時点に最も近い期間における代表値(以下、基準代表値)と、その他の代表値を比較する。次に、対象範囲決定部2040は、基準代表値と有意な差がある代表値に対応する期間のうち、最も現在時点に近い期間を特定する。そして、対象範囲決定部2040は、特定した期間より後の期間のみを含むように、対象範囲を決定する。
 図16は、対象範囲決定部2040による処理を概念的に説明するためのグラフである。グラフの縦軸は代表値の大きさを表しており、グラフの横軸は時間の流れを示している。現在時点に最も近い期間を期間1とする。また、期間2、期間3、期間4の順に現在時点との差が大きい。期間1における代表値1は、基準代表値となる。
 図16において、期間2における代表値2と期間3における代表値3は、基準代表値との間に有意な差がない。一方、期間4における代表値4は、基準代表値との間に有意な差がある。そこで、対象範囲決定部2040は、期間3以降期間のみを含むように、対象期間を決定する。そのため、対象期間は、期間3、期間2、及び期間1を含む。
 上記期間の定め方は様々である。例えば対象範囲決定部2040は、現在時点と、進捗履歴情報において最も古い記録時点との間を、所定数の長さの区間に区切る。その他にも例えば、対象範囲決定部2040は、現在時点を始点とし、期間の長さが w(w は 0 以上の実数)、隣接する2つの期間の開始時点の間隔が s(s は w 以上かつ 0 より大きい実数)の期間を複数作る。
<処理の流れ>
 図17は、実施形態5に係る異常検出装置2000によって実行される処理の流れを例示するフローチャートである。ステップS602において、履歴取得部2020は、進捗履歴情報を取得する。ステップS604において、対象範囲決定部2040は、期間の終了時点 t に、初期値 ts を設定する。例えば ts は現在時点である。ステップS606において、代表値算出部2200は、t - w が開始時点であり、かつ t が終了時点である期間 [t - w, t] に含まれる進捗履歴情報を用いて、タスク速度の代表値を算出する。対象範囲決定部2040は、この代表値を基準代表値 Vr とする。
 ステップS608~S614は、所定の条件を満たす間繰り返し実行されるループ処理 B である。上記所定の条件(以下、ループ条件B)は、t > te である。ここで、 te は、進捗履歴情報が示す記録時点のうち、最も古い記録時点である。また、ループ処理 B における t の初期値は ts- s である。s は正の実数である。さらに、ループ処理 B を一回実行するごとに、t の値は s 減少する。ステップS608において、対象範囲決定部2040は、ループ条件 B が満たされているか否かを判定する。ループ条件 B が満たされている場合、図17の処理はステップS610に進む。一方、ループ条件 B が満たされていない場合、図17の処理はステップS616に進む。
 ステップS610において、対象範囲決定部2040は、t - w が開始時点であり、かつ t が終了時点である期間 [t - w, t] に含まれる進捗履歴情報を用いて、タスク速度の代表値を算出する。ステップS612において、対象範囲決定部2040は、ステップS610で算出した代表値と基準代表値 Vr との間に有意な差があるか否かを判定する。この2つの間に有意な差がない場合、図17の処理はステップS614に進む。一方、この2つの間に有意な差がある場合、図17の処理はステップS618に進む。
 ステップS614は、ループ処理 B の終端である。図17の処理はステップS608に進む。
 ステップS616は、算出した代表値全てについて、基準代表値との間に有意な差がない場合に実行される処理である。例えば対象範囲決定部2040は、ステップS616において、全ての進捗履歴情報の記録時点が含まれる期間を対象期間とする。
 ステップS618において、対象範囲決定部2040は、t より後の時点のみが含まれるように対象期間を決定する。例えば、対象期間は期間 (t, ts] である。
<作用・効果>
 本実施形態によれば、現在時点に近い期間におけるタスクの処理速度と比較し、タスクの処理速度に有意な差がある期間を特定し、その期間以前の期間を含まないように、対象期間が決定される。ここで、タスクの処理速度は、タスクが正常であり、かつタスクの割り当てに変化が無くても変化することがある。例えば、タスクの処理内容が変化する場合は、タスクの処理速度が変化すると考えられる。これは例えば、タスクの処理が、データの解析を行う処理から、データの書き出しを行う処理に変わる場合などである。
 本実施形態によれば、タスクの割り当てが変化するか否かに関わらず、タスクの処理速度が有意に変化したことを検出することができる。そして、対象範囲決定部2040は、タスクの処理速度が有意に変化した時点以前の期間を含まないように、対象期間を決定する。こうすることで、本実施形態によれば、タスクの処理速度が有意に変化していない期間に含まれる進捗履歴情報のみを用いてタスク速度分布を算出する。そのため、本実施形態の異常検出装置2000によって算出されるタスク速度分布は、対象タスクがとるべき処理速度の分布をより正確に表すようになる。その結果、異常判定部2080による判定の精度が高くなる。
[実施形態6]
 図18は、実施形態6に係る異常検出装置2000を例示するブロック図である。図18において、矢印は情報の流れを表している。さらに、図18において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。以下で説明する点を除き、実施形態6の異常検出装置2000は、実施形態1~5いずれかの異常検出装置2000と同様である。
 実施形態6において、各タスクには、タスク種別が割り当てられている。例えば、同じジョブから生成されたタスクには、同一のタスク種別が割り当てられる。実施形態6の分布算出部2060は、対象タスクと同一のタスク種別に対応しているタスクに関する進捗履歴情報のみを用いて、タスク速度分布を算出する。そのために、実施形態6の異常検出装置2000は、種別情報取得部2140を有する。種別情報取得部2140は、タスクに対応するタスク種別を取得する。
 例えば、タスク種別が G1 であるタスクが T1、T2、及び T3 の3つであり、タスク種別が G2 であるタスクが T4 及び T5 の2つであるとする。対象タスクがT1、T2、及び T3 のいずれかである場合、分布算出部2060は、タスク種別 G1 に対応している T1、T2、及び T3 に関する進捗履歴情報のみを用いてタスク速度分布を算出する。一方、対象タスクが T4 又は T5 である場合、分布算出部2060は、タスク種別 G2 に対応している T4 及び T5 に関する進捗履歴情報のみを用いて、タスク速度分布を算出する。
 また、対象範囲決定部2040は、対象タスクのタスク種別に応じて、対象範囲を決定してもよい。例えば、対象範囲決定部2040が実施形態3で説明したように、所定期間取得部2160によって取得された所定期間を、対象期間の長さにすると仮定する。この場合、所定期間取得部2160は、対象タスクのタスク種別に応じた所定期間を取得する。ここで、タスクが1つの状態(例:データの読み込みを行う状態)にある期間の長さは、そのタスクのタスク種別に依存すると考えられる。例えば、データの読み込みに長い時間を要するタスク種別、データの解析処理に長い時間を要するタスク種別などが考えられる。そこで、各タスク種別について、そのタスク種別のタスクが同じ状態に留まる期間を予測し、この予測値を所定期間とすることで、各タスク種別に適した所定期間を設定することができる。例えばこの予測値は、各タスク種別のタスクをテスト実行することで算出することができる。
<作用・効果>
 本実施形態によれば、対象タスクと同一のタスク種別に対応しているタスクに関する進捗履歴情報のみを用いて、タスク速度分布を算出する。ここで、同一のタスク種別に対応するタスク同士の場合、正常時における処理速度の差が小さいと考えられる。一方、異なるタスク種別に対応するタスク同士の場合、正常時においても、タスクの処理速度の差が大きい可能性がある。本実施形態によれば、対象タスクと同一のタスク種別に対応しているタスクに関する進捗履歴情報のみを用いてタスク速度分布を算出するため、タスク速度分布がより正確に、対象タスクの処理速度がとるべき値の範囲を表す。したがって、本実施形態によれば、タスク種別を考慮せずにタスク速度分布を算出する場合と比較し、異常判定部2080による判定の精度が高くなる。
[実施形態7]
 図19は、実施形態7に係る異常検出装置2000を例示するブロック図である。図19において、矢印は情報の流れを表している。さらに、図19において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。以下で説明する点を除き、実施形態7の異常検出装置2000は、実施形態1~6いずれかの異常検出装置2000と同様である。
 実施形態7において、進捗履歴情報は、履歴格納部100に格納されている。履歴格納部100は、異常検出装置2000の内部に設けられてもよいし、外部に設けられてもよい。実施形態7の履歴取得部2020は、履歴格納部100から進捗履歴情報を取得する。
 実施形態7の異常検出装置2000は、履歴削除部2220を有する。履歴削除部2220は、記録時点が対象範囲決定部2040によって決定された対象範囲に含まれない進捗履歴情報を、履歴格納部100から削除する。
<作用・効果>
 本実施形態によれば、記録時点が対象範囲に含まれない進捗履歴情報が、履歴格納部100から削除される。これにより、履歴格納部100に格納されている進捗履歴情報の数が単調に増え続けることを防ぐことができる。その結果、履歴取得部2020によって取得される進捗履歴情報の数や、対象範囲決定部2040が対象範囲の決定の際に処理する進捗履歴情報の数を少なくなるため、履歴取得部2020や対象範囲決定部2040による処理に要する時間が短くなる。
 また、同様の理由により、履歴格納部100の記憶容量を小さくすることができる。したがって、例えば履歴格納部100が異常検出装置2000の内部に設けられている場合、異常検出装置2000を小型にしたり、安価にしたりすることができる。履歴格納部100が異常検出装置2000の外部に設けられている場合であっても、異常検出装置2000や分散システム3000を含めたシステム全体を安価にすることができる。
<実施例3>
 異常検出装置2000の具体的な動作について、実施例を用いて説明する。なお、以下に示すのは、異常検出装置2000の動作の一例であり、本発明の異常検出装置2000は、以下に示す実施例によって何らの限定を受けない。図20は、実施例3に係る異常検出装置2000を、その使用環境と共に示すブロック図である。図20において、矢印は情報の流れを表している。さらに、図20において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。
 実施例3において、分散システム3000は、マスタサーバ3100を有する。マスタサーバ3100は、実行管理部3120及び履歴管理部3140を有する。実行管理部3120は、タスクの実行を管理する。具体的には、実行管理部3120は、処理サーバ3200に対して新たなタスクを割り当てる、処理サーバ3200に割り当てられているタスクの実行を停止又は再開する、又は処理サーバ3200に割り当てられているタスクを別の処理サーバ3200へ割り当てるなどといった処理を行う。履歴管理部3140は、各処理サーバ3200から進捗度情報を収集する。そして、収集した進捗度情報の履歴を、進捗履歴情報として管理する。ここで、進捗度情報は、ある時点におけるタスクの進捗度を表す。
 処理サーバ3200は、タスク実行部3220及び進捗度情報格納部3240を有する。タスク実行部3220は、タスクを実行する。例えばタスク実行部3220は、プロセス、スレッド、又は仮想マシンなどである。処理サーバ3200は、複数のタスク実行部3220を有してもよい。なお、タスク実行部3220は、タスクを複数実行してもよい。進捗度情報格納部3240は、その進捗度情報格納部3240を有する処理サーバ3200上で実行されているタスクに関する進捗度情報を格納している。
 実施例3の履歴取得部2020は、履歴管理部3140から進捗履歴情報を取得する。また、実施例3の異常検出装置2000は、実施形態5で説明した代表値算出部2200を有する。対象範囲決定部2040は、実施形態5で説明した方法で対象範囲を算出する。分布算出部2060は、履歴取得部2020が取得した進捗履歴情報のうち、対象範囲決定部2040によって決定された対象範囲に含まれる進捗履歴情報のみを用いて、タスク速度分布を算出する。異常判定部2080は、対象タスクの処理速度が異常であるか否かを判定する。実行制御部2100は、異常判定部2080による判定結果を受けて、タスクの実行を制御する。本実施例において、実行制御部2100は、実行管理部3120に対して、タスクの実行を制御する指示を送る。この指示を受けた実行管理部3120は、タスクの実行を制御する。なお、実行制御部2100は、実行管理部3120を介さずに、直接タスクの実行を制御してもよい。
 図21は、実施例3の分散システム3000に含まれる処理サーバ3200を示す図である。実施例3の分散システム3000は、処理サーバ3200として、コンピュータ c1 及び c2 を備えている。コンピュータ c1 と c2 は、1台のネットワークスイッチを介して接続されている。コンピュータ c1 は、タスク実行部3220として、プロセス P1 とP2 を備えている。また、コンピュータ c2 は、タスク実行部3220として、プロセス P3 と P4 を備えている。プロセス P1、P2、P3、P4 はそれぞれ、タスク T1、T2、T3、T4 を実行している。なお、図21において、マスタサーバ3100及び進捗度情報格納部3240は省略されている。
 コンピュータ c1 と c2 は、実行しているタスクの状態を監視して、実行しているタスクに関する進捗度情報を生成し、進捗度情報格納部3240に格納する。図22は、コンピュータ c1 と c2 の進捗度情報格納部3240に格納されている進捗度情報を併せて示す図である。ここで、本実施例における進捗度情報は、タスクの1秒当たりの処理進捗率を表している。例えば図22の1行目のレコードは、タスク T1 の1秒当たりの処理進捗率が、記録時点 1:30:01 において 5% であることを示している。ここで、1秒当たりの処理進捗率は、タスクの処理速度を表す値でもある。
 コンピュータ c1 と c2 の進捗度情報格納部3240に格納されている進捗度情報は、マスタサーバ3100が有する履歴管理部3140によって収集される。図23は、履歴管理部3140によって管理されている進捗履歴情報を示す図である。例えば、図23の1行目のレコードは、タスク T1の1秒当たりの処理進捗率が記録時点 1:28:02 において 50% であったことを表している。なお、上述したように、1秒当たりの処理進捗率は、処理速度を表す値でもある。したがって、本実施例において、進捗履歴情報は、タスクの処理速度を直接示している。
 異常検出装置2000が行う処理について説明する。履歴取得部2020は、履歴管理部3140から図23に示されている進捗履歴情報を取得する。対象範囲決定部2040は、実施形態5で説明した方法で、対象範囲を決定する。初期値 t を 1:31:00、ウインドウ幅 w を 0:01:00、ステップ幅 s を 0:01:00 とする。対象範囲決定部2040は、期間に含まれる進捗履歴情報が示す1秒当たりの処理進捗率の平均値を、その期間の代表値として算出する。また、対象範囲決定部2040は、ある代表値が基準代表値の2倍以上である場合に、その代表値と基準代表値との間に有意な差があると判定する。
 対象範囲決定部2040が代表値を算出する第1の期間は [1:30:00, 1:31:00] である。そして、記録時点がこの期間に含まれる進捗履歴情報は、図23のレコード5~8である。したがって、対象範囲決定部2040は、この4つのレコードに示されている1秒当たりの処理進捗率を用いて代表値を算出する。代表値は 16.25%/s となる。この代表値は、基準代表値となる。
 第2の期間は、[1:29:00, 1:30:00] である。この期間に含まれる進捗履歴情報は、図23のレコード3及び4である。そこで、対象範囲決定部2040は、この2つのレコードに示されている1秒当たりの処理進捗率を用いて代表値を算出する。代表値は 22.5%/s となる。この代表値と基準代表値を比較すると、22.5 / 16.25 = 約1.38 倍である。したがって、対象範囲決定部2040は、この2つの値の間に有意な差は無いと判定する。
 第3の期間は、[1:28:00, 1:29:00] である。この期間に含まれる進捗履歴情報は、図23のレコード1及び2である。そこで、対象範囲決定部2040は、この2つのレコードに示されている1秒当たりの処理進捗率を用いて代表値を算出する。代表値は 47.5%/s となる。この代表値と基準代表値を比較すると、47.5 / 16.25 = 約2.92 倍である。したがって、対象範囲決定部2040は、この2つの値の間に有意な差があると判定する。その結果、対象範囲決定部2040は、第3の期間より後の時点を含むように対象期間を設定する。本実施例において、対象範囲決定部2040は、第1の期間と第2の期間を合わせた期間 [1:29:00, 1:31:00] を対象期間とする。
 分布算出部2060は、上記対象期間に含まれる進捗履歴情報を用いて、タスク速度分布を算出する。この対象期間に含まれる進捗履歴情報は、図23のレコード3~8である。本実施例において、分布算出部2060は、実施例1で説明した方法でタスク速度分布を算出する。ここで、α = 0.5 とする。また、対象期間に含まれる進捗履歴情報に示されているタスクの処理速度のうち、最も大きい値(Vm)は 25%/s である。したがって、閾値 D の値は、α・Vm = 0.5・25 = 12.5 となる。そして、タスクの処理速度 v について、「0 ≦ v ≦ 12.5」となる確率が 0 であり、「v > 12.5」となる確率が 1 である確率分布を、タスク速度分布として算出する。図24は、分布算出部2060によって算出されたタスク速度分布を表すグラフである。
 異常判定部2080は、実行中のタスク T1 ~ T4 それぞれを対象タスクとしてこのタスク速度分布と比較し、処理速度が異常であるか否かを判定する。なお、判定時における各タスクの処理速度は、図23のレコード5~8で表されているとする。タスク T1 ~ T4 のうち、タスク T1 の処理速度のみが、タスク速度分布において発生確率が 0 である速度となっている。したがって、異常判定部2080は、タスク T1 の処理速度が異常であると判定する。
 実行制御部2100は、実行管理部3120に対し、タスク T1 の実行を制御するように指示を送る。この指示を受けた実行管理部3120は、タスク T1 の実行を制御する。例えば実行管理部3120は、タスク T1 をプロセス P1 上で再実行する。
<実施例4>
 異常検出装置2000の具体的な動作について、さらに別の実施例を用いて説明する。本実施例で示す実施例も、異常検出装置2000の動作の一例であり、本発明の異常検出装置2000は、以下に示す実施例によって何らの限定を受けない。実施例4における異常検出装置2000及び分散システム3000の構成は、実施例3の場合と同様であるとする。
 図25は、コンピュータ c1 と c2 の進捗度情報格納部3240に格納されている進捗度情報を併せて示す図である。ここで、本実施例における進捗度情報は、タスク完了時間(タスクの処理が完了するまでの残り所用時間)の予測値又は実績値を示している。本実施例の異常検出装置2000は、タスク完了時間の予測値又は実績値を、タスクの処理速度を表す値として利用する。また、図26は、履歴管理部3140によって管理されている進捗履歴情報を示す図である。ここで、タスク T1'、T2'、T3'、及び T4' は、過去に実行されていたタスクである。
 図27は、対象範囲決定部2040によって決定される対象範囲に含まれる進捗履歴情報である。ここで、対象範囲決定部2040による対象範囲の決定は、実施例3の場合と同様に行われる。
 分布算出部2060は、図27の進捗履歴情報に示されているタスク完了時間を標本とし、タスク速度分布を算出する。実施例4において、分布算出部2060によって算出されるタスク速度分布のモデルは、ポアソン分布である。ここで、分布算出部2060は、ポアソン分布の算出に用いるヒストグラムのビンの幅を5秒、パラメタλを1とする。
 まず分布算出部2060は、進捗履歴情報に示されているタスク完了時間を標本とするヒストグラムを生成する。タスク完了時間の範囲が [0, 5) のビン(ビン1)は T'4、T4 を含むため、ビン1の要素数は2である。タスク完了時間の範囲が [5, 10) のビン(ビン2)は T'3、T2、T3 を含むため、ビン2の要素数は3である。タスク完了時間の範囲が [10, 15) のビン(ビン3)に含まれる要素はないため、ビン3の要素数は0である。タスク完了時間の範囲が [15, 20) のビン(ビン4)にも含まれる要素がないため、ビン4の要素数は0である。タスク完了時間の範囲が [20, 25) のビン(ビン5)は T1 を含むため、ビン5の要素数は1である。
 次に分布算出部2060は、ヒストグラムの最頻値のビン番号 k_mode を求める。この場合、ビン2の要素数が最大であるため、k_mode = 2となる。次に分布算出部2060は、ポアソン分布 P(λ, k)(ただし、k = max(k' - k_mode, 0))を、タスク速度分布として算出する。λ = 1であるため、P(1, k) のポアソン分布が算出される。
 異常判定部2080は、上記ポアソン分布 P(1,k) を用い、実行中のタスク T1 ~ T4 をそれぞれ対象タスクとして、タスクの処理速度が異常であるか否かを判定する。本実施例において、異常判定部2080は、タスク速度分布において、対象タスクの処理速度の発生確率が 0.1 以下である場合に、その対象タスクの処理速度が異常であると判定する。
 タスク T1 のタスク完了時間は 20 秒であるため、ビン番号k' = 5である。よって、k = max(k' - k_mod, 0)) = max(5 -2, 0) = 3 である。したがって、タスク T1 のタスク完了時間の発生確率は、P(1, 3) = 約 0.06 となる。この値は 0.1 より小さいため、異常判定部2080は、タスク T1 の処理速度が異常であると判定する。よって、実施例3の場合と同様に、実行制御部2100は、実行管理部3120に対してタスク T1 の実行を制御する指示を送信する。
 タスク T2 ~ T4 のタスク完了時間の発生確率はそれぞれ、約 0.37、約 0.37、約 0.37 となり、いずれも閾値0.1より大きい。そのため、異常判定部2080は、これらのタスクの処理速度については、異常でないと判定する。
<実施例5>
 異常検出装置2000の具体的な動作について、さらに別の実施例を用いて説明する。本実施例で示す実施例も、異常検出装置2000の動作の一例であり、本発明の異常検出装置2000は、以下に示す実施例によって何らの限定を受けない。図28は、実施例5に係る異常検出装置2000を、その使用環境と共に示すブロック図である。図28において、矢印は情報の流れを表している。さらに、図28において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。図28の分散システム3000は、図20の分散システム3000と同様であり、実施例3及び4における分散システム3000と同様である。
 実施例5における異常検出装置2000は、実施形態4で説明した割当情報取得部2180を有する。実施例5における対象範囲決定部2040は、実施形態4で説明した方法で、対象範囲を算出する。なお、本実施例における割当情報は、分散システム3000に割り当てられているジョブ数の推移を表す。図29は、割当情報取得部2180によって取得される割当情報を示す図である。
 分散システム3000に含まれる処理サーバは、実施例3及び4と同様に、図21で表される。また、コンピュータc1とc2の進捗度情報格納部3240に格納されているタスク情報は、実施例4と同様に、図22で表される。そのため、本実施例では、実施例4と同様に、タスクの処理速度を表す値として、タスク完了時間の予測値または実績値を用いる。
 図30は、履歴管理部3140に格納されている進捗履歴情報を示す図である。T'1 ~ T'6 は、過去に実行されたタスクに関する進捗履歴情報である。本実施例において、進捗履歴情報は異常フラグを有する。異常フラグは、その進捗履歴情報が示すタスクについて、異常判定部2080により、処理速度が異常であると判定されたか否かを表す。例えば図30の6番目のレコードは、異常フラグの値が true である。このレコードは、タスク T'6 について、処理速度が異常であるという判定が行われたことを表している。
 対象範囲決定部2040は、割当情報が示すジョブ数の推移を用いて、対象範囲を決定する。本実施例では、1:29:01 において、ジョブ数が 1 から 2 へ変化している。そのため、対象範囲決定部2040は、1:29:01 を対象範囲の開始時点とする。したがって、対象範囲に含まれる進捗履歴情報は、タスク T'4 ~ T'6、及び T1 ~ T4に関する進捗履歴情報である。
 次に、分布算出部2060は、タスク T'4 ~ T'6、及び T1 ~ T4に関する進捗履歴情報のうち、異常判定部2080によって処理速度が異常であると判定されたタスクに関する進捗履歴情報以外の進捗履歴情報を用いて、タスク速度分布を算出する。具体的には、分布算出部2060は、対象範囲に含まれる進捗履歴情報のうち、タスク T'6 以外の進捗履歴情報を用いる。
 本実施例において、分布算出部2060は、実施例1に示したモデルを用いて、タスク速度分布を算出する。ここで、α = 2とする。最大の処理速度 Vm (最小のタスク完了時間)は、T'5 のタスク完了時間(4秒)である。したがって、閾値 D は、α・Vm = 8 秒である。分布算出部2060は、予測完了時間が [0秒, 8秒] であるタスクの発生確率を 1、予測完了時間が (8秒, +∞] であるタスクの発生確率を0とする確率分布を、タスク速度分布として算出する。図31は、分布算出部2060によって算出されたタスク速度分布を示す。
 異常判定部2080は、実行中のタスク T1 ~ T4 それぞれを対象タスクとしてこのタスク速度分布と比較し、処理速度が異常であるか否かを判定する。なお、各タスクの現時点における処理速度(予測完了時間)は、図30のレコード7~10で表されているとする。タスク T1 ~ T4 のうち、タスク T1 の処理速度のみが、タスク速度分布において発生確率が 0 である速度となっている。したがって、異常判定部2080は、タスク T1 の処理速度が異常であると判定する。
 実行制御部2100は、実行管理部3120に対し、タスク T1 の実行を制御するように指示を送る。この指示を受けた実行管理部3120は、タスク T1 の実行を制御する。例えば実行管理部3120は、タスク T1 をプロセス P1 上で再実行する。
 以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記実施形態の組み合わせ、及び上記実施形態以外の様々な構成を採用することもできる。
 以下、参考形態の例を付記する。
1. 複数のサーバで構成される分散システムにおいて、前記サーバに割り当てられているタスクを処理対象とする異常検出装置であって、
 複数の記録時点それぞれにおける複数の前記タスクの進捗に関する進捗履歴情報を取得する履歴取得手段と、
 対象範囲を決定する対象範囲決定手段と、
 前記履歴取得手段によって取得された前記進捗履歴情報のうち、前記記録時点が前記対象範囲に含まれる前記進捗履歴情報のみを用いて、前記タスクの処理速度の確率分布であるタスク速度分布を算出する分布算出手段と、
 対象タスクの処理速度と前記タスク速度分布とを比較することで、前記対象タスクの処理速度が異常であるか否かを判定する異常判定手段と、
 を有する異常検出装置。
2. 前記異常判定手段によって、前記対象タスクの処理速度が異常であると判定された場合、前記対象タスクが割り当てられている第1サーバ上で前記対象タスクを再実行するか、又は前記対象タスクを複製したタスクを、前記第1サーバとは異なる第2サーバに割り当てる実行制御手段を有する1.に記載の異常検出装置。
3. 所定期間を取得する所定期間取得手段を有し、
 前記対象範囲決定手段は、前記対象範囲の長さを前記所定期間とする1.又は2.に記載の異常検出装置。
4. 前記サーバと、そのサーバに割り当てられている前記タスクとの対応付けを示す割当情報を取得する割当情報取得手段を有し、
 前記対象範囲決定手段は、いずれかの前記サーバに対する前記タスクの割り当てに変化があった時点を、前記対象範囲の開始時点とする1.又は2.に記載の異常検出装置。
5. 複数の期間それぞれについて、前記記録時点がそれら各期間に含まれる進捗履歴情報を用いて、それら各期間における前記タスクの処理速度の代表値を算出する代表値算出手段を有し、
 前記対象範囲決定手段は、前記各期間のうち、その期間の前記代表値と現在時点に最も近い期間における前記代表値との間に有意な差が無い期間のみを含むように、前記対象範囲を決定する、
 1.又は2.に記載の異常検出装置。
6. 前記タスクに対応するタスク種別を取得する種別取得手段を有し、
 前記分布算出手段は、前記対象タスクと同一の前記タスク種別に対応している前記タスクに関する前記進捗履歴情報のみを用いて、前記タスク速度分布を算出する、
 1.乃至5.いずれか一項に記載の異常検出装置。
7. 前記対象範囲決定手段は、前記対象タスクに対応する前記タスク種別に基づいて前記対象範囲を算出する6.に記載の異常検出装置。
8. 前記進捗履歴情報は、履歴格納手段に格納されており、
 前記履歴取得手段は、前記履歴格納手段から前記進捗履歴情報を取得し、
 前記対象範囲に含まれない前記進捗履歴情報を前記履歴格納手段から削除する履歴削除手段を有する、
 1.乃至7.いずれか一項に記載の異常検出装置。
9. 前記分布算出手段は、前記異常判定手段によって処理速度が異常であると判定された前記対象タスクに関する進捗履歴情報を、その判定以降における前記タスク速度分布の算出に利用しない1.乃至8.いずれか一項に記載の異常検出装置。
10. 複数のサーバで構成される分散システムにおいて、前記サーバに割り当てられているタスクを処理対象とするコンピュータによって実行される制御方法であって、
 複数の記録時点それぞれにおける複数の前記タスクの進捗に関する進捗履歴情報を取得する履歴取得ステップと、
 対象範囲を決定する対象範囲決定ステップと、
 前記履歴取得ステップによって取得された前記進捗履歴情報のうち、前記記録時点が前記対象範囲に含まれる前記進捗履歴情報のみを用いて、前記タスクの処理速度の確率分布であるタスク速度分布を算出する分布算出ステップと、
 対象タスクの処理速度と前記タスク速度分布とを比較することで、前記対象タスクの処理速度が異常であるか否かを判定する異常判定ステップと、
 を有する制御方法。
11. 前記異常判定ステップによって、前記対象タスクの処理速度が異常であると判定された場合、前記対象タスクが割り当てられている第1サーバ上で前記対象タスクを再実行するか、又は前記対象タスクを複製したタスクを、前記第1サーバとは異なる第2サーバに割り当てる実行制御ステップを有する10.に記載の制御方法。
12. 所定期間を取得する所定期間取得ステップを有し、
 前記対象範囲決定ステップは、前記対象範囲の長さを前記所定期間とする10.又は11.に記載の制御方法。
13. 前記サーバと、そのサーバに割り当てられている前記タスクとの対応付けを示す割当情報を取得する割当情報取得ステップを有し、
 前記対象範囲決定ステップは、いずれかの前記サーバに対する前記タスクの割り当てに変化があった時点を、前記対象範囲の開始時点とする10.又は11.に記載の制御方法。
14. 複数の期間それぞれについて、前記記録時点がそれら各期間に含まれる進捗履歴情報を用いて、それら各期間における前記タスクの処理速度の代表値を算出する代表値算出ステップを有し、
 前記対象範囲決定ステップは、前記各期間のうち、その期間の前記代表値と現在時点に最も近い期間における前記代表値との間に有意な差が無い期間のみを含むように、前記対象範囲を決定する、
 10.又は11.に記載の制御方法。
15. 前記タスクに対応するタスク種別を取得する種別取得ステップを有し、
 前記分布算出ステップは、前記対象タスクと同一の前記タスク種別に対応している前記タスクに関する前記進捗履歴情報のみを用いて、前記タスク速度分布を算出する、
 10.乃至14.いずれか一項に記載の制御方法。
16. 前記対象範囲決定ステップは、前記対象タスクに対応する前記タスク種別に基づいて前記対象範囲を算出する15.に記載の制御方法。
17. 前記進捗履歴情報は、履歴格納手段に格納されており、
 前記履歴取得ステップは、前記履歴格納手段から前記進捗履歴情報を取得し、
 前記対象範囲に含まれない前記進捗履歴情報を前記履歴格納手段から削除する履歴削除ステップを有する、
 10.乃至16.いずれか一項に記載の制御方法。
18. 前記分布算出ステップは、前記異常判定ステップによって処理速度が異常であると判定された前記対象タスクに関する進捗履歴情報を、その判定以降における前記タスク速度分布の算出に利用しない10.乃至17.いずれか一項に記載の制御方法。
19. 複数のサーバで構成される分散システムにおいて、前記サーバに割り当てられているタスクを処理対象とする異常検出装置として動作する機能をコンピュータに持たせるプログラムであって、前記コンピュータに、
 複数の記録時点それぞれにおける複数の前記タスクの進捗に関する進捗履歴情報を取得する履歴取得機能と、
 対象範囲を決定する対象範囲決定機能と、
 前記履歴取得機能によって取得された前記進捗履歴情報のうち、前記記録時点が前記対象範囲に含まれる前記進捗履歴情報のみを用いて、前記タスクの処理速度の確率分布であるタスク速度分布を算出する分布算出機能と、
 対象タスクの処理速度と前記タスク速度分布とを比較することで、前記対象タスクの処理速度が異常であるか否かを判定する異常判定機能と、
 を持たせるプログラム。
20. 前記異常判定機能によって、前記対象タスクの処理速度が異常であると判定された場合、前記対象タスクが割り当てられている第1サーバ上で前記対象タスクを再実行するか、又は前記対象タスクを複製したタスクを、前記第1サーバとは異なる第2サーバに割り当てる実行制御機能を有する19.に記載のプログラム。
21. 前記コンピュータに、所定期間を取得する所定期間取得機能を持たせ、
 前記対象範囲決定機能は、前記対象範囲の長さを前記所定期間とする19.又は20.に記載のプログラム。
22. 前記コンピュータに、前記サーバと、そのサーバに割り当てられている前記タスクとの対応付けを示す割当情報を取得する割当情報取得機能を持たせ、
 前記対象範囲決定機能は、いずれかの前記サーバに対する前記タスクの割り当てに変化があった時点を、前記対象範囲の開始時点とする19.又は20.に記載のプログラム。
23. 前記コンピュータに、複数の期間それぞれについて、前記記録時点がそれら各期間に含まれる進捗履歴情報を用いて、それら各期間における前記タスクの処理速度の代表値を算出する代表値算出機能を持たせ、
 前記対象範囲決定機能は、前記各期間のうち、その期間の前記代表値と現在時点に最も近い期間における前記代表値との間に有意な差が無い期間のみを含むように、前記対象範囲を決定する、
 19.又は20.に記載のプログラム。
24. 前記コンピュータに、前記タスクに対応するタスク種別を取得する種別取得機能を持たせ、
 前記分布算出機能は、前記対象タスクと同一の前記タスク種別に対応している前記タスクに関する前記進捗履歴情報のみを用いて、前記タスク速度分布を算出する、
 19.乃至23.いずれか一項に記載のプログラム。
25. 前記対象範囲決定機能は、前記対象タスクに対応する前記タスク種別に基づいて前記対象範囲を算出する24.に記載のプログラム。
26. 前記進捗履歴情報は、履歴格納手段に格納されており、
 前記履歴取得機能は、前記履歴格納手段から前記進捗履歴情報を取得し、
 前記コンピュータに、前記対象範囲に含まれない前記進捗履歴情報を前記履歴格納手段から削除する履歴削除機能を持たせる、
 19.乃至25.いずれか一項に記載のプログラム。
27. 前記分布算出機能は、前記異常判定機能によって処理速度が異常であると判定された前記対象タスクに関する進捗履歴情報を、その判定以降におけう前記タスク速度分布の算出に利用しない19.乃至26.いずれか一項に記載のプログラム。
 この出願は、2013年6月28日に出願された日本出願特願2013-136427号を基礎とする優先権を主張し、その開示の全てをここに取り込む。

Claims (11)

  1.  複数のサーバで構成される分散システムにおいて、前記サーバに割り当てられているタスクを処理対象とする異常検出装置であって、
     複数の記録時点それぞれにおける複数の前記タスクの進捗に関する進捗履歴情報を取得する履歴取得手段と、
     対象範囲を決定する対象範囲決定手段と、
     前記履歴取得手段によって取得された前記進捗履歴情報のうち、前記記録時点が前記対象範囲に含まれる前記進捗履歴情報のみを用いて、前記タスクの処理速度の確率分布であるタスク速度分布を算出する分布算出手段と、
     対象タスクの処理速度と前記タスク速度分布とを比較することで、前記対象タスクの処理速度が異常であるか否かを判定する異常判定手段と、
     を有する異常検出装置。
  2.  前記異常判定手段によって、前記対象タスクの処理速度が異常であると判定された場合、前記対象タスクが割り当てられている第1サーバ上で前記対象タスクを再実行するか、又は前記対象タスクを複製したタスクを、前記第1サーバとは異なる第2サーバに割り当てる実行制御手段を有する請求項1に記載の異常検出装置。
  3.  所定期間を取得する所定期間取得手段を有し、
     前記対象範囲決定手段は、前記対象範囲の長さを前記所定期間とする請求項1又は2に記載の異常検出装置。
  4.  前記サーバと、そのサーバに割り当てられている前記タスクとの対応付けを示す割当情報を取得する割当情報取得手段を有し、
     前記対象範囲決定手段は、いずれかの前記サーバに対する前記タスクの割り当てに変化があった時点を、前記対象範囲の開始時点とする請求項1又は2に記載の異常検出装置。
  5.  複数の期間それぞれについて、前記記録時点がそれら各期間に含まれる進捗履歴情報を用いて、それら各期間における前記タスクの処理速度の代表値を算出する代表値算出手段を有し、
     前記対象範囲決定手段は、前記各期間のうち、その期間の前記代表値と現在時点に最も近い期間における前記代表値との間に有意な差が無い期間のみを含むように、前記対象範囲を決定する、
     請求項1又は2に記載の異常検出装置。
  6.  前記タスクに対応するタスク種別を取得する種別取得手段を有し、
     前記分布算出手段は、前記対象タスクと同一の前記タスク種別に対応している前記タスクに関する前記進捗履歴情報のみを用いて、前記タスク速度分布を算出する、
     請求項1乃至5いずれか一項に記載の異常検出装置。
  7.  前記対象範囲決定手段は、前記対象タスクに対応する前記タスク種別に基づいて前記対象範囲を算出する請求項6に記載の異常検出装置。
  8.  前記進捗履歴情報は、履歴格納手段に格納されており、
     前記履歴取得手段は、前記履歴格納手段から前記進捗履歴情報を取得し、
     前記対象範囲に含まれない前記進捗履歴情報を前記履歴格納手段から削除する履歴削除手段を有する、
     請求項1乃至7いずれか一項に記載の異常検出装置。
  9.  前記分布算出手段は、前記異常判定手段によって処理速度が異常であると判定された前記対象タスクに関する進捗履歴情報を、その判定以降における前記タスク速度分布の算出に利用しない請求項1乃至8いずれか一項に記載の異常検出装置。
  10.  複数のサーバで構成される分散システムにおいて、前記サーバに割り当てられているタスクを処理対象とするコンピュータによって実行される制御方法であって、
     複数の記録時点それぞれにおける複数の前記タスクの進捗に関する進捗履歴情報を取得する履歴取得ステップと、
     対象範囲を決定する対象範囲決定ステップと、
     前記履歴取得ステップによって取得された前記進捗履歴情報のうち、前記記録時点が前記対象範囲に含まれる前記進捗履歴情報のみを用いて、前記タスクの処理速度の確率分布であるタスク速度分布を算出する分布算出ステップと、
     対象タスクの処理速度と前記タスク速度分布とを比較することで、前記対象タスクの処理速度が異常であるか否かを判定する異常判定ステップと、
     を有する制御方法。
  11.  複数のサーバで構成される分散システムにおいて、前記サーバに割り当てられているタスクを処理対象とする異常検出装置として動作する機能をコンピュータに持たせるプログラムであって、前記コンピュータに、
     複数の記録時点それぞれにおける複数の前記タスクの進捗に関する進捗履歴情報を取得する履歴取得機能と、
     対象範囲を決定する対象範囲決定機能と、
     前記履歴取得機能によって取得された前記進捗履歴情報のうち、前記記録時点が前記対象範囲に含まれる前記進捗履歴情報のみを用いて、前記タスクの処理速度の確率分布であるタスク速度分布を算出する分布算出機能と、
     対象タスクの処理速度と前記タスク速度分布とを比較することで、前記対象タスクの処理速度が異常であるか否かを判定する異常判定機能と、
     を持たせるプログラム。
PCT/JP2014/055844 2013-06-28 2014-03-06 異常検出装置、制御方法、及びプログラム WO2014208139A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US14/900,718 US10255114B2 (en) 2013-06-28 2014-03-06 Abnormality detection apparatus, control method, and program
JP2015523883A JP6191691B2 (ja) 2013-06-28 2014-03-06 異常検出装置、制御方法、及びプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013136427 2013-06-28
JP2013-136427 2013-06-28

Publications (1)

Publication Number Publication Date
WO2014208139A1 true WO2014208139A1 (ja) 2014-12-31

Family

ID=52141495

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/055844 WO2014208139A1 (ja) 2013-06-28 2014-03-06 異常検出装置、制御方法、及びプログラム

Country Status (3)

Country Link
US (1) US10255114B2 (ja)
JP (1) JP6191691B2 (ja)
WO (1) WO2014208139A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106155802A (zh) * 2015-03-30 2016-11-23 阿里巴巴集团控股有限公司 任务调度方法、装置及控制节点
CN108920326A (zh) * 2018-06-14 2018-11-30 阿里巴巴集团控股有限公司 确定系统耗时异常的方法、装置及电子设备
WO2019012781A1 (ja) * 2017-07-10 2019-01-17 板場ビジネスコンサルタンツ株式会社 情報処理装置及びプログラム

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11024044B2 (en) * 2016-09-26 2021-06-01 Digitalglobe, Inc. Techniques for image co-registration
CN111275466B (zh) * 2018-12-04 2023-12-05 北京京东振世信息技术有限公司 一种超期单量预警的方法和装置
CN111371635B (zh) * 2018-12-26 2023-09-01 北京奇虎科技有限公司 网络节点的监测方法、装置及系统
JP6959287B2 (ja) * 2019-04-01 2021-11-02 ファナック株式会社 監視装置、監視システムおよび監視方法
CN111143169B (zh) * 2019-12-30 2024-02-27 杭州迪普科技股份有限公司 异常参数检测方法及装置、电子设备、存储介质
CN112512027A (zh) * 2020-12-25 2021-03-16 浪潮电子信息产业股份有限公司 一种服务器及通信方法、系统、计算机可读存储介质
CN113609190A (zh) * 2020-12-30 2021-11-05 成群 基于大数据和温度监测的产品生产异常监测方法及设备
CN115460295B (zh) * 2022-09-13 2023-03-31 中航信移动科技有限公司 一种离群服务器恢复询问时间的确定方法、介质及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1049504A (ja) * 1996-08-02 1998-02-20 Mitsubishi Electric Corp 負荷分散バッチシステム
US20050251792A1 (en) * 2004-05-06 2005-11-10 Smith David W System for adaptively determining executable application operation characteristics
JP2010231488A (ja) * 2009-03-27 2010-10-14 Fujitsu Ltd 監視システム、監視プログラム及び監視方法
JP2011128781A (ja) * 2009-12-16 2011-06-30 Kddi Corp サーバ監視装置およびそのサーバ障害判定方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1502203A2 (en) 2002-01-10 2005-02-02 Massively Parallel Technologies, Inc. Parallel processing systems and method
US7296269B2 (en) * 2003-04-22 2007-11-13 Lucent Technologies Inc. Balancing loads among computing nodes where no task distributor servers all nodes and at least one node is served by two or more task distributors
JP4074296B2 (ja) 2005-03-25 2008-04-09 株式会社東芝 スケジューリング可能性判定方法、リアルタイムシステム及びプログラム
JP2007317038A (ja) 2006-05-29 2007-12-06 Dainippon Printing Co Ltd 自動処理汎用制御システム、制御装置、自動処理汎用制御方法、自動処理汎用制御装置、プログラム、及び、記録媒体
JP4308241B2 (ja) 2006-11-10 2009-08-05 インターナショナル・ビジネス・マシーンズ・コーポレーション ジョブ実行方法、ジョブ実行システム及びジョブ実行プログラム
JP5468837B2 (ja) * 2009-07-30 2014-04-09 株式会社日立製作所 異常検出方法、装置、及びプログラム
US9239996B2 (en) * 2010-08-24 2016-01-19 Solano Labs, Inc. Method and apparatus for clearing cloud compute demand
US9251032B2 (en) * 2011-11-03 2016-02-02 Fujitsu Limited Method, computer program, and information processing apparatus for analyzing performance of computer system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1049504A (ja) * 1996-08-02 1998-02-20 Mitsubishi Electric Corp 負荷分散バッチシステム
US20050251792A1 (en) * 2004-05-06 2005-11-10 Smith David W System for adaptively determining executable application operation characteristics
JP2010231488A (ja) * 2009-03-27 2010-10-14 Fujitsu Ltd 監視システム、監視プログラム及び監視方法
JP2011128781A (ja) * 2009-12-16 2011-06-30 Kddi Corp サーバ監視装置およびそのサーバ障害判定方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106155802A (zh) * 2015-03-30 2016-11-23 阿里巴巴集团控股有限公司 任务调度方法、装置及控制节点
CN106155802B (zh) * 2015-03-30 2020-03-13 阿里巴巴集团控股有限公司 任务调度方法、装置及控制节点
WO2019012781A1 (ja) * 2017-07-10 2019-01-17 板場ビジネスコンサルタンツ株式会社 情報処理装置及びプログラム
JP2019016280A (ja) * 2017-07-10 2019-01-31 板場ビジネスコンサルタンツ株式会社 情報処理装置及びプログラム
CN108920326A (zh) * 2018-06-14 2018-11-30 阿里巴巴集团控股有限公司 确定系统耗时异常的方法、装置及电子设备
CN108920326B (zh) * 2018-06-14 2022-04-29 创新先进技术有限公司 确定系统耗时异常的方法、装置及电子设备

Also Published As

Publication number Publication date
US20160132359A1 (en) 2016-05-12
US10255114B2 (en) 2019-04-09
JP6191691B2 (ja) 2017-09-06
JPWO2014208139A1 (ja) 2017-02-23

Similar Documents

Publication Publication Date Title
JP6191691B2 (ja) 異常検出装置、制御方法、及びプログラム
JP6241300B2 (ja) ジョブスケジューリング装置、ジョブスケジューリング方法、およびジョブスケジューリングプログラム
JP5218390B2 (ja) 自律制御サーバ、仮想サーバの制御方法及びプログラム
US10558544B2 (en) Multiple modeling paradigm for predictive analytics
US9389916B1 (en) Job scheduling management
US20150295970A1 (en) Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system
WO2015001850A1 (ja) タスク割り当て判定装置、制御方法、及びプログラム
US9665512B2 (en) Memory management in presence of asymmetrical memory transfer cost
US9396087B2 (en) Method and apparatus for collecting performance data, and system for managing performance data
CN115269108A (zh) 一种数据处理方法、装置及设备
CN112231098A (zh) 任务处理方法、装置、设备及存储介质
JP5471822B2 (ja) 入出力制御プログラム、情報処理装置および入出力制御方法
CN114223189A (zh) 时长统计方法、装置、电子设备和计算机可读介质
US20150026694A1 (en) Method of processing information, storage medium, and information processing apparatus
CN113010289A (zh) 一种任务调度方法、装置和系统
JP6237170B2 (ja) 割当判定装置、制御方法、及びプログラム
US9021499B2 (en) Moving a logical device between processor modules in response to identifying a varying load pattern
JP6627475B2 (ja) 処理リソース制御プログラム、処理リソース制御装置、および処理リソース制御方法
JP2015108877A (ja) 予測時間分布生成装置、制御方法、及びプログラム
KR102300347B1 (ko) 멀티코어 임베디드 시스템에 대한 연속 프로파일링 장치 및 그 방법
TW201942741A (zh) 資訊處理裝置、控制方法及程式產品
US11397659B2 (en) Information processing apparatus, information processing method, and storage medium
JPWO2013129061A1 (ja) 同時接続数制御システム、同時接続数制御サーバ、同時接続数制御方法および同時接続数制御プログラム
Kim et al. Measuring the optimality of Hadoop optimization
JP5824426B2 (ja) データ処理装置及び方法及びプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14817889

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2015523883

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 14900718

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14817889

Country of ref document: EP

Kind code of ref document: A1