WO2014136302A1 - タスク管理装置及びタスク管理方法 - Google Patents

タスク管理装置及びタスク管理方法 Download PDF

Info

Publication number
WO2014136302A1
WO2014136302A1 PCT/JP2013/076660 JP2013076660W WO2014136302A1 WO 2014136302 A1 WO2014136302 A1 WO 2014136302A1 JP 2013076660 W JP2013076660 W JP 2013076660W WO 2014136302 A1 WO2014136302 A1 WO 2014136302A1
Authority
WO
WIPO (PCT)
Prior art keywords
server device
input data
task
target task
free
Prior art date
Application number
PCT/JP2013/076660
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 日本電気株式会社
Publication of WO2014136302A1 publication Critical patent/WO2014136302A1/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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/485Resource constraint
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/503Resource availability

Definitions

  • the present invention relates to a scheduling technique for software execution units such as tasks.
  • resources in multiple physical machines are centrally managed and handled as a shared resource pool in data centers and the like. For example, it is possible to efficiently use resources by aggregating a plurality of virtual machines into one server device. However, there are still resources that are not used in the server device. Even when there is a time when there is no free space in the resource, there are many cases where the free space is temporarily available in the resource. If live migration or the like is used, such temporarily generated free resources can be used by other virtual machines. However, this method is not effective due to the migration cost of live migration itself and the supply uncertainty of free resources. This is because the generation of free resources depends on the resource usage status of virtual machines and processes already running on the server device.
  • the resource can be used only when the other virtual machine is not using the resource. Control is also possible. This makes it possible to efficiently use resources such as allowing other virtual machines to use free resources while guaranteeing the amount of resources explicitly assigned to a certain virtual machine. For example, it is effective to explicitly allocate resources to a virtual machine that requires a high service level and to use free resources to a virtual machine that has a low service level.
  • Patent Document 1 based on the time change of the load on the virtual machine, the physical machine, and the network, the load on the virtual machine, the physical machine, and the network is not biased, and the peak of the CPU load on the physical machine and the virtual machine A method for scheduling the movement of a virtual machine has been proposed so as to avoid duplication.
  • Patent Document 2 the relative maximum load amount of each virtual machine is predicted from the correlation of the load of each virtual machine, and the total of the maximum load amounts of operating virtual machines is less than the allowable load amount of each server device.
  • a method has been proposed in which each virtual machine is deployed on a server device so that the utilization efficiency of physical resources is improved.
  • Patent Document 3 based on the future resource usage predicted for each process, the occurrence time zone of a non-end process that does not end within a predetermined time is predicted, and the non-end process is moved to another computer.
  • a method for preventing the occurrence of a non-termination process by executing it has been proposed.
  • Patent Document 4 when it is necessary to divide / move a job, the resource usage rate data of each node is obtained, and the task is based on the CPU usage rate of each node indicated by the resource usage rate data.
  • the processor usage status for each unit time is collected for each processor, and the processor resource amount allocated to each process is determined based on the required processor resource amount, allowable processing completion time and elapsed time of each process. Has been proposed.
  • each of the above-described proposed methods does not exceed the allowable resource amount of the server device or complete within the allowable processing time for a software execution unit such as a virtual machine, a process, a job, and a task.
  • the server device itself or the resource amount of the server device is only allocated.
  • an empty resource of a server device is explicitly assigned in addition to the remaining resources excluding resources that are explicitly assigned to execution units operating on the server device. This includes resources that are not used temporarily.
  • such resources that are explicitly allocated to execution units and are not temporarily used are referred to as temporary free resources.
  • those that are targets of scheduling are collectively referred to as tasks.
  • the present invention has been made in view of such circumstances, and provides a task scheduling technique that can meet a request with desired certainty under a condition of using a temporary free resource of a server device.
  • the first aspect relates to a task management device.
  • the task management device includes a resource information acquisition unit that acquires an actual resource usage amount indicating a resource amount actually used on the server device, and an actual resource usage amount acquired by the resource information acquisition unit Based on the history of the server, the resource analysis unit for generating probabilistic free resource information respectively indicating the free resource amount guaranteed by the predetermined free probability for a plurality of predetermined free probabilities for the server device, and the target task are executed Selecting at least one server device, selecting a predetermined free probability corresponding to a predetermined completion probability from among the plurality of predetermined free probabilities, and indicating the selection indicated by the probabilistic free resource information for the selected server device A scheduling unit that determines an execution plan of the target task based on the free resource amount guaranteed with the predetermined free space probability, A.
  • the second aspect relates to a task management method executed by at least one computer.
  • the task management method according to the second aspect acquires a real resource usage amount indicating a resource amount actually used on the server device, and for the server device based on the acquired history of the actual resource usage amount.
  • Generating probabilistic free resource information each indicating a free resource amount guaranteed by the predetermined free probability for a plurality of predetermined free probabilities selecting at least one server device for executing the target task, and selecting a plurality of predetermined free probabilities Based on the amount of free resources guaranteed by the selected predetermined free probability, indicated by the probabilistic free resource information for the selected server device, selecting a predetermined free probability corresponding to the predetermined completion probability from Including determining the execution plan of the target task.
  • Another aspect of the present invention may be a program that causes at least one computer to execute the method of the second aspect, or a computer-readable recording medium that records such a program. May be.
  • This recording medium includes a non-transitory tangible medium.
  • FIG. 2nd Embodiment It is a figure which shows the example of the processing capacity calculated based on the empty resource model shown by FIG. It is a flowchart which shows the operation example of the management apparatus in 2nd Embodiment. It is a figure which shows the example of the intermediate data calculated by the task scheduler in Example 2 when making two server apparatuses process input data. It is a figure which shows the example of the intermediate data calculated by the task scheduler in Example 2 when making three server apparatuses process input data. It is a figure which shows the example of the processing capability of the empty resource of each server apparatus in the 19 time zone and 20 time zone corresponding to a certain predetermined empty probability.
  • FIG. 1 is a diagram conceptually illustrating a configuration example of a task management apparatus 100 according to an embodiment of the present invention.
  • the task management apparatus 100 includes a resource information acquisition unit 101, a resource analysis unit 102, and a scheduling unit 103.
  • the resource information acquisition unit 101 acquires the actual resource usage that indicates the amount of resources actually used on the server device.
  • the resource analysis unit 102 determines the free resource amount guaranteed by the predetermined free probability for a plurality of predetermined free probabilities for the server device, respectively. Probabilistic free resource information is generated.
  • the scheduling unit 103 selects at least one server device that executes the target task, selects a predetermined empty probability corresponding to the predetermined completion probability from the plurality of predetermined empty probabilities, and the probability for the selected server device
  • the execution plan of the target task is determined based on the amount of free resources guaranteed by the selected predetermined free probability indicated by the target free resource information.
  • the task management device 100 has, for example, the same hardware configuration as the management device 20 in the detailed embodiment described later, and the above-described processing units are realized by processing a program in the same manner as the management device 20.
  • the task management method is executed by at least one computer.
  • the task management method acquires actual resource usage indicating the amount of resources actually used on the server device, and based on the acquired history of actual resource usage, a plurality of predetermined values for the server device.
  • Probabilistic free resource information indicating the amount of free resources guaranteed by the predetermined free probability for each free probability is generated, and at least one server device for executing the target task is selected, and predetermined completion is performed from a plurality of predetermined free probabilities Select a predetermined free probability corresponding to the probability, and execute the target task execution plan based on the free resource amount guaranteed by the selected predetermined free probability indicated by the stochastic free resource information for the selected server device Including that.
  • the actual resource usage of the server device is acquired, and the probabilistic free resource information is generated based on the history of the actual resource usage.
  • the actual resource usage is not the amount of resources explicitly assigned to each software execution unit executed on the server device, but the resource actually used by each software execution unit on the server device. Means the amount.
  • the predetermined free probability means the degree of certainty that the corresponding free resource amount is guaranteed.
  • the probabilistic free resource information generated in the present embodiment indicates a correspondence relationship between the free resource amount and the degree of probability that the free resource amount is guaranteed (predetermined free probability).
  • the amount of free resources includes the amount of temporary free resources that are not temporarily used among the resources that are explicitly assigned to the software execution unit, the amount of free resources indicated by the probabilistic free resource information is This is not related to the amount of resources for which guarantee is ensured, but is associated with probabilistic information (predetermined availability probability).
  • a predetermined empty probability corresponding to a predetermined completion probability is selected from a plurality of predetermined empty probabilities.
  • the predetermined completion probability means the probability that the target task is executed based on the determined execution plan, and that it meets the requirements for the execution plan.
  • the request for the execution plan includes, for example, completing the target task within the required time, or completing the target task in a short time.
  • the content of the request for the execution plan is not limited.
  • the probability of securing the free resource amount that needs to be guaranteed is determined.
  • the predetermined vacancy probability may be determined to be equal to the predetermined completion probability.
  • the accuracy of the execution plan of the target task depends on the result of using free resources in all the server devices, so the predetermined free probability is more than the predetermined completion probability Is also set to a high value.
  • the execution plan of the target task is determined based on the free resource amount guaranteed by the selected predetermined free probability, which is indicated by the probabilistic free resource information.
  • the execution plan of the target task refers to the target task such as on which server device the target task is executed, when to execute the target task, how to transfer data for the target task, etc. It means some plan to execute.
  • the content of the execution plan itself is not limited.
  • the task execution plan is determined based on the probability information (predetermined vacancy probability) of the free resource amount for meeting the request with the desired accuracy (predetermined completion probability). Therefore, according to the present embodiment, the execution plan of a task that can meet the request with the desired certainty under the condition that the temporary free resource of the server device having the characteristic that the availability is probabilistic is used. Formulation (task scheduling) can be realized.
  • FIG. 2 is a diagram conceptually illustrating a configuration example of the task management system 1 in the first embodiment.
  • the task management system 1 in the first embodiment includes a plurality of server devices 10 (# 1) to 10 (#n), a management device 20, and the like.
  • the plurality of server apparatuses 10 (# 1) to 10 (#n) are collectively referred to as the server apparatus 10 unless it is necessary to distinguish them individually.
  • the management apparatus 20 manages the plurality of server apparatuses 10 in order to cause at least one of the plurality of server apparatuses 10 to execute at least one target task, and deploys virtual machines to the server apparatuses 10 and manages virtual machines. Perform resource allocation.
  • the server device 10 executes the assigned virtual machine according to an instruction from the management device 20.
  • the server device 10 and the management device 20 are so-called computers, and include, for example, a CPU (Central Processing Unit) 2, a memory 3, an input / output interface (I / F) 4 and the like that are connected to each other via a bus 5.
  • the memory 3 is a RAM (Random Access Memory), a ROM (Read Only Memory), a hard disk, a portable storage medium, or the like.
  • the input / output I / F 4 is connected to a communication device 7 that communicates with other devices via the network 9. Note that the input / output I / F 4 may be connected to a device that accepts an input of a user operation such as a keyboard or a mouse, or a device that provides information to the user such as a display device or a printer.
  • the hardware configurations of the server device 10 and the management device 20 are not limited.
  • the server device 10 and the management device 20 are connected via a network 9 so that they can communicate with each other.
  • the network 9 is a public network such as the Internet, a WAN (Wide Area Network), a LAN (Local Area Network), a wireless communication network, or the like.
  • communication modes between the server devices 10 and between each server device 10 and the management device 20 are not limited.
  • FIG. 3 is a diagram conceptually illustrating a processing configuration example in the task management system 1 in the first embodiment.
  • the task management system 1 includes a performance information database (DB) 30, a task information management database (DB) 31, an input data management database (DB) 32, and a free resource model database (DB) 33.
  • DB performance information database
  • DB task information management database
  • DB input data management database
  • DB free resource model database
  • These databases may be realized by the management device 20 or may be realized by other devices.
  • the performance information DB 30 stores the actual resource usage collected from each server device 10 together with the time information.
  • the performance information DB 30 stores the server ID that can identify the server device 10, the actual resource usage of the server device 10, and the time information of the actual resource usage in a state of being associated with each other.
  • the actual resource usage time information indicates, for example, the time when the actual resource usage is collected.
  • the task information management DB 31 stores task information related to the target task.
  • the task information indicates a task ID that can specify a task, a task start time, a task deadline time, and the like.
  • the task deadline time corresponds to the task request time.
  • the task information may indicate a time limit from the start to the completion of the task instead of the task deadline time.
  • the input data management DB 32 stores management information of input data processed by the target task.
  • the input data management information indicates the amount of distributed input data in each server device 10 in which the input data is distributed. Contains information.
  • the input data management information indicates the amount of distributed input data and information related to the server apparatus 10 in which the distributed input data exists, for each distributed input data that is partial data of the input data.
  • the distributed input data of each server device 10 may be simply referred to as input data.
  • the free resource model DB 33 stores free resource models for each server device 10.
  • the free resource model corresponds to the above-described stochastic free resource information, and indicates the free resource amount guaranteed by the predetermined free probability for each of a plurality of predetermined free probabilities.
  • the free resource amount indicated by the free resource model includes not only the amount of resources not explicitly assigned to the software element to be executed, but also the amount of the temporary free resources described above.
  • the server device 10 can execute at least one virtual machine 11.
  • the virtual machine is also expressed as a VM (Virtual Machine).
  • the server device 10 includes a virtual machine (VM) control unit 12, a performance information measurement unit 13, and the like.
  • the VM 11, the VM control unit 12, and the performance information measurement unit 13 are realized by executing a program stored in the memory 3 by the CPU 2, for example. Further, the program may be installed from a portable recording medium such as a CD (Compact Disc) or a memory card or another computer on the network via the input / output I / F 4 and stored in the memory 3. Good.
  • a portable recording medium such as a CD (Compact Disc) or a memory card or another computer on the network via the input / output I / F 4 and stored in the memory 3. Good.
  • At least one of the VMs 11 executed by the server device 10 executes a target task, which is a target for which an execution plan is formulated in the task management system 1, based on the execution plan determined by the management device 20.
  • the VM control unit 12 performs activation and termination of the VM 11, resource allocation to the VM 11, and the like.
  • the performance information measuring unit 13 measures the actual resource usage that indicates the amount of resources actually used on the server device 10.
  • the actual resource usage measured by the performance information measuring unit 13 is the total resource usage used by all software elements such as the VM 11 and tasks executed on the server device 10.
  • the actual resource usage is different from the amount of resources explicitly assigned to the software elements executed on the server device 10, and is the amount of resources being used at the time of measurement.
  • the performance information measuring unit 13 may measure the actual resource usage for each of a plurality of resource types. Specifically, the performance information measurement unit 13 determines the CPU usage rate, network reception amount, network transmission amount, disk read amount, disk write for a plurality of resource types such as CPU resources, network resources, disk resources, and memory resources. The amount and the memory usage may be measured as the actual resource usage.
  • the management apparatus 20 includes a task reception unit 21, a task scheduler 22, a performance information collection unit 23, a free resource analysis unit 24, an input data management unit 25, a virtual machine (VM) management unit 26, and the like.
  • Each of these processing units is realized, for example, by executing a program stored in the memory 3 by the CPU 2. Further, the program may be installed from a portable recording medium such as a CD (Compact Disc) or a memory card or another computer on the network via the input / output I / F 4 and stored in the memory 3. Good.
  • a portable recording medium such as a CD (Compact Disc) or a memory card or another computer on the network via the input / output I / F 4 and stored in the memory 3. Good.
  • the task reception unit 21 receives the target task and stores the task information of the target task in the task information management DB 31.
  • the reception of the target task may be realized by acquiring information input by a user operating an input device (not shown) based on an input screen or the like via the input / output I / F 4. It may be realized by acquiring information from a portable recording medium, another computer or the like via the input / output I / F 4.
  • the performance information collection unit 23 periodically collects the actual resource usage from each server device 10 and stores the collected actual resource usage together with the server ID and time information of the server device 10 in the performance information DB 30.
  • the performance information collection unit 23 may receive the actual resource usage that is sent spontaneously from the server device 10.
  • the input data management unit 25 uses the input data management information stored in the input data management DB 32 to manage the input data processed by the target task.
  • the input data management unit 25 may acquire information on the input data from each server device 10 and store this information in the input data management DB 32 as management information on the input data.
  • the input data management unit 25 updates the management information stored in the input data management DB 32 along with the transfer. Since the input data management information includes the input data location information as described above, the input data management unit 25 can also be called an input data acquisition unit.
  • the free resource analysis unit 24 generates the above-described free resource model for each server device 10 and stores the generated free resource model in the free resource model DB 33 together with the server ID of the server device 10.
  • the free resource analysis unit 24 generates the free resource model based on the history of the actual resource usage of each server device 10 stored in the performance information DB 30 for a certain period.
  • the plurality of predetermined vacancy probabilities indicated by the vacant resource model may be held in advance by the vacant resource analysis unit 24, may be input from an input device (not shown), or obtained from another device. May be.
  • the free resource analysis unit 24 calculates, for example, the free resource amount indicated by the free resource model as follows.
  • the free resource analysis unit 24 uses the total resource usage at the same time of the history to each percentile corresponding to each predetermined free probability. Each corresponding value is calculated. Then, the free resource analysis unit 24 subtracts each calculated value from the maximum resource amount serving as the capacity of the server device 10, so that each free resource guaranteed with each predetermined free probability at the same time. Each amount is calculated.
  • the same time in the history of total resource usage means the same time on different days.
  • the same time means the same time
  • the same time means the same day of the week and the same time.
  • the free resource analysis unit 24 calculates a free resource amount history based on the history of the total resource usage stored in the performance information DB 30 and the maximum resource amount of the server device 10, and a plurality of the same time of the history
  • a value corresponding to each percentile corresponding to each predetermined free probability may be calculated from the free resource amount, and each calculated value may be each free resource amount guaranteed with each predetermined free probability.
  • the free resource analysis unit 24 assumes that all the currently operating VMs 11 continue to operate. To calculate the free resource amount. For example, a case where VM (A) and VM (B) are operated at a certain time tp in the past, and VM (B) and VM (C) are operated at the current time tc is illustrated. In this case, it is assumed that VM (B) and VM (C) were still operating at time tp.
  • the free resource analysis unit 24 subtracts the VM (A) resource usage at the time tp from the total resource usage at the time tp, and adds the VM (C) resource usage at the time tp.
  • the actual resource usage at time tp is calculated.
  • the free resource analysis unit 24 calculates the actual resource usage at each time point, and thereafter calculates each free resource amount guaranteed with each predetermined free probability by the same method as described above.
  • the free resource model is a discrete model indicating a plurality of free resource amounts corresponding to a plurality of predetermined free probabilities every hour.
  • the free resource model may be a model indicating a continuous value.
  • the task scheduler 22 determines an execution plan of the target task so that the target task received by the task receiving unit 21 is completed within a requested time with a predetermined completion probability.
  • the request time is information stored in the task information management DB 31 and is, for example, the deadline time of the target task.
  • the predetermined completion probability may be stored in the task information management DB 31 or may be held in advance by the task scheduler 22.
  • the task scheduler 22 determines the server device 10 that executes the target task based on the management information of the input data of the target task managed by the input data management unit 25. Then, the task scheduler 22 corresponds to the predetermined completion probability from a plurality of predetermined empty probabilities indicated by the empty resource model generated by the empty resource analysis unit 24 based on the determined number of server devices 10. A predetermined free probability is selected. For example, when a plurality of predetermined empty probabilities are 80%, 90%, and 93%, a predetermined completion probability is 80%, and the target task is executed by two server devices 10, this corresponds to the predetermined completion probability. The predetermined vacancy probability is determined to be 90%.
  • a predetermined empty probability (80%) that is equal to or lower than a predetermined completion probability (80%) may be selected.
  • the certainty of free resources (empty probability) required for a single server device 10 as the number of server devices 10 that execute the target task increases. Becomes higher.
  • the server device 10 that executes the target task is determined to be the server device 10 having input data of the target task.
  • the task scheduler 22 is based on each free resource amount guaranteed with a predetermined free probability corresponding to the predetermined completion probability in each determined server device 10 and the amount of input data possessed by each server device 10. Thus, it is determined whether the target task executed on each server device 10 is completed within the requested time.
  • the task scheduler 22 calculates the processing time when the input data is processed using the free resource amount guaranteed with the predetermined free probability, and compares the calculated processing time with the requested time to determine the above-described determination. I do.
  • the task scheduler 22 determines a plurality of server apparatuses 10 that execute the target task as one of the target task execution plans based on the determination result. At this time, the task scheduler 22 also determines the start time of the target task as the execution plan based on the task information stored in the task information management DB 31.
  • the task scheduler 22 determines the transfer of at least a part of the distributed input data that the server device 10 has.
  • the server device 10 determined that the target task is not completed within the requested time may be referred to as an overflow server device.
  • the task scheduler 22 determines the server apparatus 10 to which the distributed input data to be transferred is transferred, the transfer time of the distributed input data, and the distributed input to be transferred in the server apparatus 10 of the transfer destination. It is determined whether the processing time of the target task including the processing time for the data falls within the required time.
  • the task scheduler 22 preferably determines the server device 10 as the transfer destination from among them. This is because the execution of the target task can be concentrated in a small number of server devices 10, which leads to effective use of resources. Based on the determination result, the task scheduler 22 further determines the transfer of the input data and the execution of the target task in the server device 10 that is the transfer destination as the execution plan.
  • the task scheduler 22 calculates the maximum input data amount that can be processed with the free resource amount in the overflow server device 10 based on the free resource amount guaranteed with the selected predetermined free probability, and the distributed input data Is calculated as the amount of distributed input data to be transferred from the overflow server device 10.
  • the virtual machine management unit 26 determines that the target task is to be executed so that the VM 11 for executing the target task is deployed and operated at the task start time. An instruction is given to the VM control unit 12 of the apparatus 10.
  • the virtual machine management unit 26 instructs the transfer source server apparatus 10 or the transfer destination server apparatus 10 to transfer the input data together with the amount of input data to be transferred. To do. Further, the virtual machine management unit 26 may instruct the VM control unit 12 to terminate the VM 11 after the target task is completed.
  • the virtual machine management unit 26 may instruct the VM control unit 12 to execute the target task or the VM 11 deployed to execute the target task using a temporary free resource.
  • the VM control unit 12 operates on the server device 10 while the target task is operating using the temporary free resource, and software to which the resource is explicitly assigned.
  • an execution unit task, process, virtual machine, etc.
  • the temporary free resource being used is released to the target task, and the amount of resources to which the software execution unit is explicitly allocated is secured. Control as you can.
  • the virtual machine management unit 26 performs deployment of the VM 11 in order to schedule the target task in accordance with the execution plan determined by the task scheduler 22, but the management device 20 May be directly controlled.
  • the virtual machine management unit 26 can also be called a task control unit.
  • FIG. 4 is a flowchart illustrating an operation example of the management apparatus 20 according to the first embodiment.
  • each server device 10 measures the actual resource usage of the server device 10 at an arbitrary timing. At least one server device 10 as a representative of the plurality of server devices 10 may measure the actual resource usage of other server devices 10.
  • the management device 20 collects the actual resource usage of each server device 10 in a predetermined cycle, and stores the collected actual resource usage in the performance information DB 30.
  • the measurement timing of the actual resource usage of each server device 10 is the same as or shorter than the collection cycle of the management device 20.
  • the management device 20 refers to the task information management DB 31 at a predetermined cycle (S41, S42), and confirms the presence of an unscheduled task (S43).
  • S43 an unscheduled task
  • the management device 20 operates as follows for each detected task.
  • the detected task is referred to as a target task.
  • the management device 20 identifies the predetermined completion probability of the target task and the server device 10 having the input data of the target task.
  • the predetermined completion probability may be indicated by the task information of the target task stored in the task information management DB 31 or may be held in advance by the management device 20.
  • the server device 10 having input data is specified based on management information stored in the input data management DB 32.
  • the management device 20 Based on the predetermined completion probability of the target task and the number of server devices 10 having input data of the target task, the management device 20 sets the predetermined completion probability from among a plurality of predetermined empty probabilities indicated by the empty resource model. A corresponding predetermined empty probability is selected (S44). The specific method for selecting the predetermined empty probability corresponding to the predetermined completion probability is as described above.
  • the management device 20 has the input data of the target task based on the free resource amount guaranteed by the selected predetermined free probability and the amount (size) of the input data indicated by the free resource model.
  • Completion time of the target task executed on each server device 10 is calculated (S45).
  • the calculated completion time may be an end time of the target task or a period from the start to the end of the target task.
  • the management device 20 may generate a free resource model of each server device 10 having input data of the target task based on the actual resource usage stored in the performance information DB 30.
  • the generation of the free resource model may be separately generated at a unique timing.
  • the management device 20 confirms whether or not the request time (deadline time or time limit) is set in the task information of the target task (S46). When the request time is not set (S46; NO), the management device 20 determines an execution plan for the target task so that each server device 10 having input data executes the target task, and the target is based on the execution plan. Task scheduling is performed (S47). In the scheduling of the target task, as described above, the management apparatus 20 instructs the server apparatus 10 that is determined to execute the target task to deploy and operate the VM 11 for executing the target task at the task start time. To do. At this time, the management apparatus 20 may output the completion time calculated in (S45) for each server apparatus 10. For example, the management device 20 generates output data indicating the completion time and outputs the output data to a display device or another output device (printing device, recording medium, or the like) via the input / output I / F 4.
  • the management device 20 determines whether there is a server device 10 (overflow server device 10) whose completion time calculated in (S45) exceeds the required time. (S48). When there is no overflow server device 10 (S48; NO), the management device 20 determines an execution plan for the target task so that each server device 10 having input data executes the target task, and the target device is based on this execution plan. Task scheduling is performed (S47).
  • the management device 20 calculates the amount of excess input data for each overflow server device 10 (S49).
  • the management device 20 calculates the maximum input data amount that can be processed with the free resource amount corresponding to the selected predetermined free probability with respect to the overflow server device 10, and subtracts the maximum input data amount from the original input data amount. Thus, it is possible to calculate the amount of excess input data.
  • the management device 20 confirms whether there is a server device 10 having a surplus in the amount of free resources among the server devices 10 having the input data of the target task other than the overflow server device 10 (S50).
  • the server device 10 having a surplus in the amount of free resources is referred to as a surplus server device 10.
  • the management device 20 calculates the maximum input data amount that can set the completion time of the target task within the deadline time, and replaces the server device 10 having the maximum input data amount larger than the original input data amount with the surplus server device 10. Can be decided.
  • the management device 20 determines one of the surplus server devices 10 as a transfer destination of the excess input data (S51). As a result, the overflow server device 10 for which transfer of excess input data has been determined becomes the server device 10 whose completion time does not exceed the required time.
  • the management device 20 recalculates the completion time of the target task in each server device 10 at the transfer destination and the transfer source in consideration of the transfer of the input data (S52). Specifically, the management device 20 estimates the transfer time of the excess input data, and the processing time for the original input data and the excess input data in the surplus server device 10 determined as the transfer destination, The completion time of the target task in the destination server apparatus 10 is recalculated (S52). Furthermore, the management device 20 recalculates the completion time of the target task for the server device 10 that is the transfer source, based on the input data amount after the transfer. As a result, the management device 20 checks whether there is a server device 10 in which the completion time recalculated in (S52) and the completion time calculated in (S45) exceed the required time (S48). S49) and subsequent steps are executed again.
  • the management device 20 further includes the server device 10 having no input data of the target task. It is confirmed whether or not the surplus server device 10 exists (S53). When the surplus server device 10 does not exist (S53; NO), the management device 20 determines that the resource is insufficient (S54). The management device 20 may output the result of the resource shortage determination.
  • the management device 20 reselects a predetermined empty probability corresponding to the predetermined completion probability because the number of server devices 10 that process the target task increases (S55).
  • a higher predetermined free probability is selected to satisfy the predetermined completion probability.
  • the management apparatus 20 determines one of the server apparatuses 10 having no input data of the target task as a transfer destination of the excess input data (S51).
  • the management device 20 executes (S52) and subsequent steps in addition to the server device 10 determined as the transfer destination.
  • the management device 20 repeatedly executes such processing until there is no server device whose completion time exceeds the requested time.
  • the actual resource usage of each of the plurality of server devices 10 is collected, and the probabilistic free resource information for each of the plurality of server devices 10 is generated.
  • input data management information indicating the amount of distributed input data in each server device 10 in which the input data is distributed is managed, and a plurality of server devices having distributed input data are selected as server devices for executing the target task. Is done.
  • the free resource amount guaranteed by the predetermined free probability corresponding to the predetermined completion probability indicated by each probabilistic free resource information for each selected server device, and the amount of input data processed by the target task Based on the above, it is determined whether or not the target task is completed within the requested time. Based on the determination result, an execution plan for the target task is determined.
  • the execution plan of the target task is such that the target task is completed within the requested time with certainty indicated by the predetermined completion probability under the condition that the free resources of the server device 10 are used.
  • the reliability of the completion time of the target task is determined quantitatively, taking into account the use of free resources having the characteristic that availability is probabilistic. can do.
  • an overflow server device that is estimated to be unable to complete the target task within the requested time is specified from the server devices 10 that are provisionally determined to process input data. It is determined that at least a part of the distributed input data held by the apparatus is executed by another server apparatus 10.
  • the server device 10 as the transfer destination is determined, and it is determined whether or not the processing time of the target task including the transfer time of the distributed input data is completed within the requested time.
  • the maximum input data amount that can be processed with the free resource amount corresponding to the selected predetermined free probability in the overflow server device is calculated,
  • the difference between the amount of distributed input data and the maximum input data amount is calculated as the amount of distributed input data transferred from the overflow server device.
  • the maximum amount of input data that can be processed with the free resource amount remains as a processing target in the overflow server device. That is, according to the execution plan determined in the first embodiment, each server device 10 can efficiently use free resources. As a result, according to the first embodiment, more tasks can be executed simultaneously in the task management system 1.
  • Example 1 Example 1 using specific numerical values.
  • the first embodiment is not limited in any way from the following Example 1.
  • the task receiving unit 21 receives the following target task and exemplifies a case where the target task is executed by the three server apparatuses 10 (# 1), 10 (# 2), and 10 (# 3). To do.
  • Target task Task ID (001), task start time (19:00), deadline time (21:00)
  • the deadline time is set as the request time of the target task.
  • a case where the predetermined completion probability is set to 80% and a plurality of predetermined empty probabilities are set to 80%, 90%, and 93% is illustrated.
  • FIG. 5A is a histogram showing the history of the actual resource usage of the CPU of the server device 10 (# 1) from 19:00 to 20:00
  • FIG. 5B is the histogram of the server device 10 (# 1) from 20:00 to 21:00. It is a histogram which shows the log
  • FIG. 6A is a histogram showing the history of the actual resource usage of the CPU of the server device 10 (# 2) from 19:00 to 20:00
  • FIG. 6B is the histogram of the server device 10 (# 2) from 20:00 to 21:00. It is a histogram which shows the log
  • FIG. 6A is a histogram showing the history of the actual resource usage of the CPU of the server device 10 (# 2) from 19:00 to 20:00
  • FIG. 6B is the histogram of the server device 10 (# 2) from 20:00 to 21:00. It is a histogram which shows the log
  • FIG. 7A is a histogram showing the history of the actual resource usage of the CPU of the server device 10 (# 3) from 19:00 to 20:00
  • FIG. 7B is the histogram of the server device 10 (# 3) from 20:00 to 21:00. It is a histogram which shows the log
  • 19 o'clock to 20 o'clock is represented as 19 o'clock zone
  • 20 o'clock to 21 o'clock is represented as 20 o'clock zone.
  • the history of actual resource usage can be expressed not only by a histogram but also by a probabilistic model. Further, in the first embodiment, for the sake of simplicity, it is exemplified that a free resource model is generated only for CPU resources, and the maximum value of CPU resources is assumed to be 100%.
  • the horizontal axis indicates the actual resource usage of the CPU, and the vertical axis indicates the probability.
  • the free resource analysis unit 24 calculates the free resource amount guaranteed with a plurality of predetermined free probabilities for each time zone based on the histogram information of the server device 10 (# 1) shown in FIGS. 5A and 5B. Thus, an empty resource model of the server device 10 (# 1) is generated. According to FIG. 5A, the 80th, 90th, and 93th percentiles of the actual resource usage in the 19 hour zone are about 50, about 70, and about 80%, respectively. As a result, the free resource analysis unit 24 subtracts each value corresponding to each percentile from the maximum resource amount (100%) of the server device 10 (# 1) to thereby obtain each predetermined free space of 80, 90, and 93%. Each free resource amount guaranteed by probability is calculated to be about 50, about 30, and about 20%.
  • the 80, 90, and 93 percentiles of the actual resource usage in the 20 hour zone are about 50, about 65, and about 70%, respectively, so that the free resource analysis unit 24 has 80, 90, and 93%
  • Each free resource amount guaranteed with each predetermined free probability is calculated as about 50, about 35, and about 30%.
  • the free resource analysis unit 24 generates a free resource model of the server device 10 (# 2) using the histogram information of FIGS. 6A and 6B, and uses the histogram information of FIGS. 7A and 7B.
  • the free resource model (# 3) is generated.
  • FIG. 8 is a diagram illustrating the free resource model DB 33 according to the first embodiment.
  • the input data of the target task is distributed and deployed by 15 GB (gigabytes) on the server devices 10 (# 1) and 10 (# 2).
  • Server device 10 (# 3) does not have the input data.
  • the processing speed when 100% of the CPU resources are used is 10 MB (megabytes) / s (seconds) in all the server apparatuses 10.
  • Task ID 001 Server device 10 (# 1): 15 GB (gigabyte) Server device 10 (# 2): 15 GB (gigabyte) Server device 10 (# 3): 0
  • Task scheduler 22 first determines server devices 10 (# 1) and 10 (# 2) having input data as server devices that execute the target task. Since the determined number of server devices is 2, the task scheduler 22 sets the predetermined empty probability corresponding to the predetermined completion probability (80%) to a predetermined empty probability (80%, 90%, 93%). Of 90%.
  • the task scheduler 22 Based on the processing capability shown in FIG. 9 and the amount of input data held by the server apparatuses 10 (# 1) and 10 (# 2), the task scheduler 22 performs server apparatuses 10 (# 1) and 10 (# 2). ), It is determined whether the target task is completed within the requested time.
  • the required time is the above-mentioned deadline time (21:00).
  • the task scheduler 22 can determine that the target task is completed by the deadline time (21:00) in the server device 10 (# 1).
  • the task scheduler 22 performs the same calculation for the server device 10 (# 2). In the server device 10 (# 2), it can be estimated that the target task executed from the task start time (19:00) is completed at approximately 20:35. Thereby, the task scheduler 22 can determine that the target task is completed by the deadline time (21:00) in the server device 10 (# 2).
  • the VMs 11 for executing the target task are respectively deployed in the server apparatuses 10 (# 1) and 10 (# 2), and the target task is executed.
  • Task ID 001
  • Server device 10 # 1): 20 GB (gigabyte) Server device 10
  • the server device 10 (# 1) can also complete the processing of the target task by the deadline time for the target task with the task ID 002.
  • the task scheduler 22 determines that the target task cannot be completed within the requested time in the server device 10 (# 2), and other part of the input data (excess 2 GB) of the server device 10 (# 2) To be processed by the server device 10.
  • excess input data a part of the input data to be transferred is referred to as excess input data.
  • the task scheduler 22 first determines the destination of excess input data as the server apparatus 10 (# 1) that has already been determined to process the target task.
  • resources for transferring excess input data are secured in each server device 10 as follows. Data transfer reserved bandwidth: 10MB / s
  • Task ID 003 Server device 10 (# 1): 25 GB (gigabytes) Server device 10 (# 2): 25 GB (gigabyte) Server device 10 (# 3): 0
  • the amount of input data that can be processed by the server device 10 (# 1) using the free resource between 19:00 and 21:00 is 23.4 GB
  • the server device 10 (# 2) is 18 GB.
  • the task scheduler 22 determines that the target task cannot be completed within the requested time in the server devices 10 (# 1) and 10 (# 2), and the server devices 10 (# 1) and 10 (# 2) A part of each input data (excess amount 1.6 GB and excess amount 7 GB) is decided to be processed by the other server device 10 (# 3).
  • the task scheduler 22 reselects the predetermined empty probability corresponding to the predetermined completion probability (80%) to 93% because the number of server devices that execute the target task increases.
  • 90% is selected as the predetermined vacancy probability
  • the task scheduler 22 starts transferring the excess input data of the server device 10 (# 1) at the task start time (19:00), and after the transfer is completed, transfers the excess input data of the server device 10 (# 2), and The server device 10 (# 1) decides to start processing excess input data.
  • the transfer of excess input data of the server device 10 (# 2) is started after the transfer of excess input data of the server device 10 (# 1) is completed, the transfer of excess input data of the server device 10 (# 2) is started. Is completed before the processing of the excess input data (7 GB) of the server device 10 (# 1) is completed, and the server device 10 (# 3) has completed the processing of the excess input data of the server device 10 (# 1). Immediately, the processing of excess input data of the server device 10 (# 2) can be started.
  • the task management system 1 in the second embodiment performs scheduling of the target task so that the target task is completed in the shortest time.
  • the task management system 1 according to the second embodiment will be described focusing on the content different from the first embodiment. In the following description, the same contents as those in the first embodiment are omitted as appropriate.
  • the processing contents of the task scheduler 22 are different from those in the first embodiment.
  • the task scheduler 22 in the second embodiment first selects a plurality of server devices 10 that execute the target task. Then, the task scheduler 22 selects each free resource amount guaranteed by the selected predetermined free probability and each input data processed by the target task in each selected server device 10. Based on the amount of distributed input data allocated to the server device, the completion time of the target task in each of the selected server devices is estimated. Then, the task scheduler 22 further determines a distributed input data transfer pattern between the selected server devices so that the completion time of the entire target task obtained from the estimation result is shortened. The estimated completion time of the entire target task has certainty indicated by a predetermined completion probability.
  • the task scheduler 22 uses the same method as in the first embodiment to process the input data so as to satisfy the requirement that the target task is completed within the requested time. Select.
  • the task scheduler 22 selects the server device 10 that processes the input data regardless of the requested time.
  • the task scheduler 22 in the second embodiment targets the server devices 10 for a predetermined server number threshold. In other words, when the number of server devices 10 that already have distributed input data is smaller than the threshold value, the task scheduler 22 adds the server devices 10 that do not have distributed input data to the server devices 10 that do not have distributed input data. Add to the object of the device 10.
  • the predetermined server number threshold value may be set for the target task, or may be held in advance by the task scheduler 22.
  • FIG. 10 is a flowchart illustrating an operation example of the management apparatus 20 in the second embodiment. The operation shown in FIG. 10 is performed after the determination of (S46; NO) shown in FIG. 4 or after the determination of (S48; NO) and before (S47).
  • the management apparatus 20 acquires the threshold value of the number of server apparatuses 10 that process the target task (S61). When the number of already selected server devices 10 is less than the threshold value (S62; YES), the management device 20 selects the remaining number of server devices 10 having no input data (S63). The remaining number is a value obtained by subtracting the number of already selected server apparatuses 10 from the threshold value. In this case, since the number of server apparatuses 10 that process the target task changes, the management apparatus 20 reselects a predetermined vacancy probability corresponding to the predetermined completion probability according to the number. On the other hand, when the number of the already selected server devices 10 is equal to or greater than the threshold (S62; NO), the management device 20 sets the already selected server device 10 as a processing target.
  • the management apparatus 20 calculates the completion time of the entire target task based on the already determined assignment of input data (S64).
  • the assignment of input data here is the assignment determined in (S45) shown in FIG. 4 or the assignment determined in (S52) shown in FIG.
  • confirmation step 1 When the completion time of the entire target task in the confirmation step 0 is calculated, the process proceeds to the next confirmation step 1.
  • the transition of the confirmation step is not an operation of the management apparatus 20 but a concept provided for convenience of explanation.
  • the management device 20 first determines the transfer pattern of the input data based on the completion time in each server device 10 calculated in the previous confirmation step 0.
  • the completion time in each server device 10 calculated in the confirmation step 0 is the completion time calculated in (S45) shown in FIG.
  • the management device 20 determines to transfer a predetermined amount of input data from the server device 10 with the latest completion time to the server device 10 with the earliest completion time.
  • the management device 20 calculates a completion time in each server device 10 corresponding to the determined transfer pattern (S67).
  • the calculation method of the completion time in each server device 10 is the same as (S45) shown in FIG.
  • the management device 20 calculates the completion time of the entire target task based on the completion time in each server device 10 (S68).
  • the management apparatus 20 determines whether the completion time of the entire target task calculated in the confirmation step 1 is shorter than that calculated in the confirmation step 0 (S69).
  • the management device 20 determines an execution plan for the target task based on the input data transfer pattern determined in the previous confirmation step (t-1) (S70). In other words, the management device 20 further determines the transfer of the input data indicated by the transfer pattern and the execution of the target task in the server device 10 that is the transfer destination as the execution plan of the target task.
  • the threshold value of the number of server devices 10 that process the target task is acquired, and the target task is processed so that the completion time of the entire target task is shortened within the threshold value range.
  • the server device 10 to be transferred and the transfer pattern of the distributed input data are determined.
  • Each server device that processes the target task in which the completion time of the entire target task is estimated based on the amount of free resources guaranteed with a predetermined free probability corresponding to the predetermined completion probability in addition to the transfer time of the distributed input data Since it is calculated from the processing time of the distributed input data using free resources at 10, there is certainty indicated by a predetermined completion probability.
  • the entire target task can be obtained with a desired accuracy (predetermined completion probability) under the condition of using a temporary free resource of a server device having a characteristic that availability is probabilistic. It is possible to determine an execution plan for a task that achieves a minimum completion time.
  • Example 2 using specific numerical values.
  • 2nd Embodiment does not receive a restriction
  • the required time is not set for the target task and the threshold value of the number of server devices included in the predetermined condition is set to 2 is exemplified. Further, it is assumed that the input data of the target task is distributed and arranged at 15 GB in the server device 10 (# 1) and 15 GB in the server device 10 (# 2).
  • the task scheduler 22 first determines the server devices 10 (# 1) and 10 (# 2) having the input data as server devices that execute the target task. This satisfies the predetermined condition regarding the threshold value (2) of the number of server devices. At this time, the task scheduler 22 determines the predetermined empty probability corresponding to the predetermined completion probability (80%) as 90%. In addition, based on the free resource amount (see FIG. 8) guaranteed by the task scheduler 22 with a predetermined free probability (90%), free resources related to the server devices 10 (# 1) and 10 (# 2) are used. The processing capability of the target task is calculated as shown in FIG.
  • the task scheduler 22 Based on the processing capability shown in FIG. 9 and the amount of input data held by the server apparatuses 10 (# 1) and 10 (# 2), the task scheduler 22 performs server apparatuses 10 (# 1) and 10 (# 2). ) To estimate the completion time of the target task.
  • server device 10 (# 1) the processing completion time of 10 GB of input data is about 20:20. It is about 20:35 for server device 10 (# 2).
  • the task scheduler 22 determines the completion time of the entire target task to be about 20:35.
  • FIG. 11 is a diagram illustrating an example of intermediate data calculated by the task scheduler 22 in the second embodiment when two server devices process input data. Each completion time calculated in the above process is indicated by a line corresponding to step 0 in FIG.
  • the task scheduler 22 determines the execution plan of the target task so as to shorten the completion time of the entire target task by transferring a part of the input data.
  • the task scheduler 22 transfers a part of the input data between the server devices 10 (# 1) and 10 (# 2) having the input data, so that the completion time that has already been calculated. We will check if it can be shortened. The task scheduler 22 continues the confirmation until the completion time of the entire target task cannot be shortened.
  • the task scheduler 22 receives a predetermined amount (840 MB) of input data from the server device 10 (# 2) with the later completion time calculated in step 0. Estimate the completion time of the entire target task when transferred to 1).
  • the transfer amount of input data (840 MB) is determined to an arbitrary value.
  • the transfer time is 2 minutes.
  • the task scheduler 22 calculates the processing completion time of the original input data and the transferred input data as 20:24 in the server device 10 (# 1).
  • the task scheduler 22 calculates the processing completion time of the remaining input data excluding the transferred input data in the server device 10 (# 2) as 20:28.
  • the completion time of the entire target task is 20:28, which is shorter than the time calculated in step 0.
  • step 2 the task scheduler 22 further repeats the process of step 1 above.
  • the task scheduler 22 further transfers a predetermined amount (840 MB) of input data from the server device 10 (# 2) whose completion time calculated in step 1 is later to the server device 10 (# 1).
  • the task scheduler 22 calculates the completion time in step 2 as 20:28 by calculating in the same manner as in step 1. Since the calculated completion time is the same as the completion time calculated in Step 1, the task scheduler 22 finally adopts the execution plan in Step 1.
  • FIG. 12 is a diagram illustrating an example of intermediate data calculated by the task scheduler 22 according to the second embodiment when the three server devices process input data.
  • the task scheduler 22 does not transfer the input data in step 0, and determines the server devices 10 (# 1) and 10 (# 2) having the input data as server devices that execute the target task. .
  • 93% is selected as the predetermined empty probability corresponding to the predetermined completion probability (80%) in order to finally cause the three server devices to process the target task.
  • 90% may be selected as the predetermined vacancy probability.
  • the task scheduler 22 uses the calculation method described in the first embodiment, and the completion time of the target task in the server device 10 (# 1) is about 20:43, and the target task in the server device 10 (# 2) The completion time is estimated to be about 20:35. Thereby, in step 0, the task scheduler 22 estimates the completion time of the entire target task as 20:43.
  • the completion time of the entire target task estimated here has certainty of a predetermined completion probability (80%).
  • the task scheduler 22 cannot reduce the already calculated completion time by transferring the input data from the server device 10 (# 1) having the latest completion time to the server device 10 (# 3). Make sure.
  • the amount of input data to be transferred is arbitrarily set.
  • the amount of input data to be transferred is set to 1.8 GB.
  • the server device 10 (# 3) starts processing the transferred input data from 19: 3. be able to.
  • step 1 the task scheduler 22 sets the completion time of the server device 10 (# 1) to 20:33 (reduced by 10 minutes) and sets the completion time of the server device 10 (# 3) to 19:15.
  • the completion time of the server device 10 (# 2) is the same as that in Step 1 (20:35).
  • the task scheduler 22 estimates that the completion time of the entire target task in Step 1 is 20:35, and determines that it is shorter than Step 0.
  • the task scheduler 22 has already been calculated by transferring input data from the server device with the latest completion time to the server device with the earliest completion time. Check if the completion time can be shortened. The task scheduler 22 repeats the confirmation until the completion time of the entire task is not shortened, and assigns the input data estimated with the shortest completion time of the entire task as the final execution plan of the target task. In the example of FIG. 12, the completion time of the entire task is not shortened in step 6, and the input data allocation shown in step 5 is determined as the final execution plan of the target task.
  • the task scheduler 22 causes the server device 10 (# 1) to process 9.6 GB of input data, causes the server device 10 (# 2) to process 11.4 GB of input data, and causes the server device 10 (# 3) to process.
  • Process the 9 GB input data transfer the 5.4 GB input data from the server device 10 (# 1) to the server device 10 (# 3), and transfer the server device 10 (# 2) to the server device 10 (# 3).
  • the task management system 1 according to the third embodiment performs scheduling of target tasks in which distributed input data having the same content is duplicated and arranged in a plurality of server apparatuses 10.
  • the task management system 1 according to the third embodiment will be described focusing on the content different from the first embodiment and the second embodiment. In the following description, the same contents as those in the first embodiment and the second embodiment are omitted as appropriate.
  • a data ID (data identification information) is assigned to the distributed input data.
  • the same data ID is assigned to the distributed input data having the same contents.
  • the input data management information indicates, for each distributed input data serving as partial data of the input data, a data ID, the amount of the distributed input data, and information regarding the server device 10 in which the distributed input data exists. . At least one of the distributed input data having the same content that is redundantly arranged in the plurality of server apparatuses 10 may be processed by the target task.
  • the task scheduler 22 is based on the first criterion for minimizing the number of server devices 10 to be used and the second criterion for maximizing the use efficiency of free resources of the server device 10 on the assumption that the requested time is observed.
  • the server apparatus 10 that processes the input data transfer pattern and the input data is determined as the execution plan of the target task.
  • the task scheduler 22 uses the same method as in each of the above-described embodiments to determine the target task for each server device 10 having distributed input data, regardless of whether or not they overlap. Each completion time is calculated. At this time, the task scheduler 22 considers the number of different data IDs as the number of server devices 10 that process the target task, and selects a predetermined free probability corresponding to the predetermined completion probability based on the number. The task scheduler 22 confirms the existence of the overflow server device 10 by comparing the completion time of the target task with the requested time in each server device 10. The task scheduler 22 performs the following process according to the presence of the overflow server device 10.
  • the task scheduler 22 selects the server device 10 having the highest use efficiency of free resources for each data ID.
  • the task scheduler 22 A server device 10 other than the overflow server device 10 is selected. This is because, when the overflow server device 10 is selected, it is necessary to transfer a part of the input data to another server device 10 in order to keep the requested time, and there is a possibility that the first standard cannot be met. Because. However, since the number of server devices 10 that process the target task may not increase depending on the amount of input data to be transferred and the surplus status of free resources of other server devices 10, the final number of server devices 10 After the estimation, the overflow server device 10 may be selected.
  • the task scheduler 22 selects the server device 10 with the smallest amount of excess input data. .
  • the amount of excess input data may be calculated by the same method as in each of the embodiments described above.
  • the task scheduler 22 first determines the server device 10 that is scheduled to process the input data as a transfer destination of the excess input data. If the server device 10 cannot process the excess input data, the task scheduler 22 next determines the server device 10 having the same input data as the input data to be transferred as the transfer destination.
  • the management apparatus 20 uses the same method as in the above-described embodiments to determine whether each server apparatus 10 having distributed input data regardless of whether or not they overlap. For each of the target tasks. And the management apparatus 20 selects the server apparatus 10 which processes an object task with the above references
  • the management device 20 has the same input data as the overflow server device 10 and there is a server device 10 that is not the overflow server device 10 Then, the server device 10 is selected. On the other hand, when all of the server devices 10 having the same input data in duplicate are overflow server devices 10, the management device 20 selects the server device 10 having the smallest amount of excess input data.
  • the same input data is obtained based on the amount of probabilistic free resource information and distributed input data, as in the above embodiments. For each server device it has, it is determined whether or not the target task is completed within the requested time. Then, a server device that can complete the target task within the requested time among a plurality of server devices having the same input data is selected as a server device that preferentially processes the target task. Thereby, according to the execution plan determined by 3rd Embodiment, the number of server apparatuses which process a target task can be minimized, protecting the request time regarding a target task, and by extension, in task management system 1 Can handle many tasks simultaneously.
  • the input data for the maximum input data amount that can be processed with the free resource amount guaranteed with the selected predetermined free probability A server device with a large proportion of the amount of the server is selected as a server device that preferentially processes the target task.
  • Example 3 the above-described third embodiment will be described in more detail as Example 3 using specific numerical values.
  • the third embodiment is not limited at all by the following Example 3.
  • Task ID 004 Server device 10 (# 1): Data ID (A), 10 GB Server device 10 (# 2): Data ID (B), 10 GB Server device 10 (# 3): Data ID (A), 10 GB Server device 10 (# 4): Data ID (B), 10 GB
  • the task scheduler 22 regards the number of server devices 10 that process the target task as 2, and based on the number, the predetermined free probability corresponding to the predetermined completion probability Select.
  • FIG. 13 is a diagram illustrating an example of processing capacity of free resources of each server device 10 in the 19 and 20 time zones corresponding to a certain predetermined free probability.
  • the maximum processing capacity of the free resource in the server device 10 (# 1) between 19:00 and 21:00 is 10.8 GB
  • the server device 10 (# 3) is 7.2 GB. Therefore, of the server devices 10 (# 1) and 10 (# 3) having the input data (A), the server device 10 (# 1) can complete the target task within the requested time. (# 3) is not possible. That is, the server device 10 (# 3) is the overflow server device 10. Therefore, the task scheduler 22 selects the server device 10 (# 1) as the server device that processes the input data (A).
  • the task scheduler 22 determines that the server devices 10 (# 2) and 10 (# 4) having the input data (B) are overflow server devices. In this case, the task scheduler 22 calculates the amount of excess input data for the server devices 10 (# 2) and 10 (# 4). The excess input data of the server device 10 (# 2) is 4.6 GB, and the server device 10 (# 4) is 2.8 GB.
  • the task scheduler 22 selects the server device 10 (# 4) with a small amount of input data that needs to be transferred for the input data (B), and the amount of input data (2.8 GB) of the excess. ) To determine the amount of input data to be transferred.
  • the task scheduler 22 first selects the server device 10 (# 1) scheduled to process the input data (A) as the transfer destination of the excess input data. However, since the server device 10 (# 1) processes the input data (A) for 10 GB, the server device 10 (# 1) has only the remaining 0.8 GB of surplus free resources. Accordingly, the server device 10 (# 1) cannot process all the input data exceeding the server device 10 (# 4). Therefore, the task scheduler 22 next determines the server device 10 (# 2) having the same input data (B) as the excess input data as the transfer destination. At this time, since the number of server devices 10 that process the target task increases to three (server devices 10 (# 1), 10 (# 2), and 10 (# 4)), the task scheduler 22 Similar to the embodiment, the predetermined empty probability is selected again.
  • the completion time of the target task is calculated, but the task management method in each embodiment can determine whether the target task is completed within the requested time. In this case, the step of calculating the completion time of the target task may not necessarily be included.
  • the management apparatus 20 may compare the maximum input data amount that can be processed with the free resource amount and the assigned input data amount. If it is determined by this comparison that the maximum input data amount is smaller than the allocated input data amount, the management device 20 determines that the server device 10 cannot complete the target task within the requested time. That is, the server device 10 can be identified as an overflow server device.
  • a resource information acquisition unit that acquires actual resource usage indicating the amount of resources actually used on the server device; Stochastic free resources each indicating the free resource amount guaranteed by the predetermined free probability for a plurality of predetermined free probabilities for the server device based on the history of actual resource usage acquired by the resource information acquiring unit
  • a resource analysis unit that generates information; Selecting at least one server device to execute the target task, selecting a predetermined free probability corresponding to a predetermined completion probability from the plurality of predetermined free probabilities, and the stochastic free resource for the selected server device
  • a scheduling unit that determines an execution plan of the target task based on a free resource amount that is guaranteed by the selected predetermined free probability indicated by the information;
  • a task management device comprising:
  • the scheduling unit determines whether the target task is completed within a requested time based on the amount of free resources guaranteed by the selected predetermined free probability and the amount of input data processed by the target task. Determining an execution plan of the target task based on the determination result, The task management device according to attachment 1.
  • An input data acquisition unit for acquiring input data location information indicating the amount of distributed input data in each server device in which input data processed by the target task is distributed; Further comprising The resource information acquisition unit acquires the actual resource usage for each of the plurality of server devices, The resource analysis unit generates the probabilistic free resource information for each of the plurality of server devices, The scheduling unit selects a plurality of server devices having the distributed input data as server devices for executing the target task, and selects the number of selected server devices and a predetermined completion probability from the plurality of predetermined empty probabilities.
  • the amount of free resources guaranteed by the selected predetermined free probability in each selected server device, and the amount of distributed input data possessed by each selected server device Determining whether the target task executed on each selected server device is completed within the requested time based on The task management device according to attachment 2.
  • the scheduling unit determines a server device that is a transfer destination of at least a part of the distributed input data of the overflow server device determined that the target task is not completed within the request time, and the transfer time of the distributed input data And whether or not the processing time of the target task including the processing time for the distributed input data to be transferred in the server device as the transfer destination falls within the request time, and based on the determination result, Further determining the transfer of the distributed input data and the execution of the target task in the server device as the transfer destination as an execution plan of the target task, The task management device according to attachment 3.
  • the scheduling unit calculates the maximum input data amount that can be processed with the free resource amount in the overflow server device based on the free resource amount guaranteed with the selected predetermined free probability, and the distributed input data Calculating the difference between the amount and the maximum input data amount as the amount of distributed input data to be transferred from the overflow server device;
  • the task management device according to appendix 4.
  • the scheduling unit selects a plurality of server devices that execute the target task, and each free resource amount that is guaranteed by the selected predetermined free probability in each selected server device is processed by the target task. Based on the amount of distributed input data allocated to each of the selected server devices, and the completion time of the target task in each of the selected server devices, and from the estimation result Further determining a transfer pattern of distributed input data between the selected server devices as an execution plan of the target task so that the completion time of the entire target task obtained is shortened.
  • the task management device according to any one of appendices 1 to 5.
  • the scheduling unit obtains the same input data based on the free resource amount guaranteed by the selected predetermined free probability and the amount of the input data. For each of the server devices, it is determined whether the target task is completed within the requested time, and the target task among a plurality of server devices having the same input data can be completed within the requested time Selecting a server device as a server device that preferentially processes the target task; The task management device according to any one of appendices 1 to 6.
  • the scheduling unit has the same input data and the selection among the plurality of server devices capable of completing the target task within the requested time Selecting a server device having a large ratio of the amount of input data to the maximum amount of input data that can be processed with the free resource amount guaranteed by the predetermined free space probability as a server device that preferentially processes the target task;
  • the task management device according to appendix 7.
  • the server device determined to execute the target task is caused to execute the target task, and during execution of the target task, a predetermined amount of resources is generated.
  • a task control unit that causes the target task to release a resource when an explicitly assigned software execution unit requests the resource;
  • (Appendix 10) In a task management method executed by at least one computer, Get the actual resource usage indicating the amount of resources actually used on the server device, Based on the acquired history of actual resource usage, probabilistic free resource information for each of a plurality of predetermined free probabilities for the server device, each indicating free resource amount guaranteed by the predetermined free probability, Select at least one server device to execute the target task, Selecting a predetermined empty probability corresponding to a predetermined completion probability from the plurality of predetermined empty probabilities; Determining an execution plan for the target task based on an amount of free resources guaranteed by the selected predetermined free probability indicated by the stochastic free resource information for the selected server device; Task management method that includes that.
  • (Appendix 12) Obtaining input data location information respectively indicating the amount of distributed input data in each server device in which the input data processed by the target task is distributed; Further including The acquisition of the actual resource usage is to acquire the actual resource usage for each of the plurality of server devices, The generation of the probabilistic free resource information generates the probabilistic free resource information for each of the plurality of server devices, The selection of the server device selects a plurality of server devices having the distributed input data as a server device for executing the target task, The selection of the predetermined empty probability selects a predetermined empty probability corresponding to the number of the selected server devices and a predetermined completion probability from the plurality of predetermined empty probabilities, The determination is based on each free resource amount guaranteed by the selected predetermined free probability in each selected server device and the amount of distributed input data held by each selected server device. Determining whether each of the target tasks executed on each selected server device is completed within the requested time; The task management method according to attachment 11.
  • (Appendix 13) Determining a server device as a transfer destination of at least a part of the distributed input data of the overflow server device determined that the target task is not completed within the request time; Further including The determination is whether or not the processing time of the target task including the transfer time of the distributed input data and the processing time of the distributed input data transferred in the server device as the transfer destination falls within the required time. Judgment, The target task execution plan is determined based on the determination result by transferring the distributed input data and executing the target task on the server device as the transfer destination as the target task execution plan. decide, The task management method according to attachment 12.
  • (Appendix 15) Select a plurality of server devices that execute the target task, Distributed input allocated to each selected server device from among each free resource amount guaranteed by the selected predetermined free probability in each selected server device and input data processed by the target task And estimating the completion time of the target task in each of the selected server devices based on the amount of data, Determining a transfer pattern of distributed input data among the selected server devices so that the completion time of the entire target task obtained from the estimation result is shortened;
  • the task management method according to any one of appendices 10 to 14, further including:
  • the determination is based on the amount of free resources guaranteed by the selected predetermined free probability and the amount of input data when a plurality of server devices have the same input data in duplicate. For each server device having the same input data, determine whether or not the target task is completed within the requested time, The selection of the server device selects a server device that can complete the target task within the request time as a server device that preferentially processes the target task among a plurality of server devices having the same input data.
  • the task management method according to any one of appendices 10 to 15.
  • the server device determined to execute the target task is caused to execute the target task.
  • the target task is made to release the resource.
  • the task management method according to any one of appendices 10 to 17, further including:
  • Appendix 19 A program that causes at least one computer to execute the task management method according to any one of appendices 10 to 18.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

 タスク管理装置(100)は、サーバ装置上で実際に使用されているリソース量を示す実リソース使用量を取得するリソース情報取得部(101)と、取得された実リソース使用量の履歴に基づいて、サーバ装置のための、複数の所定空き確率についてその所定空き確率で保証される空きリソース量をそれぞれ示す確率的空きリソース情報を生成するリソース分析部(102)と、当該複数の所定空き確率の中から所定完了確率に対応する所定空き確率を選択し、当該サーバ装置のための確率的空きリソース情報により示される、その選択された所定空き確率で保証される空きリソース量に基づいて、対象タスクの実行計画を決定するスケジューリング部(103)と、を有する。

Description

タスク管理装置及びタスク管理方法
 本発明は、タスク等のソフトウェア実行単位のスケジューリング技術に関する。
 仮想化技術の普及により、データセンタ等では、複数の物理マシンのリソースが一元管理され、共有リソースプールとして扱われるようになってきている。例えば、複数の仮想マシンを1つのサーバ装置に集約することにより、効率的にリソースを利用することが可能である。しかしながら、依然としてサーバ装置には利用されていないリソースが存在する。リソースに空きが無い時間が存在する場合でも、一時的にリソースに空きができる場合は少なくない。ライブマイグレーション等を用いれば、このような一時的に生じる空きリソースを他の仮想マシンに利用させることができる。しかしながら、この手法は、ライブマイグレーション自体の移行コストや空きリソースの供給不確実性から効果的ではない。空きリソースの発生は、サーバ装置上で既に動作している仮想マシンやプロセスなどのリソース使用状況に依存するからである。
 仮想マシンへ割り当てるリソースの上限の設定や優先度制御も可能であるため、例えば、或る仮想マシンに対して、他の仮想マシンがリソースを利用していないときのみリソースを利用できるようにするといった制御も可能である。これにより、或る仮想マシンに対しては明示的に割り当てたリソース量を保証しつつ、他の仮想マシンに空きのリソースを利用させるといったリソースの効率的な利用が可能となる。例えば、高いサービスレベルを要求する仮想マシンには明示的にリソースを割り当て、低いサービスレベルの仮想マシンには空きのリソースを利用させるといった使い方が効果的である。
 一方で、MapReduce等の分散処理フレームワークの普及により、複数のサーバ装置のリソースを利用した分散処理が行われるようになってきている。このような技術は、例えば、大量なログをバッチ的に処理するタスクを実行する際に利用することができる。但し、一時的にリソースを利用できなくてもよいという点において、この技術に要求されるサービスレベルは低い。
 下記特許文献1では、仮想マシン及び物理マシン並びにネットワークの負荷の時間変化に基づいて、仮想マシン、物理マシン及びネットワークにおいて負荷が偏らないように、かつ、物理マシン及び仮想マシンにおけるCPU負荷のピークの重複が回避されるように、仮想マシンの移動をスケジューリングする手法が提案されている。下記特許文献2では、各仮想マシンの負荷の相関関係から、各仮想マシンの相対的な最大負荷量を予測し、動作する仮想マシンの最大負荷量の合計が各サーバ装置の許容負荷量以下に収まるように、各仮想マシンをサーバ装置に配備して、物理リソースの利用効率の向上を図る手法が提案されている。
 下記特許文献3では、各プロセスに関し予測される将来のリソース使用量に基づいて、所定の時間内に終了しない非終了プロセスの発生時間帯を予測し、その非終了プロセスを他の計算機に移して実行させることで、非終了プロセスの発生を未然に防ぐ手法が提案されている。下記特許文献4では、ジョブを分割・移動する必要が生じた場合に、各ノードのリソース使用率データを取得し、そのリソース使用率データで示される各ノードのCPU使用率等に基づいて、タスクの移動先となるノードを選択する手法が提案されている。下記特許文献5では、単位時間毎のプロセッサ使用状況をプロセッサごとにそれぞれ収集し、各プロセスの所要プロセッサリソース量、許容処理完了時間及び経過時間に基づいて、各プロセスに割り当てるプロセッサリソース量を決める手法が提案されている。
特開2010-117760号公報 特開2010-244181号公報 特開2008-015958号公報 特開2008-123205号公報 特開平06-028323号公報
 しかしながら、上述の各提案手法は、仮想マシン、プロセス、ジョブ、タスク等のようなソフトウェア実行単位に対して、サーバ装置の許容リソース量を超えないように、又は、許容処理時間内に完了するように、サーバ装置自体又はサーバ装置のリソース量を割り当てているに過ぎない。しかしながら、上述したように、サーバ装置の空きリソースには、そのサーバ装置上で動作する実行単位に明示的に割り当てられたリソースを除外した残りのリソースに加えて、その明示的に割り当てられているリソースの中の一時的に利用されていないリソースも含まれる。以降、このような、実行単位に明示的に割り当てられているリソースの中の一時的に利用されていないリソースを一時空きリソースと表記する。また、上述のようなソフトウェア実行単位の中の、スケジューリング(実行計画の制御)対象となるものをタスクと総称する。
 上述の各提案手法は、このような一時空きリソースを有効活用することについては全く考慮されていない。一時空きリソースは、対象タスクが利用している間は、他のタスクは重複して確保できないため、利用の可否が確率的であるという特性を有する。よって、例えば、上記特許文献3及び5のような提案手法を用いたとしても、確率的にリソースが確保され得る状況での対象タスクの完了時間の確実性を定量的に判断することができない。
 本発明は、このような事情に鑑みてなされたものであり、サーバ装置の一時空きリソースを利用する条件下において、所望の確実性で要求に適合し得るタスクスケジューリング技術を提供する。
 本発明の各側面では、上述した課題を解決するために、それぞれ以下の構成を採用する。
 第1の側面は、タスク管理装置に関する。第1の側面に係るタスク管理装置は、サーバ装置上で実際に使用されているリソース量を示す実リソース使用量を取得するリソース情報取得部と、リソース情報取得部により取得される実リソース使用量の履歴に基づいて、サーバ装置のための、複数の所定空き確率についてその所定空き確率で保証される空きリソース量をそれぞれ示す確率的空きリソース情報を生成するリソース分析部と、対象タスクを実行させる少なくとも1つのサーバ装置を選択し、当該複数の所定空き確率の中から所定完了確率に対応する所定空き確率を選択し、選択されたサーバ装置のための確率的空きリソース情報により示される、その選択された所定空き確率で保証される空きリソース量に基づいて、対象タスクの実行計画を決定するスケジューリング部と、を有する。
 第2の側面は、少なくとも1つのコンピュータにより実行されるタスク管理方法に関する。第2の側面に係るタスク管理方法は、サーバ装置上で実際に使用されているリソース量を示す実リソース使用量を取得し、取得された実リソース使用量の履歴に基づいて、サーバ装置のための、複数の所定空き確率についてその所定空き確率で保証される空きリソース量をそれぞれ示す確率的空きリソース情報を生成し、対象タスクを実行させる少なくとも1つのサーバ装置を選択し、複数の所定空き確率の中から所定完了確率に対応する所定空き確率を選択し、選択されたサーバ装置のための確率的空きリソース情報により示される、選択された所定空き確率で保証される空きリソース量に基づいて、対象タスクの実行計画を決定する、ことを含む。
 なお、本発明の他の側面としては、上記第2の側面の方法を少なくとも1つのコンピュータに実行させるプログラムであってもよいし、このようなプログラムを記録したコンピュータが読み取り可能な記録媒体であってもよい。この記録媒体は、非一時的な有形の媒体を含む。
 上記各側面によれば、サーバ装置の一時空きリソースを利用する条件下において、所望の確実性で要求に適合し得るタスクスケジューリング技術を提供することができる。
 上述した目的、およびその他の目的、特徴および利点は、以下に述べる好適な実施の形態、およびそれに付随する以下の図面によってさらに明らかになる。
本発明の実施の形態に係るタスク管理装置の構成例を概念的に示す図である。 第1実施形態におけるタスク管理システムの構成例を概念的に示す図である。 第1実施形態におけるタスク管理システムにおける処理構成例を概念的に示す図である。 第1実施形態における管理装置の動作例を示すフローチャートである。 19時から20時におけるサーバ装置10(#1)のCPUの実リソース使用量の履歴を示すヒストグラムである。 20時から21時におけるサーバ装置10(#1)のCPUの実リソース使用量の履歴を示すヒストグラムである。 19時から20時におけるサーバ装置10(#2)のCPUの実リソース使用量の履歴を示すヒストグラムである。 20時から21時におけるサーバ装置10(#2)のCPUの実リソース使用量の履歴を示すヒストグラムである。 19時から20時におけるサーバ装置10(#3)のCPUの実リソース使用量の履歴を示すヒストグラムである。 20時から21時におけるサーバ装置10(#3)のCPUの実リソース使用量の履歴を示すヒストグラムである。 実施例1における空きリソースモデルDBを示す図である。 図8に示される空きリソースモデルに基づいて計算された処理能力の例を示す図である。 第2実施形態における管理装置の動作例を示すフローチャートである。 2つのサーバ装置に入力データを処理させる場合の、実施例2におけるタスクスケジューラで算出される中間データの例を示す図である。 3つのサーバ装置に入力データを処理させる場合の、実施例2におけるタスクスケジューラで算出される中間データの例を示す図である。 或る所定空き確率に対応する19時帯及び20時帯での各サーバ装置の空きリソースの処理能力の例を示す図である。
 以下、本発明の実施の形態について説明する。なお、以下に挙げる実施形態は例示であり、本発明は以下の実施形態の構成に限定されない。
 図1は、本発明の実施の形態に係るタスク管理装置100の構成例を概念的に示す図である。図1に示されるように、タスク管理装置100は、リソース情報取得部101と、リソース分析部102と、スケジューリング部103とを有する。リソース情報取得部101は、サーバ装置上で実際に使用されているリソース量を示す実リソース使用量を取得する。リソース分析部102は、リソース情報取得部101により取得される実リソース使用量の履歴に基づいて、サーバ装置のための、複数の所定空き確率についてその所定空き確率で保証される空きリソース量をそれぞれ示す確率的空きリソース情報を生成する。スケジューリング部103は、対象タスクを実行させる少なくとも1つのサーバ装置を選択し、当該複数の所定空き確率の中から所定完了確率に対応する所定空き確率を選択し、選択されたサーバ装置のための確率的空きリソース情報により示される、その選択された所定空き確率で保証される空きリソース量に基づいて、対象タスクの実行計画を決定する。
 タスク管理装置100は、例えば、後述する詳細実施形態における管理装置20と同様のハードウェア構成を有し、その管理装置20と同様にプログラムが処理されることで、上述の各処理部が実現される。
 また、本発明の実施の形態に係るタスク管理方法は、少なくとも1つのコンピュータにより実行される。当該タスク管理方法は、サーバ装置上で実際に使用されているリソース量を示す実リソース使用量を取得し、取得された実リソース使用量の履歴に基づいて、サーバ装置のための、複数の所定空き確率についてその所定空き確率で保証される空きリソース量をそれぞれ示す確率的空きリソース情報を生成し、対象タスクを実行させる少なくとも1つのサーバ装置を選択し、複数の所定空き確率の中から所定完了確率に対応する所定空き確率を選択し、選択されたサーバ装置のための確率的空きリソース情報により示される、選択された所定空き確率で保証される空きリソース量に基づいて、対象タスクの実行計画を決定する、ことを含む。
 このように、本実施形態では、サーバ装置の実リソース使用量が取得され、実リソース使用量の履歴に基づいて、確率的空きリソース情報が生成される。ここで、実リソース使用量とは、サーバ装置で実行される各ソフトウェア実行単位に明示的に割り当てられているリソースの量ではなく、そのサーバ装置で各ソフトウェア実行単位により実際に使用されているリソースの量を意味する。また、所定空き確率とは、対応する空きリソース量が保証される確からしさの程度を意味する。これにより、本実施形態で生成される確率的空きリソース情報は、空きリソース量と、その空きリソース量が保証される確からしさの程度(所定空き確率)との対応関係を示す。空きリソース量には、ソフトウェア実行単位に明示的に割り当てられているリソースの中で一時的に利用されていない一時空きリソースの量も含まれるため、確率的空きリソース情報で示される空きリソース量は、確実に確保が保証されるリソース量ではなく、確率的な情報(所定空き確率)と関連付けられる。
 更に、本実施形態では、対象タスクの実行計画を決定するにあたり、複数の所定空き確率の中から所定完了確率に対応する所定空き確率が選択される。ここで、所定完了確率とは、決定された実行計画に基づいて対象タスクが実行された場合に、その実行計画に対する要求に適合する確からしさを意味する。ここで実行計画に対する要求とは、例えば、対象タスクを要求時間内に完了させることや、対象タスクを短い時間で完了させることなどである。但し、本実施形態では、実行計画に対する要求の内容を制限しない。
 これにより、言い換えれば、本実施形態では、所望の精度(所定完了確率)で要求に適合する実行計画を決めるために、保証される必要のある空きリソース量の確保の確からしさが決定される。対象タスクを実行させるサーバ装置が1つの場合、所定空き確率は、所定完了確率と同等の値に決められてもよい。また、対象タスクを実行させるサーバ装置が複数の場合、対象タスクの実行計画の精度は、全てのサーバ装置でそれぞれ空きリソースが利用された結果に依存するため、所定空き確率は、所定完了確率よりも高い値に決められる。
 そして、本実施形態では、当該確率的空きリソース情報により示される、当該選択された所定空き確率で保証される空きリソース量に基づいて、対象タスクの実行計画が決定される。ここで、対象タスクの実行計画とは、対象タスクをどのサーバ装置上で実行するか、対象タスクをいつ実行するか、対象タスクのためのデータをどのように移送するか等といった、対象タスクを実行するための何らかの計画を意味する。本実施形態では、この実行計画の内容自体は制限されない。
 このように、本実施形態では、所望の精度(所定完了確率)で要求に適合するための空きリソース量の確率情報(所定空き確率)に基づいて、タスクの実行計画が決定される。従って、本実施形態によれば、利用の可否が確率的であるという特性を持つサーバ装置の一時空きリソースを利用するという条件の下、所望の確実性で要求に適合し得るタスクの実行計画の策定(タスクスケジューリング)を実現することができる。
 以下、上述の実施形態について更に詳細を説明する。以下には、詳細実施形態として第1実施形態、第2実施形態及び第3実施形態を例示する。以下の各詳細実施形態は、上述のタスク管理装置及びタスク管理方法をタスク管理システムに適用した場合の例である。
 [第1実施形態]
 〔システム構成〕
 図2は、第1実施形態におけるタスク管理システム1の構成例を概念的に示す図である。第1実施形態におけるタスク管理システム1は、複数のサーバ装置10(#1)から10(#n)、管理装置20等を有する。以降、複数のサーバ装置10(#1)から10(#n)は、個別に区別する必要がある場合を除き、サーバ装置10と総称される。
 管理装置20は、少なくとも1つの対象タスクを複数のサーバ装置10の中の少なくとも1つに実行させるために、複数のサーバ装置10を管理し、仮想マシンのサーバ装置10への配備及び仮想マシンのリソース割当等を行う。
 サーバ装置10は、管理装置20からの指示により、割り当てられた仮想マシンを実行する。
 サーバ装置10及び管理装置20は、いわゆるコンピュータであり、例えば、バス5で相互に接続される、CPU(Central Processing Unit)2、メモリ3、入出力インタフェース(I/F)4等を有する。メモリ3は、RAM(Random Access Memory)、ROM(Read Only Memory)、ハードディスク、可搬型記憶媒体等である。入出力I/F4は、ネットワーク9を介して他の装置と通信を行う通信装置7と接続される。なお、入出力I/F4は、キーボード、マウス等のようなユーザ操作の入力を受け付ける装置や、ディスプレイ装置やプリンタ等のようなユーザに情報を提供する装置に接続されてもよい。サーバ装置10及び管理装置20のハードウェア構成は制限されない。
 サーバ装置10及び管理装置20はネットワーク9を介して相互に通信可能に接続されている。ネットワーク9は、インターネット等のような公衆網、WAN(Wide Area Network)、LAN(Local Area Network)、無線通信ネットワーク等である。なお、本実施形態において、サーバ装置10間、各サーバ装置10と管理装置20との間の各通信形態は制限されない。
 図3は、第1実施形態におけるタスク管理システム1における処理構成例を概念的に示す図である。タスク管理システム1は、図3に示されるように、性能情報データベース(DB)30、タスク情報管理データベース(DB)31、入力データ管理データベース(DB)32、空きリソースモデルデータベース(DB)33を有する。これらデータベースは、管理装置20により実現されてもよいし、他の装置により実現されてもよい。
 性能情報DB30は、各サーバ装置10からそれぞれ収集された実リソース使用量を時間情報と共にそれぞれ格納する。例えば、性能情報DB30は、サーバ装置10を特定し得るサーバID、そのサーバ装置10の実リソース使用量、及び、その実リソース使用量の時間情報を相互に関連付けた状態で格納する。実リソース使用量の時間情報は、例えば、その実リソース使用量が収集された時間を示す。
 タスク情報管理DB31は、対象タスクに関するタスク情報を格納する。タスク情報は、タスクを特定し得るタスクID、タスクの開始時刻、タスクのデッドライン時刻等を示す。タスクのデッドライン時刻は、タスクの要求時間に相当する。但し、タスク情報は、タスクのデッドライン時刻に代えて、タスクの開始から完了までの時間制限を示すようにしてもよい。
 入力データ管理DB32は、対象タスクにより処理される入力データの管理情報を格納する。入力データの管理情報は、当該入力データが複数のサーバ装置10に分散配置される場合には、当該入力データが分散配置されている各サーバ装置10における分散入力データの量をそれぞれ示す入力データ所在情報を含む。例えば、入力データの管理情報は、当該入力データの部分データとなる分散入力データ毎に、その分散入力データの量と、その分散入力データが存在するサーバ装置10に関する情報とを示す。以降、各サーバ装置10が持つ分散入力データが、単に入力データと表記される場合もある。
 空きリソースモデルDB33は、各サーバ装置10について、空きリソースモデルをそれぞれ格納する。空きリソースモデルは、上述の確率的空きリソース情報に相当し、複数の所定空き確率の各々についてその所定空き確率で保証される空きリソース量をそれぞれ示す。空きリソースモデルで示される空きリソース量は、実行されるソフトウェア要素に明示的に割り当てられていないリソースの量だけでなく、上述の一時空きリソースの量も含まれる。
 〔サーバ装置〕
 サーバ装置10は、少なくとも1つの仮想マシン11を実行可能である。以降、仮想マシンは、VM(Virtual Machine)とも表記される。サーバ装置10は、仮想マシン(VM)制御部12、性能情報計測部13等を有する。VM11、VM制御部12及び性能情報計測部13は、例えば、CPU2によりメモリ3に格納されるプログラムが実行されることにより実現される。また、当該プログラムは、例えば、CD(Compact Disc)、メモリカード等のような可搬型記録媒体やネットワーク上の他のコンピュータから入出力I/F4を介してインストールされ、メモリ3に格納されてもよい。
 サーバ装置10で実行されるVM11の少なくとも1つは、タスク管理システム1において実行計画の策定対象となる対象タスクを、管理装置20により決定される実行計画に基づいて、実行する。
 VM制御部12は、VM11の起動及び終了、並びに、VM11へのリソース割当等を行う。
 性能情報計測部13は、サーバ装置10上で実際に使用されているリソース量を示す実リソース使用量を計測する。性能情報計測部13により計測される実リソース使用量は、サーバ装置10上で実行されているVM11やタスク等の全てのソフトウェア要素で利用されている総リソース使用量である。ここで、実リソース使用量は、サーバ装置10上で実行されるソフトウェア要素に明示的に割り当てられているリソースの量とは異なり、計測時において使用中のリソースの量である。
 性能情報計測部13は、複数のリソース種の各々について実リソース使用量をそれぞれ計測してもよい。具体的には、性能情報計測部13は、CPUリソース、ネットワークリソース、ディスクリソース、メモリリソースのような複数のリソース種について、CPU使用率、ネットワーク受信量、ネットワーク送信量、ディスク読み込み量、ディスク書き込み量、メモリ使用量を当該実リソース使用量として計測してもよい。
 〔管理装置〕
 管理装置20は、タスク受付部21、タスクスケジューラ22、性能情報収集部23、空きリソース分析部24、入力データ管理部25、仮想マシン(VM)管理部26等を有する。これら各処理部は、例えば、CPU2によりメモリ3に格納されるプログラムが実行されることによりそれぞれ実現される。また、当該プログラムは、例えば、CD(Compact Disc)、メモリカード等のような可搬型記録媒体やネットワーク上の他のコンピュータから入出力I/F4を介してインストールされ、メモリ3に格納されてもよい。
 タスク受付部21は、対象タスクを受け付け、対象タスクのタスク情報をタスク情報管理DB31へ格納する。対象タスクの受け付けは、入力画面等に基づいて入力装置(図示せず)をユーザが操作することで入力された情報を入出力I/F4を介して取得することで実現されてもよいし、可搬型記録媒体、他のコンピュータ等から入出力I/F4を経由して情報を取得することで実現されてもよい。
 性能情報収集部23は、定期的に、各サーバ装置10から実リソース使用量をそれぞれ収集し、収集された実リソース使用量をサーバ装置10のサーバID及び時間情報と共に性能情報DB30に格納する。性能情報収集部23は、サーバ装置10から自発的に送られてくる実リソース使用量を受信するようにしてもよい。
 入力データ管理部25は、入力データ管理DB32に格納される入力データの管理情報を用いて、対象タスクにより処理される入力データを管理する。入力データ管理部25は、各サーバ装置10から当該入力データの情報を取得し、この情報を当該入力データの管理情報として入力データ管理DB32に格納するようにしてもよい。入力データ管理部25は、入力データが移送された場合には、その移送に伴い、入力データ管理DB32に格納される管理情報を更新する。入力データの管理情報は、上述のように、入力データ所在情報を含むため、入力データ管理部25は、入力データ取得部と呼ぶこともできる。
 空きリソース分析部24は、各サーバ装置10について上述の空きリソースモデルをそれぞれ生成し、生成された空きリソースモデルをサーバ装置10のサーバIDと共に空きリソースモデルDB33に格納する。空きリソース分析部24は、性能情報DB30に格納される各サーバ装置10の実リソース使用量の一定期間の履歴に基づいて、当該空きリソースモデルを生成する。空きリソースモデルで示される複数の所定空き確率は、空きリソース分析部24により予め保持されていてもよいし、入力装置(図示せず)等から入力されてもよいし、他の装置から取得されてもよい。
 空きリソース分析部24は、例えば、空きリソースモデルで示される空きリソース量を次のように算出する。性能情報DB30に上述した総リソース使用量の履歴が格納されている場合、空きリソース分析部24は、その履歴の同時間における複数の総リソース使用量から、各所定空き確率に対応する各パーセンタイルに相当する値をそれぞれ算出する。そして、空きリソース分析部24は、サーバ装置10の能力となる最大リソース量から、その算出された各値をそれぞれ減算することで、同時間毎に、各所定空き確率で保証される各空きリソース量をそれぞれ算出する。ここで、総リソース使用量の履歴の同時間とは、異なる日の同じ時間を意味する。よって、例えば、総リソース使用量の履歴が1日周期の場合、同時間は、同時刻を意味し、当該履歴が1週間周期の場合、同時間は、同じ曜日かつ同じ時刻を意味する。空きリソース分析部24は、性能情報DB30に格納される総リソース使用量の履歴とサーバ装置10の最大リソース量とに基づいて、空きリソース量の履歴を算出し、この履歴の同時間における複数の空きリソース量から、各所定空き確率に対応する各パーセンタイルに相当する値をそれぞれ算出し、算出された各値を各所定空き確率で保証される各空きリソース量としてもよい。
 一方、性能情報DB30に上述した総リソース使用量及び各VM11のリソース使用量が格納される場合、空きリソース分析部24は、現在動作している全VM11が今まで動作し続けていると仮定して、空きリソース量を算出する。例えば、過去の或る時点tpで、VM(A)及びVM(B)が稼働されており、現時点tcで、VM(B)及びVM(C)が稼働されている場合を例示する。この場合、時点tpでもVM(B)及びVM(C)が稼働されていたと仮定する。即ち、空きリソース分析部24は、時点tpの総リソース使用量から、時点tpでのVM(A)のリソース使用量を減算し、時点tpでのVM(C)のリソース使用量を加算することで、時点tpの実リソース使用量を算出する。この場合、空きリソース分析部24は、各時点での実リソース使用量を算出し、以降、上述と同様の手法により、各所定空き確率で保証される各空きリソース量をそれぞれ算出する。
 これにより、VM11の移動に伴う空きリソース量の変動を捨象して空きリソース量が計算されるため、VM11の移動を伴うシステムにおいても空きリソースモデルの精度を維持することができる。例えば、空きリソースモデルは、1時間毎に、複数の所定空き確率に対応する複数の空きリソース量を示す離散的なモデルとなる。空きリソースモデルは、連続値を示すモデルであってもよい。
 タスクスケジューラ22は、タスク受付部21により受け付けられた対象タスクが所定完了確率で要求時間内に完了するように、当該対象タスクの実行計画を決定する。当該要求時間は、タスク情報管理DB31に格納される情報であり、例えば、対象タスクのデッドライン時刻である。当該所定完了確率は、同様に、タスク情報管理DB31に格納されていてもよいし、タスクスケジューラ22により予め保持されていてもよい。
 具体的には、まず、タスクスケジューラ22は、入力データ管理部25で管理される対象タスクの入力データの管理情報に基づいて、対象タスクを実行させるサーバ装置10を決定する。そして、タスクスケジューラ22は、この決定されたサーバ装置10の数に基づいて、空きリソース分析部24により生成された空きリソースモデルで示される複数の所定空き確率の中から、上記所定完了確率に対応する所定空き確率を選択する。例えば、複数の所定空き確率が80%、90%及び93%であり、所定完了確率が80%であり、かつ、対象タスクを2台のサーバ装置10で実行する場合、所定完了確率に対応する所定空き確率は、90%に決定される。例えば、各サーバ装置10における80%保証の空きリソースがそれぞれ用いられた場合、2台のサーバ装置10全体として保証される確率は、64%(=0.8×0.8)となり、所定完了確率(80%)を満たさないと考えられる。しかし、90%保証の空きリソースがそれぞれ用いられた場合、2台のサーバ装置10全体として保証される確率は、81%(=0.9×0.9)となり、所定完了確率(80%)を満たすと考えられる。但し、対象タスクを1台のサーバ装置10で実行する場合には、所定完了確率(80%)以下の所定空き確率(80%)が選択されればよい。このように複数のサーバ装置10の一時空きリソースを利用する場合、対象タスクを実行させるサーバ装置10の数が多くなるほど単一のサーバ装置10に対して求められる空きリソースの確実性(空き確率)は高くなる。対象タスクを実行させるサーバ装置10は、対象タスクの入力データを持つサーバ装置10に決定される。
 次に、タスクスケジューラ22は、決定された各サーバ装置10における、所定完了確率に対応する所定空き確率で保証される各空きリソース量、及び、当該各サーバ装置10が持つ入力データの量に基づいて、各サーバ装置10上でそれぞれ実行される対象タスクが要求時間内に完了するか否かを判定する。タスクスケジューラ22は、所定空き確率で保証される空きリソース量を用いて入力データが処理された場合にかかる処理時間を算出し、算出された処理時間を当該要求時間と比較することにより、上記判定を行う。
 タスクスケジューラ22は、上記判定結果に基づいて、対象タスクの実行計画の1つとして、対象タスクを実行させる複数のサーバ装置10を確定する。このとき、タスクスケジューラ22は、タスク情報管理DB31に格納されるタスク情報に基づいて、対象タスクの開始時刻も当該実行計画として決定する。
 タスクスケジューラ22は、或るサーバ装置10について対象タスクが要求時間内に完了しないと判定した場合、そのサーバ装置10が持つ分散入力データの少なくとも一部の移送を決定する。対象タスクが要求時間内に完了しないと判定されたサーバ装置10は、オーバフローサーバ装置と表記される場合もある。この場合、タスクスケジューラ22は、その移送される分散入力データの移送先となるサーバ装置10を決定し、その分散入力データの移送時間と、その移送先のサーバ装置10におけるその移送される分散入力データに対する処理時間とを含む対象タスクの処理時間が、要求時間内に収まるか否かを判定する。このとき、タスクスケジューラ22は、入力データを処理させるサーバ装置10が複数存在している場合、その中から移送先のサーバ装置10を決定することが望ましい。これにより、対象タスクの実行を少ない数のサーバ装置10に集約することができ、リソースの有効活用に繋がるからである。タスクスケジューラ22は、上記判定結果に基づいて、入力データの移送、及び、移送先となるサーバ装置10での対象タスクの実行を、上記実行計画として更に決定する。
 また、タスクスケジューラ22は、当該選択された所定空き確率で保証される空きリソース量に基づいて、オーバフローサーバ装置10における、その空きリソース量で処理可能な最大入力データ量を算出し、分散入力データの量とその最大入力データ量との差分を、オーバフローサーバ装置10から移送させる分散入力データの量として算出する。
 仮想マシン管理部26は、タスクスケジューラ22により決定された実行計画に基づいて、タスク開始時刻に対象タスクを実行するためのVM11を配備し稼働させるように、対象タスクを実行させると決定されたサーバ装置10のVM制御部12に指示する。仮想マシン管理部26は、入力データの移送が実行計画で示されている場合には、移送する入力データの量と共に入力データの移送を移送元のサーバ装置10又は移送先のサーバ装置10に指示する。また、仮想マシン管理部26は、対象タスクが完了後、VM11を終了させるように、VM制御部12に指示するようにしてもよい。
 また、仮想マシン管理部26は、対象タスク又は対象タスクを実行するために配備されたVM11が一時空きリソースを用いて実行されるようにVM制御部12に指示するようにしてもよい。この指示により、VM制御部12は、対象タスクが一時空きリソースを用いて動作している最中に、そのサーバ装置10上で動作しており、かつ、リソースが明示的に割当てられているソフトウェア実行単位(タスク、プロセス、仮想マシン等)がリソースを要求した際には、利用している一時空きリソースを対象タスクに解放させ、そのソフトウェア実行単位が明示的に割当てられているリソース量を確保できるように制御する。
 本実施形態では、仮想マシン管理部26が、タスクスケジューラ22により決定された実行計画に沿って対象タスクをスケジューリングするためにVM11の配備等を行ったが、管理装置20は、サーバ装置10に対して直接制御するようにしてもよい。この場合、直接、対象タスクを制御することになるため、仮想マシン管理部26は、タスク制御部と呼ぶこともできる。
 〔動作例〕
 以下、第1実施形態におけるタスク管理方法について図4を用いて説明する。以下の説明では、管理装置20及びサーバ装置10が各方法の実行主体となるが、管理装置20及びサーバ装置10に含まれる上述の各処理部が実行主体となってもよい。図4は、第1実施形態における管理装置20の動作例を示すフローチャートである。
 前提として、各サーバ装置10は、任意のタイミングで、サーバ装置10自身の実リソース使用量をそれぞれ計測している。複数のサーバ装置10の代表となる少なくとも1つのサーバ装置10が、他のサーバ装置10の実リソース使用量を計測するようにしてもよい。また、管理装置20は、所定の周期で、各サーバ装置10の実リソース使用量をそれぞれ収集し、収集された実リソース使用量を性能情報DB30に格納している。各サーバ装置10の実リソース使用量の計測タイミングは、管理装置20の収集周期と同一又はそれより短い周期となる。
 管理装置20は、所定周期でタスク情報管理DB31を参照し(S41、S42)、スケジューリングされていないタスクの存在を確認する(S43)。管理装置20は、スケジューリングされていないタスクを検出すると(S43;YES)、この検出された各タスクを対象にそれぞれ以下のように動作する。以降、この検出されたタスクを対象タスクと表記する。
 管理装置20は、対象タスクの所定完了確率と、対象タスクの入力データを持つサーバ装置10とを特定する。所定完了確率は、タスク情報管理DB31に格納される対象タスクのタスク情報で示されていてもよいし、管理装置20により予め保持されていてもよい。入力データを持つサーバ装置10は、入力データ管理DB32に格納される管理情報に基づいて特定される。
 管理装置20は、対象タスクの所定完了確率と、対象タスクの入力データを持つサーバ装置10の数とに基づいて、空きリソースモデルで示される複数の所定空き確率の中から、その所定完了確率に対応する所定空き確率を選択する(S44)。所定完了確率に対応する所定空き確率の選択の具体的手法については上述したとおりである。
 続いて、管理装置20は、空きリソースモデルで示される、当該選択された所定空き確率で保証される空きリソース量、及び、入力データの量(サイズ)に基づいて、対象タスクの入力データを持つ各サーバ装置10上で実行される対象タスクの完了時間をそれぞれ算出する(S45)。算出される完了時間は、対象タスクの終了時刻であってもよいし、対象タスクの開始から終了までの期間であってもよい。このとき、管理装置20は、性能情報DB30に格納される実リソース使用量に基づいて、対象タスクの入力データを持つ各サーバ装置10の空きリソースモデルをそれぞれ生成してもよい。空きリソースモデルの生成は、別途、独自のタイミングで生成されてもよい。
 管理装置20は、対象タスクのタスク情報に要求時間(デッドライン時刻又は制限時間)が設定されているか否かを確認する(S46)。管理装置20は、要求時間が設定されていない場合(S46;NO)、入力データを持つ各サーバ装置10に対象タスクを実行させるよう対象タスクの実行計画を決定し、この実行計画に基づいて対象タスクのスケジューリングを行う(S47)。対象タスクのスケジューリングでは、管理装置20は、上述したように、タスク開始時刻に対象タスクを実行するためのVM11を配備し稼働させるように、対象タスクを実行させると決定されたサーバ装置10に指示する。このとき、管理装置20は、各サーバ装置10について(S45)で算出された完了時間を出力するようにしてもよい。管理装置20は、例えば、完了時間を示す出力データを生成し、入出力I/F4を介して表示装置や他の出力装置(印刷装置や記録媒体など)に出力する。
 一方、管理装置20は、要求時間が設定されている場合(S46;YES)、(S45)で算出された完了時間がその要求時間を超えるサーバ装置10(オーバフローサーバ装置10)が存在するか否かを確認する(S48)。管理装置20は、オーバフローサーバ装置10が存在しない場合(S48;NO)、入力データを持つ各サーバ装置10に対象タスクを実行させるよう対象タスクの実行計画を決定し、この実行計画に基づいて対象タスクのスケジューリングを行う(S47)。
 管理装置20は、オーバフローサーバ装置10が存在する場合(S48;YES)、各オーバフローサーバ装置10について超過分の入力データの量をそれぞれ算出する(S49)。管理装置20は、オーバフローサーバ装置10に関し、選択された所定空き確率に対応する空きリソース量で処理可能な最大入力データ量を算出し、元の入力データ量からその最大入力データ量を減算することで、超過分の入力データの量を算出することが出来る。
 管理装置20は、そのオーバフローサーバ装置10以外の、対象タスクの入力データを持つサーバ装置10の中で、空きリソース量に余剰のあるサーバ装置10が存在するか否かを確認する(S50)。以降、空きリソース量に余剰のあるサーバ装置10を余剰サーバ装置10と表記する。管理装置20は、対象タスクの完了時間をデッドライン時刻以内とすることができる最大入力データ量を算出し、元の入力データ量よりもこの最大入力データ量が多いサーバ装置10を余剰サーバ装置10と決めることができる。
 管理装置20は、余剰サーバ装置10が存在する場合(S50;YES)、余剰サーバ装置10の中の1つを上記超過分の入力データの移送先に決定する(S51)。これにより、超過分の入力データの移送が決定されたオーバフローサーバ装置10は、完了時間が要求時間を超えないサーバ装置10となる。
 管理装置20は、入力データの移送を考慮して、移送先及び移送元の各サーバ装置10での対象タスクの完了時間をそれぞれ再計算する(S52)。具体的には、管理装置20は、超過分の入力データの移送時間、及び、当該移送先に決定された余剰サーバ装置10における元の入力データ及び超過分の入力データに対する処理時間を推定し、移動先のサーバ装置10での対象タスクの完了時間を再計算する(S52)。更に、管理装置20は、移送後の入力データ量に基づいて、移送元のサーバ装置10に関し、対象タスクの完了時間を再計算する。これにより、管理装置20は、(S52)で再計算された完了時間及び(S45)で計算された完了時間が要求時間を超えるサーバ装置10が存在するか否かを確認し(S48)、(S49)以降を再度実行する。
 管理装置20は、対象タスクの入力データを持つサーバ装置10の中に、余剰サーバ装置10が存在しない場合(S50;NO)、更に、対象タスクの入力データを持たないサーバ装置10の中で、余剰サーバ装置10が存在するか否かを確認する(S53)。管理装置20は、余剰サーバ装置10が存在しない場合(S53;NO)、リソース不足と判定する(S54)。管理装置20は、リソース不足判定の結果を出力するようにしてもよい。
 管理装置20は、余剰サーバ装置10が存在する場合(S53;YES)、対象タスクを処理するサーバ装置10の数が増えるため、所定完了確率に対応する所定空き確率を再選択する(S55)。対象タスクを処理するサーバ装置10の数が増加した場合、所定完了確率を満たすために、より高い所定空き確率が選択される。
 管理装置20は、対象タスクの入力データを持たないサーバ装置10の中の1つを上記超過分の入力データの移送先に決定する(S51)。管理装置20は、この移送先に決定されたサーバ装置10を考慮に加えて、(S52)以降を実行する。管理装置20は、完了時間が要求時間を超過するサーバ装置が存在しなくなるまで、このような処理を繰り返し実行する。
 〔第1実施形態の作用及び効果〕
 上述したように第1実施形態では、複数のサーバ装置10の各々の実リソース使用量が収集され、当該複数のサーバ装置10の各々のための確率的空きリソース情報が生成される。また、入力データが分散配置されている各サーバ装置10における分散入力データの量をそれぞれ示す入力データ管理情報が管理され、分散入力データを持つ複数のサーバ装置が対象タスクを実行させるサーバ装置として選択される。そして、選択された各サーバ装置のための各確率的空きリソース情報で示される、所定完了確率に対応する所定空き確率で保証される空きリソース量、及び、対象タスクで処理される入力データの量に基づいて、対象タスクが要求時間内に完了するか否かが判定される。そして、この判定結果に基づいて、対象タスクの実行計画が決定される。
 従って、第1実施形態によれば、サーバ装置10の空きリソースを利用するという条件下において、所定完了確率で示される確実性で、対象タスクが要求時間内に完了するような対象タスクの実行計画を策定することができる。言い換えれば、第1実施形態によれば、利用の可否が確率的であるという特性を持つ空きリソースを利用することを考慮に入れた上で、対象タスクの完了時間の確実性を定量的に判断することができる。
 更に、第1実施形態では、入力データを処理させると仮決定されたサーバ装置10のうち、対象タスクを要求時間内に完了させることができないと推定されるオーバフローサーバ装置が特定され、そのオーバフローサーバ装置が持つ分散入力データの少なくとも一部を他のサーバ装置10で実行することが決定される。この場合、第1実施形態では、移送先となるサーバ装置10が決定され、分散入力データの移送時間を含む対象タスクの処理時間が要求時間内に完了するか否かが判定される。このように、第1実施形態によれば、対象タスクが所定の精度で要求時間内に完了するように、対象タスクを実行させるサーバ装置10や入力データの移送を決定することができる。
 更に、第1実施形態では、オーバフローサーバ装置の確率的空きリソース情報に基づいて、オーバフローサーバ装置における、選択された所定空き確率に対応する空きリソース量で処理可能な最大入力データ量が算出され、分散入力データの量とその最大入力データ量との差分が、オーバフローサーバ装置から移送させる分散入力データの量として算出される。このように、オーバフローサーバ装置には、空きリソース量で処理可能な最大入力データ量が処理対象として残される。即ち、第1実施形態において決定された実行計画によれば、各サーバ装置10において、空きリソースを効率よく利用することができる。結果、第1実施形態によれば、タスク管理システム1内で、より多くのタスクを同時に実行することができる。
 以下、上述の第1実施形態を具体的な数値を用いて実施例1として更に詳細に説明する。但し、第1実施形態は、以下の実施例1から何ら制限を受けない。
 実施例1では、タスク受付部21が次のような対象タスクを受け付け、この対象タスクを3つのサーバ装置10(#1)、10(#2)及び10(#3)で実行させる場合を例示する。
 対象タスク:タスクID(001)、タスク開始時刻(19時)、デッドライン時刻(21時)
 このように、実施例1では、対象タスクの要求時間にはデッドライン時刻が設定されている。また、実施例1では、所定完了確率が80%に設定され、複数の所定空き確率が80%、90%及び93%に設定されている場合を例示する。
 図5Aは、19時から20時におけるサーバ装置10(#1)のCPUの実リソース使用量の履歴を示すヒストグラムであり、図5Bは、20時から21時におけるサーバ装置10(#1)のCPUの実リソース使用量の履歴を示すヒストグラムである。図6Aは、19時から20時におけるサーバ装置10(#2)のCPUの実リソース使用量の履歴を示すヒストグラムであり、図6Bは、20時から21時におけるサーバ装置10(#2)のCPUの実リソース使用量の履歴を示すヒストグラムである。図7Aは、19時から20時におけるサーバ装置10(#3)のCPUの実リソース使用量の履歴を示すヒストグラムであり、図7Bは、20時から21時におけるサーバ装置10(#3)のCPUの実リソース使用量の履歴を示すヒストグラムである。以降、19時から20時を19時帯、20時から21時を20時帯と表記する。
 なお、実リソース使用量の履歴は、ヒストグラムのみならず、確率的なモデルで表現され得る。また、実施例1では、説明を簡単にするために、CPUリソースのみを対象に空きリソースモデルを生成することを例示し、かつ、CPUリソースの最大値は100%であると仮定する。上述の各ヒストグラムでは、横軸がCPUの実リソース使用量を示し、縦軸が確率を示す。
 空きリソース分析部24は、図5A及び図5Bで示されるサーバ装置10(#1)のヒストグラム情報に基づいて、時間帯ごとに、複数の所定空き確率で保証される空きリソース量を計算することで、サーバ装置10(#1)の空きリソースモデルを生成する。図5Aにより、19時帯における実リソース使用量の80、90、93パーセンタイルはそれぞれ約50、約70、約80%である。これにより、空きリソース分析部24は、サーバ装置10(#1)の最大リソース量(100%)から各パーセンタイルに相当する各値をそれぞれ減算することにより、80、90及び93%の各所定空き確率で保証される各空きリソース量を約50、約30、約20%と算出する。また、図5Bにより、20時帯における実リソース使用量の80、90、93パーセンタイルはそれぞれ約50、約65、約70%であるため、空きリソース分析部24は、80、90及び93%の各所定空き確率で保証される各空きリソース量を約50、約35、約30%と算出する。同様に、空きリソース分析部24は、図6A及び図6Bのヒストグラム情報を用いてサーバ装置10(#2)の空きリソースモデルを生成し、図7A及び図7Bのヒストグラム情報を用いてサーバ装置10(#3)の空きリソースモデルを生成する。
 このように生成された空きリソースモデルを格納する空きリソースモデルDB33は、図8のようになる。図8は、実施例1における空きリソースモデルDB33を示す図である。
 ここで、入力データ管理DB32には、次のような、対象タスク(タスクID=001)の入力データの管理情報が格納されていると仮定する。即ち、対象タスクの入力データは、サーバ装置10(#1)及び10(#2)に15GB(ギガバイト)ずつ、分散配備されている。サーバ装置10(#3)は当該入力データを持っていない。また、CPUリソースを100%利用した際の処理速度が全てのサーバ装置10において10MB(メガバイト)/s(秒)であると仮定する。
 タスクID:001
 サーバ装置10(#1):15GB(ギガバイト)
 サーバ装置10(#2):15GB(ギガバイト)
 サーバ装置10(#3):0
 タスクスケジューラ22は、まず、入力データを持つサーバ装置10(#1)及び10(#2)を対象タスクを実行させるサーバ装置に決定する。タスクスケジューラ22は、決定されたサーバ装置の数が2であるため、所定完了確率(80%)に対応する所定空き確率を、複数の所定空き確率(80%、90%、93%)の中の90%に決定する。これは、2台のサーバ装置10(#1)及び10(#2)全体として保証される確率は、81%(=0.9×0.9)となり、所定完了確率(80%)を満たすからである。所定空き確率(93%)が選択された場合でも、全体として保証される確率が約86%になり、所定完了確率(80%)を満たす。しかし、全体として保証される確率が所定完了確率に近くなる所定空き確率を選択したほうが、空きリソースをより効率的に利用することができる。
 タスクスケジューラ22は、決定された所定空き確率(90%)で保証される空きリソース量(図8参照)に基づいて、サーバ装置10(#1)及び10(#2)に関する、空きリソースを用いた対象タスクの処理能力を推定する。19時帯では、サーバ装置10(#1)の90%保証の空きリソース量は30%であり、CPUの最大処理能力が10MB/sであることから、空きリソースを用いたサーバ装置10(#1)の処理能力は、3MB/s(=10×0.3)となる。20時帯では、サーバ装置10(#1)の90%保証の空きリソース量は35%であることから、空きリソースを用いたサーバ装置10(#1)の処理能力は、3.5MB/s(=10×0.35)となる。図8に示される空きリソースモデルに基づいてこのように計算された処理能力は、図9で示されるようになる。図9は、図8に示される空きリソースモデルに基づいて計算された処理能力の例を示す図である。
 タスクスケジューラ22は、図9で示される処理能力と、サーバ装置10(#1)及び10(#2)が持つ入力データの量とに基づいて、サーバ装置10(#1)及び10(#2)において、対象タスクが要求時間内に完了するか否かを判定する。ここで、要求時間は、上述のデッドライン時刻(21時)である。
 19時帯のサーバ装置10(#1)により、空きリソースを用いて処理できる入力データ量は、10.8GB(=60×60×3.0MB)である。20時帯のサーバ装置10(#2)については、12.6GB(=60×60×3.5MB)である。このため、サーバ装置10(#1)では、タスク開始時刻(19時)から実行された対象タスクは、およそ20時20分に完了すると推定できる。よって、タスクスケジューラ22は、サーバ装置10(#1)では対象タスクがデッドライン時刻(21時)までに完了すると判定することができる。
 タスクスケジューラ22は、サーバ装置10(#2)についても同様に計算を行う。サーバ装置10(#2)では、タスク開始時刻(19時)から実行された対象タスクは、およそ20時35分に完了すると推定できる。これにより、タスクスケジューラ22は、サーバ装置10(#2)では対象タスクがデッドライン時刻(21時)までに完了すると判定することができる。
 結果、タスクスケジューラ22は、対象タスク(タスクID=001)の実行計画として、サーバ装置10(#1)及び10(#2)をその対象タスクを実行するサーバ装置に決定し、入力データの移送も不要と判断する。これにより、仮想マシン管理部26に制御されることで、サーバ装置10(#1)及び10(#2)に対象タスクを実行するためのVM11がそれぞれ配備され、対象タスクが実行される。
 次に、上述のタスク(タスクID=001)に代えて、次のようなタスクが対象タスクとして処理される場合を例示する。なお、他の条件は、上述と同様とする。
 タスクID:002
 サーバ装置10(#1):20GB(ギガバイト)
 サーバ装置10(#2):20GB(ギガバイト)
 サーバ装置10(#3):0
 上述のように、19時から21時の間においてサーバ装置10(#1)により空きリソースを用いて処理できる入力データ量は、23.4GB(=(60×60×3.0MB)+(60×60×3.5MB))である。よって、タスクIDが002の対象タスクについても、サーバ装置10(#1)は、デッドライン時刻までに対象タスクの処理を完了させることができる。
 一方、19時から21時の間においてサーバ装置10(#2)により空きリソースを用いて処理できる入力データ量は、18GB(=(60×60×3.0MB)+(60×60×2.0MB))である。この場合、対象タスク(タスクID=002)の入力データ量(20GB)は、19時から21時の間にサーバ装置10(#2)により空きリソースを用いて処理できる入力データ量(18GB)を2GB分超過する。これにより、タスクスケジューラ22は、サーバ装置10(#2)において、対象タスクが要求時間内に完了できないと判定し、サーバ装置10(#2)の入力データの一部(超過分2GB)を他のサーバ装置10で処理することを決める。以降、移送させる入力データの一部を超過入力データと表記する。
 タスクスケジューラ22は、まず、超過入力データの移送先を既に対象タスクを処理すると決められているサーバ装置10(#1)に決定する。ここで、超過入力データを移送するためのリソースは、各サーバ装置10で次のように確保されていると仮定する。
 データ移送用確保帯域:10MB/s
 タスクスケジューラ22は、サーバ装置10(#1)における、元の入力データ(20GB)を用いた対象タスクの完了時刻を推定する。この場合、タスクスケジューラ22は、およそ20時44分に完了すると推定する。一方、超過入力データの移送時間は約3分(=2000/10/60)と算出されるため、タスク開始時間から移送を開始すれば、およそ19時3分で超過入力データがサーバ装置10(#2)からサーバ装置10(#1)へ移送され得る。よって、サーバ装置10(#1)が超過入力データを元の入力データの処理後に処理すれば、その移送時間の影響は無視できる。
 タスクスケジューラ22は、超過入力データを、元の入力データの処理完了(20時44分)後に処理させると仮定し、超過入力データの処理完了に掛かる時間を算出する。即ち、超過入力データは、20時44分以降の空きリソースが利用されるため、約10分(=2000/3.5/60)で処理が完了する。これにより、タスクスケジューラ22は、元の入力データ(20GB)と超過入力データ(2GB)とを用いた対象タスクの処理の完了を20時54分と推定する。結果、タスクスケジューラ22は、超過入力データをサーバ装置10(#1)で処理させたとしても、サーバ装置10(#1)では、対象タスクがデッドライン時刻(21時)までに完了すると判定することができる。
 結果、タスクスケジューラ22は、対象タスク(タスクID=002)の実行計画として、サーバ装置10(#1)及び10(#2)をその対象タスクを実行するサーバ装置に決定し、サーバ装置10(#2)の入力データの一部(2GB分)をサーバ装置10に移送することも決定する。
 次に、上述のタスク(タスクID=001及び002)に代えて、次のようなタスクが対象タスクとして処理される場合を例示する。なお、他の条件は、上述と同様とする。
 タスクID:003
 サーバ装置10(#1):25GB(ギガバイト)
 サーバ装置10(#2):25GB(ギガバイト)
 サーバ装置10(#3):0
 上述のように、19時から21時の間にサーバ装置10(#1)により空きリソースを用いて処理できる入力データ量は、23.4GBであり、サーバ装置10(#2)については、18GBである。よって、対象タスク(タスクID=003)の入力データ量(25GB)は、19時から21時の間にサーバ装置10(#1)及び10(#2)により空きリソースを用いて処理できる入力データ量(23.4GB及び18GB)をそれぞれ超過する。これにより、タスクスケジューラ22は、サーバ装置10(#1)及び10(#2)において、対象タスクが要求時間内に完了できないと判定し、サーバ装置10(#1)及び10(#2)の各入力データの一部(超過分1.6GB及び超過分7GB)を他のサーバ装置10(#3)で処理することを決める。
 タスクスケジューラ22は、対象タスクを実行させるサーバ装置の数が増えるため、所定完了確率(80%)に対応する所定空き確率を93%に再選択する。所定空き確率に90%が選択されている場合、3台のサーバ装置10(#1)、10(#2)及び10(#3)全体として保証される確率は、約73%(=0.9×0.9×0.9)となり、所定完了確率(80%)を満たさないからである。所定空き確率に93%が選択されている場合、全体として保証される確率は、約81%(=0.93×0.93×0.93)となり、所定完了確率(80%)を満たす。
 タスクスケジューラ22は、再選択された所定空き確率(93%)で保証される空きリソース量(図8参照)に基づいて、サーバ装置10(#1)及び10(#2)に関する、空きリソースを用いた対象タスクの処理能力を推定する。この結果は、図9に示されるとおりである。この場合、19時から21時の間にサーバ装置10(#1)により空きリソースを用いて処理できる入力データ量は、18GB(=(60×60×2.0)+(60×60×3.0))である。同様に、サーバ装置10(#2)についても、18GB(=(60×60×3.0)+(60×60×2.0))であり、サーバ装置10(#3)についても、18GB(=(60×60×2.5)+(60×60×2.5))である。これにより、サーバ装置10(#1)及び10(#2)の超過入力データはそれぞれ7GBである。
 タスクスケジューラ22は、各超過入力データ(7GB×2)の移送時間をそれぞれ約12分(=7000/10/60)と算出する。タスクスケジューラ22は、サーバ装置10(#1)の超過入力データの移送をタスク開始時刻(19時)に開始し、その移送完了後に、サーバ装置10(#2)の超過入力データの移送、及び、サーバ装置10(#1)の超過入力データの処理を開始すると決定する。タスクスケジューラ22は、サーバ装置10(#1)の超過入力データ(7GB)に対する処理時間を約46分(=7000/2.5/60)と推定できる。よって、サーバ装置10(#1)の超過入力データの移送完了後に、サーバ装置10(#2)の超過入力データの移送を開始したとしても、サーバ装置10(#2)の超過入力データの移送は、サーバ装置10(#1)の超過入力データ(7GB)の処理が完了するまでに完了し、サーバ装置10(#3)は、サーバ装置10(#1)の超過入力データの処理完了後、直ちに、サーバ装置10(#2)の超過入力データの処理を開始することができる。
 これにより、タスクスケジューラ22は、サーバ装置10(#3)に関し、サーバ装置10(#1)の超過入力データの受信完了後、即ち、19時12分から21時の間に処理できる入力データ量を16.2GB(=60×48×2.5MB+60×60×2.5MB)と推定し、サーバ装置10(#3)では、移送される全超過入力データ(14GB)をデッドライン時刻までに完了することができると判定することができる。
 結果、タスクスケジューラ22は、対象タスク(タスクID=002)の実行計画として、サーバ装置10(#1)、10(#2)及び10(#3)をその対象タスクを実行するサーバ装置に決定し、サーバ装置10(#1)及び10(#2)の入力データの一部(各7GB分)をサーバ装置10(#3)にそれぞれ移送することも決定する。
 [第2実施形態]
 第2実施形態におけるタスク管理システム1は、対象タスクを最短で完了させるように、対象タスクのスケジューリングを行う。以下、第2実施形態におけるタスク管理システム1について、第1実施形態と異なる内容を中心に説明する。以下の説明では、第1実施形態と同様の内容については適宜省略する。
 第2実施形態では、タスクスケジューラ22の処理内容が第1実施形態と異なる。第2実施形態におけるタスクスケジューラ22は、まず、対象タスクを実行させる複数のサーバ装置10を選択する。そして、タスクスケジューラ22は、選択された各サーバ装置10における、当該選択された所定空き確率で保証される各空きリソース量、及び、対象タスクで処理される入力データの中からその選択された各サーバ装置に割り当てられる分散入力データの量に基づいて、その選択された各サーバ装置における対象タスクの完了時間をそれぞれ推定する。そして、タスクスケジューラ22は、推定結果から得られる対象タスク全体の完了時間が短縮されるように、該選択された各サーバ装置間での分散入力データの移送パターンを更に決定する。推定される対象タスク全体の完了時間は、所定完了確率で示される確実性を持つ。
 タスクスケジューラ22は、対象タスクに要求時間が設定されている場合、第1実施形態と同じ手法により、対象タスクが要求時間内に完了するという要件を満たすように、入力データを処理させるサーバ装置10を選択する。一方、タスクスケジューラ22は、対象タスクに要求時間が設定されていない場合には、要求時間とは無関係に、入力データを処理させるサーバ装置10を選択する。但し、第2実施形態におけるタスクスケジューラ22は、所定のサーバ数閾値分のサーバ装置10を処理対象とする。即ち、既に分散入力データを持つサーバ装置10の数が上記閾値よりも小さい場合、タスクスケジューラ22は、それらサーバ装置10に加えて、分散入力データを持たないサーバ装置10も、入力データを割り当てるサーバ装置10の対象に加える。所定のサーバ数閾値は、対象タスクに設定されていてもよいし、予め、タスクスケジューラ22により保持されていてもよい。
 〔動作例〕
 以下、第2実施形態におけるタスク管理方法について図10を用いて説明する。以下の説明では、管理装置20及びサーバ装置10が各方法の実行主体となるが、管理装置20及びサーバ装置10に含まれる上述の各処理部が実行主体となってもよい。図10は、第2実施形態における管理装置20の動作例を示すフローチャートである。図10に示される動作は、図4に示される(S46;NO)の判断後、又は、(S48;NO)の判断後であって、(S47)の前に実施される。
 管理装置20は、対象タスクを処理させるサーバ装置10の数の閾値を取得する(S61)。管理装置20は、既に選択されているサーバ装置10の数がその閾値未満である場合(S62;YES)、入力データを持たないサーバ装置10を残りの数分選択する(S63)。残りの数とは、当該閾値から、既に選択されているサーバ装置10の数を減算した値である。この場合、対象タスクを処理させるサーバ装置10の数が変わるため、管理装置20は、その数に応じて、所定完了確率に対応する所定空き確率を選択し直す。一方、管理装置20は、既に選択されているサーバ装置10の数がその閾値以上である場合(S62;NO)、既に選択されているサーバ装置10をそのまま処理対象とする。
(確認ステップ0)管理装置20は、既に決定されている入力データの割り当てに基づいて、対象タスク全体の完了時間を算出する(S64)。ここでの入力データの割り当てとは、図4に示される(S45)で決定された割り当て、若しくは、図4に示される(S52)で決定された割り当てである。
(確認ステップ1)確認ステップ0での対象タスク全体の完了時間が算出されると、次の確認ステップ1に移行する。この確認ステップの移行は、管理装置20の動作ではなく、説明の便宜のために設けられた概念である。次の確認ステップ1では、まず、管理装置20は、前の確認ステップ0で算出された各サーバ装置10での完了時間に基づいて、入力データの移送パターンを決定する。確認ステップ0で算出された各サーバ装置10での完了時間とは、図4で示される(S45)で算出された完了時間である。管理装置20は、入力データの移送パターンとして、所定量の入力データを、完了時間が最も遅いサーバ装置10から、完了時間が最も早いサーバ装置10へ移送することを決定する。
(確認ステップ1)続いて、管理装置20は、決定された移送パターンに対応する各サーバ装置10での完了時間を算出する(S67)。各サーバ装置10での完了時間の算出方法は、図4に示される(S45)と同様である。管理装置20は、各サーバ装置10での完了時間に基づいて、対象タスク全体の完了時間を算出する(S68)。管理装置20は、確認ステップ1で算出された対象タスク全体の完了時間が確認ステップ0で算出されたものより短縮されているか否かを判定する(S69)。
(確認ステップ2以降)管理装置20は、短縮されている場合(S69;YES)、(S66)以降を再度実行する。このとき、確認ステップは、次の確認ステップ2に移行される。管理装置20は、前の確認ステップ(t-1)で算出された対象タスク全体の完了時間が今回の確認ステップtで算出されたものより短縮されなくなるまで、(S66)から(S69)を繰り返す。
 管理装置20は、短縮されない場合(S69;NO)、前の確認ステップ(t-1)で決定された入力データの移送パターンに基づいて、対象タスクの実行計画を決定する(S70)。即ち、管理装置20は、当該移送パターンで示される入力データの移送、及び、移送先となるサーバ装置10での対象タスクの実行を、対象タスクの実行計画として更に決定する。
 〔第2実施形態における作用及び効果〕
 上述したように第2実施形態では、対象タスクを処理させるサーバ装置10の数の閾値が取得され、この閾値の範囲内で、対象タスク全体の完了時間が短縮されるように、対象タスクを処理させるサーバ装置10及び分散入力データの移送パターンが決定される。対象タスク全体の完了時間は、分散入力データの移送時間に加えて、所定完了確率に対応する所定空き確率で保証される空きリソース量に基づいてそれぞれ推定される、対象タスクを処理する各サーバ装置10での空きリソースを用いた分散入力データの処理時間から算出されるため、所定完了確率により示される確実性を持つ。
 従って、第2実施形態によれば、利用の可否が確率的であるという特性を持つサーバ装置の一時空きリソースを利用するという条件の下、所望の精度(所定完了確率)で、対象タスク全体の完了時間の最小化を実現する、タスクの実行計画を決定することができる。
 以下、上述の第2実施形態を具体的な数値を用いて実施例2として更に詳細に説明する。但し、第2実施形態は、以下の実施例2から何ら制限を受けない。
 まず、対象タスクに要求時間が設定されておらず、上記所定条件に含まれるサーバ装置数の閾値が2に設定されている場合を例示する。また、対象タスクの入力データは、サーバ装置10(#1)に15GB、サーバ装置10(#2)に15GB、分散されて配置されていると仮定する。
 この場合、タスクスケジューラ22は、まず、入力データを持つサーバ装置10(#1)及び10(#2)を対象タスクを実行させるサーバ装置に決定する。これは、サーバ装置数の閾値(2)に関する上記所定条件を満たす。このとき、タスクスケジューラ22は、所定完了確率(80%)に対応する所定空き確率を90%に決定する。また、タスクスケジューラ22により、所定空き確率(90%)で保証される空きリソース量(図8参照)に基づいて、サーバ装置10(#1)及び10(#2)に関する、空きリソースを用いた対象タスクの処理能力が図9に示されるように算出される。
 タスクスケジューラ22は、図9で示される処理能力と、サーバ装置10(#1)及び10(#2)が持つ入力データの量とに基づいて、サーバ装置10(#1)及び10(#2)において、対象タスクの完了時間を推定する。サーバ装置10(#1)では、10GBの入力データの処理完了時間は、約20時20分である。サーバ装置10(#2)については約20時35分である。これにより、タスクスケジューラ22は、対象タスク全体の完了時間を約20時35分と決定する。
 図11は、2つのサーバ装置に入力データを処理させる場合の、実施例2におけるタスクスケジューラ22で算出される中間データの例を示す図である。上述の工程で算出された各完了時間は、図11におけるステップ0に対応する行で示されている。実施例2では、タスクスケジューラ22は、入力データの一部を移送させることで、対象タスク全体の完了時間を短縮するように、対象タスクの実行計画を決定する。
 次の各ステップにおいて、タスクスケジューラ22は、入力データを持つサーバ装置10(#1)及び10(#2)の間で、一部の入力データを移送させることで、既に算出されている完了時間を短縮できないか確認していく。タスクスケジューラ22は、対象タスク全体の完了時間が短縮できなくなるまでその確認を続ける。
 具体的には、次のステップ1において、タスクスケジューラ22は、ステップ0で算出された完了時間が遅いほうのサーバ装置10(#2)から所定量(840MB)の入力データをサーバ装置10(#1)へ移送させた場合における、対象タスク全体の完了時間を推定する。ここで、入力データの移送量(840MB)は、任意の値に決められる。ここで、タスクスケジューラ22は、その入力データの移送時間を1.4分(=840/10/60)と算出する。ここでは、説明を簡単にするために、移送時間を2分とする。
 タスクスケジューラ22は、入力データの移送を対象タスクの開始時刻(19時)に開始し、サーバ装置10(#1)には、元から存在する入力データの処理完了後に、その移送された入力データの処理を開始させることを決定する。移送時間が2分であるため、移送された入力データのサーバ装置10(#1)による受信は、19時2分に完了する。サーバ装置10(#1)で元から存在する入力データの処理完了時間は、上述のように、約20時20分である。これにより、入力データの移送は、サーバ装置10(#1)での移送された入力データの処理開始に影響を与えない。また、移送された入力データは、サーバ装置10(#1)において20時20分以降に処理されるため、図9に示される処理能力によれば、その入力データの処理時間は、4分(=840/3.5/60)である。これにより、タスクスケジューラ22は、サーバ装置10(#1)における、元の入力データ及び移送されてきた入力データの処理完了時刻を20時24分と算出する。一方、サーバ装置10(#2)では、移送される入力データ(840MB)が処理対象から除かれるため、対象タスクの完了時間が7分(=840/2/60)短縮される。結果、タスクスケジューラ22は、サーバ装置10(#2)における、移送された入力データを除く残りの入力データの処理完了時刻を20時28分と算出する。これにより、対象タスク全体の完了時間が20時28分となり、それは、ステップ0で算出された時間よりも短縮されている。
 タスクスケジューラ22は、ステップ2において、上記ステップ1のプロセスを更に繰り返す。即ち、タスクスケジューラ22は、ステップ1で算出された完了時間が遅いほうのサーバ装置10(#2)から所定量(840MB)の入力データをサーバ装置10(#1)へ更に移送させた場合における、対象タスク全体の完了時間を推定する。タスクスケジューラ22は、ステップ1と同様に計算することで、ステップ2における完了時間を20時28分と算出する。この算出された完了時間は、ステップ1で算出された完了時間と同じであるため、タスクスケジューラ22は、最終的に、ステップ1における実行計画を採用する。
 次に、対象タスクに要求時間が設定されておらず、上記所定条件に含まれるサーバ装置数の閾値が3に設定されている場合を例示する。また、対象タスクの入力データは、サーバ装置10(#1)に15GB、サーバ装置10(#2)に15GB、分散されて配置されており、サーバ装置10(#3)は入力データを持たないと仮定する。図12は、3つのサーバ装置に入力データを処理させる場合の、実施例2におけるタスクスケジューラ22で算出される中間データの例を示す図である。
 この場合においても、タスクスケジューラ22は、ステップ0において、入力データの移送を行わず、入力データを持つサーバ装置10(#1)及び10(#2)を対象タスクを実行させるサーバ装置に決定する。ステップ0では、最終的に3台のサーバ装置に対象タスクを処理させるため、所定完了確率(80%)に対応する所定空き確率には93%が選択されるものとする。但し、対象タスクを実行させるサーバ装置の数が2台であるため、所定空き確率には90%が選択されてもよい。タスクスケジューラ22は、実施例1で述べた算出手法により、サーバ装置10(#1)での対象タスクの完了時間は、約20時43分であり、サーバ装置10(#2)での対象タスクの完了時間は、約20時35分と推定する。これにより、ステップ0では、タスクスケジューラ22は、対象タスク全体の完了時間を20時43分と推定する。ここで推定される対象タスク全体の完了時刻は、所定完了確率(80%)の確実性を持つ。
 次のステップ1において、タスクスケジューラ22は、完了時間が最も遅いサーバ装置10(#1)からサーバ装置10(#3)に入力データを移送させることで、既に算出されている完了時間を短縮できないか確認する。移送させる入力データの量は、任意に設定される。ここでは、移送させる入力データの量は1.8GBに設定される。
 データ移送用に確保される帯域が10MB/sであると仮定すると、移送入力データの移送完了には3分(=1800/10/60)掛かる。よって、移送された入力データのサーバ装置10(#3)による受信は、19時3分に完了するため、サーバ装置10(#3)は、19時3分からその移送入力データの処理を開始することができる。その移送入力データの処理は、サーバ装置10(#1)の20時帯で10分(=1800/60/3)掛かり、サーバ装置10(#3)の20時帯で12分(=1800/60/2.5)掛かる。これにより、ステップ1では、タスクスケジューラ22は、サーバ装置10(#1)の完了時間を20時33分(10分短縮)と、サーバ装置10(#3)の完了時間を19時15分と推定する。このとき、サーバ装置10(#2)の完了時間は、ステップ1と同じである(20時35分)。結果、タスクスケジューラ22は、ステップ1における対象タスク全体の完了時間を20時35分と推定し、ステップ0よりも短縮したと判定する。
 以降、タスクスケジューラ22は、前のステップで計算された完了時間に基づいて、完了時間が最も遅いサーバ装置から、完了時間が最も早いサーバ装置に入力データを移送させることで、既に算出されている完了時間を短縮できないかを確認する。タスクスケジューラ22は、タスク全体の完了時間が短縮されなくなるまで、その確認を繰り返し、タスク全体の完了時間が最も短く推定された入力データの割り当てを対象タスクの最終的な実行計画とする。図12の例では、ステップ6で、タスク全体の完了時間が短縮されなくなっており、ステップ5で示される入力データの割り当てが対象タスクの最終的な実行計画に決定される。即ち、タスクスケジューラ22は、サーバ装置10(#1)に9.6GBの入力データを処理させ、サーバ装置10(#2)に11.4GBの入力データを処理させ、サーバ装置10(#3)に9GBの入力データを処理させ、サーバ装置10(#1)からサーバ装置10(#3)へ5.4GBの入力データを移送し、サーバ装置10(#2)からサーバ装置10(#3)へ3.6GBの入力データを移送するという実行計画を決定する。
 [第3実施形態]
 第3実施形態におけるタスク管理システム1は、同じ内容の分散入力データが重複して複数のサーバ装置10に配置されている対象タスクのスケジューリングを行う。以下、第3実施形態におけるタスク管理システム1について、第1実施形態及び第2実施形態と異なる内容を中心に説明する。以下の説明では、第1実施形態及び第2実施形態と同様の内容については適宜省略する。
 入力データ管理DB32に格納される入力データの管理情報では、分散入力データにデータID(データ識別情報)が付与されている。これにより、同じ内容の分散入力データには同じデータIDが付与される。例えば、入力データの管理情報は、当該入力データの部分データとなる分散入力データ毎に、データIDと、その分散入力データの量と、その分散入力データが存在するサーバ装置10に関する情報とを示す。重複して複数のサーバ装置10に配置される同じ内容の分散入力データは、対象タスクにより少なくとも1つが処理されればよい。
 タスクスケジューラ22は、要求時間を守ることを前提に、利用するサーバ装置10の数を最小化する第1基準、及び、サーバ装置10の空きリソースの使用効率を最大化する第2基準に基づいて、入力データの移送パターン及び入力データを処理させるサーバ装置10を、対象タスクの実行計画として決定する。
 まず、上記前提条件を判断するために、タスクスケジューラ22は、重複するか否かに関わらず、上述の各実施形態と同様の手法により、分散入力データを持つ各サーバ装置10について、対象タスクの完了時間をそれぞれ算出する。このとき、タスクスケジューラ22は、異なるデータIDの数を、対象タスクを処理させるサーバ装置10の数とみなし、その数に基づいて、所定完了確率に対応する所定空き確率を選択する。タスクスケジューラ22は、各サーバ装置10での対象タスクの完了時間と要求時間との比較により、オーバフローサーバ装置10の存在を確認する。タスクスケジューラ22は、オーバフローサーバ装置10の存在に応じて、次のように処理を行う。
 オーバフローサーバ装置10が存在しない場合、タスクスケジューラ22は、データID毎に、空きリソースの使用効率が最も高いサーバ装置10をそれぞれ選択する。空きリソースの使用効率は、空きリソースの最大処理能力に対する処理予定の入力データ量によって算出される。例えば、選択された所定空き確率に対応する19時帯での空きリソースの最大処理能力が10GBであり、処理予定の入力データ量が5GBである場合、空きリソースの使用効率は0.5(=5/10)と算出される。
 また、或るデータIDの分散入力データを重複して持つ複数のサーバ装置10に、オーバフローサーバ装置10とそうでないサーバ装置10とが混在する場合、タスクスケジューラ22は、その複数のサーバ装置10の中のオーバフローサーバ装置10以外のサーバ装置10を選択する。これは、オーバフローサーバ装置10が選択された場合、要求時間を守るために入力データの一部を他のサーバ装置10へ移送する必要があり、上記第1基準に沿うことができない可能性が生じるからである。但し、移送する入力データの量や他のサーバ装置10の空きリソースの余剰状況によっては、対象タスクを処理させるサーバ装置10の数が増えない場合もあり得るため、最終的なサーバ装置10の数を見積もった後に、オーバフローサーバ装置10を選択するようにしてもよい。
 また、或るデータIDの分散入力データを重複して持つサーバ装置10の全てがオーバフローサーバ装置10となる場合、タスクスケジューラ22は、超過分の入力データの量が最も少ないサーバ装置10を選択する。超過分の入力データの量は、上述の各実施形態と同様の手法により算出すればよい。このとき、タスクスケジューラ22は、超過分の入力データの移送先として、まず、入力データを処理する予定になっているサーバ装置10に決める。このサーバ装置10がその超過分の入力データを処理することができない場合、次に、タスクスケジューラ22は、移送する入力データと同じ入力データを持つサーバ装置10を移送先に決める。
 〔動作例〕
 以下、第3実施形態におけるタスク管理方法について図4を用いて説明する。
 第3実施形態では、図4に示される(S45)において、管理装置20は、重複するか否かに関わらず、上述の各実施形態と同様の手法により、分散入力データを持つ各サーバ装置10について、対象タスクの完了時間をそれぞれ算出する。そして、管理装置20は、上述のような基準により、対象タスクを処理させるサーバ装置10を選択していく。
 具体的には、図4で示される(S48;YES)の場合、管理装置20は、オーバフローサーバ装置10が持つ入力データと同じ入力データを持ち、かつ、オーバフローサーバ装置10でないサーバ装置10が存在すれば、そのサーバ装置10を選択する。一方、同じ入力データを重複して持つサーバ装置10の全てがオーバフローサーバ装置10である場合、管理装置20は、超過分の入力データの量が最も少ないサーバ装置10を選択する。
 〔第3実施形態における作用及び効果〕
 第3実施形態では、複数のサーバ装置が同じ入力データを重複して持つ場合において、上述の各実施形態と同様に、確率的空きリソース情報及び分散入力データの量に基づいて、同じ入力データを持つ各サーバ装置について、対象タスクが要求時間内に完了するか否かがそれぞれ判定される。そして、同じ入力データを持つ複数のサーバ装置の中の、対象タスクを要求時間内に完了させ得るサーバ装置が優先的に対象タスクを処理させるサーバ装置として選択される。これにより、第3実施形態により決定される実行計画によれば、対象タスクに関する要求時間を守りつつ、対象タスクを処理させるサーバ装置の数を最小化することができ、ひいては、タスク管理システム1内で多くのタスクを同時に処理することができる。
 また、第3実施形態では、対象タスクを要求時間内に完了させ得るサーバ装置が複数存在する場合、選択された所定空き確率で保証される空きリソース量で処理可能な最大入力データ量に対する入力データの量の割合が大きいサーバ装置が優先的に対象タスクを処理させるサーバ装置として選択される。これにより、第3実施形態により決定される実行計画によれば、対象タスクに関する要求時間を守ること、対象タスクを処理させるサーバ装置の数を最小化すること、及び、空きリソースの使用効率を高めることを実現することができる。
 以下、上述の第3実施形態を具体的な数値を用いて実施例3として更に詳細に説明する。但し、第3実施形態は、以下の実施例3から何ら制限を受けない。
 入力データ管理DB32には、次のような、対象タスク(タスクID=004)の入力データの管理情報が格納されていると仮定する。即ち、データID(A)の入力データ10GBがサーバ装置10(#1)とサーバ装置10(#3)とに重複して配備され、データID(B)の入力データ10GBがサーバ装置10(#2)とサーバ装置10(#4)とに重複して配備されている。また、CPUリソースを100%利用した際の処理速度が全てのサーバ装置10において10MB(メガバイト)/s(秒)であると仮定する。
 タスクID:004
 サーバ装置10(#1):データID(A)、10GB
 サーバ装置10(#2):データID(B)、10GB
 サーバ装置10(#3):データID(A)、10GB
 サーバ装置10(#4):データID(B)、10GB
 この場合、タスクスケジューラ22は、異なるデータIDの数が2つであるため、対象タスクを処理させるサーバ装置10の数を2とみなし、その数に基づいて、所定完了確率に対応する所定空き確率を選択する。
 また、選択された所定空き確率に対応する19時帯及び20時帯での各サーバ装置10の空きリソースの処理能力は、図13に示される値であると仮定する。図13は、或る所定空き確率に対応する19時帯及び20時帯での各サーバ装置10の空きリソースの処理能力の例を示す図である。
 この場合、19時から21時の間でのサーバ装置10(#1)における空きリソースの最大処理能力は、10.8GBであり、サーバ装置10(#3)については7.2GBである。よって、入力データ(A)を持つサーバ装置10(#1)及び10(#3)のうち、サーバ装置10(#1)は、要求時間内に対象タスクを完了させることができ、サーバ装置10(#3)はできない。即ち、サーバ装置10(#3)は、オーバフローサーバ装置10である。従って、タスクスケジューラ22は、入力データ(A)を処理させるサーバ装置としてサーバ装置10(#1)を選択する。
 一方、同時間帯でのサーバ装置10(#2)における空きリソースの最大処理能力は、5.4GBであり、サーバ装置10(#4)については7.2GBである。このため、タスクスケジューラ22は、入力データ(B)を持つサーバ装置10(#2)及び10(#4)をオーバフローサーバ装置と判定する。この場合、タスクスケジューラ22は、サーバ装置10(#2)及び10(#4)について超過分の入力データの量を計算する。サーバ装置10(#2)の超過分の入力データは、4.6GBであり、サーバ装置10(#4)については、2.8GBである。よって、タスクスケジューラ22は、入力データ(B)のために、移送する必要のある入力データの量が少ないサーバ装置10(#4)を選択し、その超過分の入力データの量(2.8GB)を移送する入力データ量に決定する。
 この場合、タスクスケジューラ22は、その超過分の入力データの移送先として、まず、入力データ(A)を処理予定のサーバ装置10(#1)を選択する。しかし、サーバ装置10(#1)は、入力データ(A)を10GB分処理するため、残り0.8GBしか余剰の空きリソースを持たない。従って、サーバ装置10(#1)は、サーバ装置10(#4)の超過分の入力データを全て処理することはできない。そこで、タスクスケジューラ22は、次に、超過分の入力データと同じ入力データ(B)を持つサーバ装置10(#2)を移送先に決定する。このとき、対象タスクを処理させるサーバ装置10の数が3台(サーバ装置10(#1)、10(#2)及び10(#4))と増加するため、タスクスケジューラ22は、上述の各実施形態と同様に、所定空き確率を選び直す。
 [変形例]
 図4で示される(S45)及び(S52)では、対象タスクの完了時間を算出しているが、各実施形態におけるタスク管理方法は、対象タスクが要求時間内に完了するか否かが判定できるのであれば、対象タスクの完了時間を算出する工程を必ずしも含まなくてもよい。例えば、(S45)及び(S52)では、管理装置20は、空きリソース量で処理可能な最大入力データ量と割り当てられている入力データ量との比較をするようにしてもよい。この比較により、当該最大入力データ量が割り当てられている入力データ量よりも小さいと判定されると、管理装置20は、そのサーバ装置10は対象タスクが要求時間内に完了することができないと判定する、即ち、そのサーバ装置10をオーバフローサーバ装置と特定することができる。
 また、上述の説明で用いた複数のフローチャートでは、複数の工程(処理)が順番に記載されているが、本実施形態で実行される工程の実行順序は、その記載の順番に制限されない。本実施形態では、図示される工程の順番を内容的に支障のない範囲で変更することができる。また、上述の各実施形態及び各変形例は、内容が相反しない範囲で組み合わせることができる。
 上記の各実施形態及び各変形例の一部又は全部は、以下の付記のようにも特定され得る。但し、各実施形態及び各変形例が以下の記載に限定されるものではない。
 (付記1)
 サーバ装置上で実際に使用されているリソース量を示す実リソース使用量を取得するリソース情報取得部と、
 前記リソース情報取得部により取得される実リソース使用量の履歴に基づいて、前記サーバ装置のための、複数の所定空き確率について該所定空き確率で保証される空きリソース量をそれぞれ示す確率的空きリソース情報を生成するリソース分析部と、
 対象タスクを実行させる少なくとも1つのサーバ装置を選択し、前記複数の所定空き確率の中から所定完了確率に対応する所定空き確率を選択し、該選択されたサーバ装置のための前記確率的空きリソース情報により示される、該選択された所定空き確率で保証される空きリソース量に基づいて、該対象タスクの実行計画を決定するスケジューリング部と、
 を備えるタスク管理装置。
(付記2)
 前記スケジューリング部は、前記選択された所定空き確率で保証される空きリソース量、及び、前記対象タスクで処理される入力データの量に基づいて、前記対象タスクが要求時間内に完了するか否かを判定し、該判定結果に基づいて、前記対象タスクの実行計画を決定する、
 付記1に記載のタスク管理装置。
(付記3)
 前記対象タスクで処理される入力データが分散配置されている各サーバ装置における分散入力データの量をそれぞれ示す入力データ所在情報を取得する入力データ取得部、
 を更に備え、
 前記リソース情報取得部は、前記複数のサーバ装置の各々に関する前記実リソース使用量をそれぞれ取得し、
 前記リソース分析部は、前記複数のサーバ装置の各々について前記確率的空きリソース情報をそれぞれ生成し、
 前記スケジューリング部は、前記対象タスクを実行させるサーバ装置として前記分散入力データを持つ複数のサーバ装置を選択し、前記複数の所定空き確率の中から、該選択されたサーバ装置の数及び所定完了確率に対応する所定空き確率を選択し、該選択された各サーバ装置における該選択された所定空き確率で保証される各空きリソース量、及び、該選択された各サーバ装置が持つ分散入力データの量に基づいて、該選択された各サーバ装置上で実行される前記対象タスクがそれぞれ前記要求時間内に完了するか否かを判定する、
 付記2に記載のタスク管理装置。
(付記4)
 前記スケジューリング部は、前記対象タスクが前記要求時間内に完了しないと判定されたオーバフローサーバ装置が持つ分散入力データの少なくとも一部の移送先となるサーバ装置を決定し、該分散入力データの移送時間と、該移送先となるサーバ装置における該移送される分散入力データに対する処理時間とを含む前記対象タスクの処理時間が前記要求時間内に収まるか否かを判定し、該判定結果に基づいて、該分散入力データの移送、及び、該移送先となるサーバ装置での前記対象タスクの実行を、前記対象タスクの実行計画として更に決定する、
 付記3に記載のタスク管理装置。
(付記5)
 前記スケジューリング部は、前記選択された所定空き確率で保証される空きリソース量に基づいて、前記オーバフローサーバ装置における、該空きリソース量で処理可能な最大入力データ量を算出し、前記分散入力データの量と該最大入力データ量との差分を、前記オーバフローサーバ装置から移送させる分散入力データの量として算出する、
 付記4に記載のタスク管理装置。
(付記6)
 前記スケジューリング部は、前記対象タスクを実行させる複数のサーバ装置を選択し、該選択された各サーバ装置における前記選択された所定空き確率で保証される各空きリソース量と、前記対象タスクで処理される入力データの中から、該選択された各サーバ装置に割り当てられる分散入力データの量とに基づいて、該選択された各サーバ装置における前記対象タスクの完了時間をそれぞれ推定し、該推定結果から得られる前記対象タスク全体の完了時間が短縮されるように、該選択された各サーバ装置間での分散入力データの移送パターンを、前記対象タスクの実行計画として更に決定する、
 付記1から5のいずれか1つに記載のタスク管理装置。
(付記7)
 複数のサーバ装置が同じ入力データを重複して持つ場合、前記スケジューリング部は、前記選択された所定空き確率で保証される空きリソース量、及び、該入力データの量に基づいて、同じ入力データを持つ各サーバ装置について、前記対象タスクが前記要求時間内に完了するか否かをそれぞれ判定し、同じ入力データを持つ複数のサーバ装置の中の、前記対象タスクを前記要求時間内に完了させ得るサーバ装置を優先的に前記対象タスクを処理させるサーバ装置として選択する、
 付記1から6のいずれか1つに記載のタスク管理装置。
(付記8)
 複数のサーバ装置が同じ入力データを重複して持つ場合、前記スケジューリング部は、同じ入力データを持ち、かつ、前記対象タスクを前記要求時間内に完了させ得る複数のサーバ装置の中の、前記選択された所定空き確率で保証される空きリソース量で処理可能な最大入力データ量に対する該入力データの量の割合が大きいサーバ装置を優先的に前記対象タスクを処理させるサーバ装置として選択する、
 付記7に記載のタスク管理装置。
(付記9)
 前記スケジューリング部により決定された前記対象タスクの実行計画に基づいて、前記対象タスクを実行させると決定されたサーバ装置に前記対象タスクを実行させ、前記対象タスクの実行中に、所定量のリソースが明示的に割当てられているソフトウェア実行単位が該リソースを要求する場合、前記対象タスクにリソースを解放させるタスク制御部、
 を更に備える付記1から8のいずれか1つに記載のタスク管理装置。
(付記10)
 少なくとも1つのコンピュータにより実行されるタスク管理方法において、
 サーバ装置上で実際に使用されているリソース量を示す実リソース使用量を取得し、
 前記取得された実リソース使用量の履歴に基づいて、前記サーバ装置のための、複数の所定空き確率について該所定空き確率で保証される空きリソース量をそれぞれ示す確率的空きリソース情報を生成し、
 対象タスクを実行させる少なくとも1つのサーバ装置を選択し、
 前記複数の所定空き確率の中から所定完了確率に対応する所定空き確率を選択し、
 前記選択されたサーバ装置のための前記確率的空きリソース情報により示される、前記選択された所定空き確率で保証される空きリソース量に基づいて、前記対象タスクの実行計画を決定する、
 ことを含むタスク管理方法。
(付記11)
 前記選択された所定空き確率で保証される空きリソース量、及び、前記対象タスクで処理される入力データの量に基づいて、前記対象タスクが要求時間内に完了するか否かを判定する、
 ことを更に含み、
 前記対象タスクの実行計画の決定は、前記判定結果に基づいて、前記対象タスクの実行計画を決定する、
 付記10に記載のタスク管理方法。
(付記12)
 前記対象タスクで処理される入力データが分散配置されている各サーバ装置における分散入力データの量をそれぞれ示す入力データ所在情報を取得する、
 ことを更に含み、
 前記実リソース使用量の取得は、前記複数のサーバ装置の各々に関する前記実リソース使用量をそれぞれ取得し、
 前記確率的空きリソース情報の生成は、前記複数のサーバ装置の各々について前記確率的空きリソース情報をそれぞれ生成し、
 前記サーバ装置の選択は、前記対象タスクを実行させるサーバ装置として前記分散入力データを持つ複数のサーバ装置を選択し、
 前記所定空き確率の選択は、前記複数の所定空き確率の中から、前記選択されたサーバ装置の数及び所定完了確率に対応する所定空き確率を選択し、
 前記判定は、前記選択された各サーバ装置における、前記選択された所定空き確率で保証される各空きリソース量、及び、前記選択された各サーバ装置が持つ分散入力データの量に基づいて、前記選択された各サーバ装置上で実行される前記対象タスクがそれぞれ前記要求時間内に完了するか否かを判定する、
 付記11に記載のタスク管理方法。
(付記13)
 前記対象タスクが前記要求時間内に完了しないと判定されたオーバフローサーバ装置が持つ分散入力データの少なくとも一部の移送先となるサーバ装置を決定する、
 ことを更に含み、
 前記判定は、前記分散入力データの移送時間と、前記移送先となるサーバ装置における移送される分散入力データに対する処理時間とを含む前記対象タスクの処理時間が前記要求時間内に収まるか否かを判定し、
 前記対象タスクの実行計画の決定は、前記判定結果に基づいて、前記分散入力データの移送、及び、前記移送先となるサーバ装置での前記対象タスクの実行を、前記対象タスクの実行計画として更に決定する、
 付記12に記載のタスク管理方法。
(付記14)
 前記選択された所定空き確率で保証される空きリソース量に基づいて、前記オーバフローサーバ装置における、該空きリソース量で処理可能な最大入力データ量を算出し、
 前記分散入力データの量と前記最大入力データ量との差分を、前記オーバフローサーバ装置から移送させる分散入力データの量として算出する、
 ことを更に含む付記13に記載のタスク管理方法。
(付記15)
 前記対象タスクを実行させる複数のサーバ装置を選択し、
 前記選択された各サーバ装置における前記選択された所定空き確率で保証される各空きリソース量と、前記対象タスクで処理される入力データの中から、前記選択された各サーバ装置に割り当てられる分散入力データの量とに基づいて、前記選択された各サーバ装置における前記対象タスクの完了時間をそれぞれ推定し、
 前記推定結果から得られる前記対象タスク全体の完了時間が短縮されるように、前記選択された各サーバ装置間での分散入力データの移送パターンを決定する、
 ことを更に含む付記10から14のいずれか1つに記載のタスク管理方法。
(付記16)
 前記判定は、複数のサーバ装置が同じ入力データを重複して持つ場合、前記スケジューリング部は、前記選択された所定空き確率で保証される空きリソース量、及び、該入力データの量に基づいて、同じ入力データを持つ各サーバ装置について、前記対象タスクが前記要求時間内に完了するか否かをそれぞれ判定し、
 前記サーバ装置の選択は、同じ入力データを持つ複数のサーバ装置の中の、前記対象タスクを前記要求時間内に完了させ得るサーバ装置を優先的に前記対象タスクを処理させるサーバ装置として選択する、
 付記10から15のいずれか1つに記載のタスク管理方法。
(付記17)
 前記サーバ装置の選択は、複数のサーバ装置が同じ入力データを重複して持つ場合、同じ入力データを持ち、かつ、前記対象タスクを前記要求時間内に完了させ得る複数のサーバ装置の中の、前記選択された所定空き確率で保証される空きリソース量で処理可能な最大入力データ量に対する該入力データの量の割合が大きいサーバ装置を優先的に前記対象タスクを処理させるサーバ装置として選択する、
 付記16に記載のタスク管理方法。
(付記18)
 前記決定された前記対象タスクの実行計画に基づいて、前記対象タスクを実行させると決定されたサーバ装置に前記対象タスクを実行させ、
 前記対象タスクの実行中に、所定量のリソースが明示的に割当てられているソフトウェア実行単位が該リソースを要求する場合、前記対象タスクにリソースを解放させる、
 ことを更に含む付記10から17のいずれか1つに記載のタスク管理方法。
(付記19)
 付記10から18のいずれか1つに記載のタスク管理方法を少なくとも1つのコンピュータに実行させるプログラム。
(付記20)
 付記19に記載のプログラムをコンピュータが読み取り可能に記録する記録媒体。
 この出願は、2013年3月4日に出願された日本出願特願2013-041857号を基礎とする優先権を主張し、その開示の全てをここに取り込む。

Claims (10)

  1.  サーバ装置上で実際に使用されているリソース量を示す実リソース使用量を取得するリソース情報取得部と、
     前記リソース情報取得部により取得される実リソース使用量の履歴に基づいて、前記サーバ装置のための、複数の所定空き確率について該所定空き確率で保証される空きリソース量をそれぞれ示す確率的空きリソース情報を生成するリソース分析部と、
     対象タスクを実行させる少なくとも1つのサーバ装置を選択し、前記複数の所定空き確率の中から所定完了確率に対応する所定空き確率を選択し、該選択されたサーバ装置のための前記確率的空きリソース情報により示される、該選択された所定空き確率で保証される空きリソース量に基づいて、該対象タスクの実行計画を決定するスケジューリング部と、
     を備えるタスク管理装置。
  2.  前記スケジューリング部は、前記選択された所定空き確率で保証される空きリソース量、及び、前記対象タスクで処理される入力データの量に基づいて、前記対象タスクが要求時間内に完了するか否かを判定し、該判定結果に基づいて、前記対象タスクの実行計画を決定する、
     請求項1に記載のタスク管理装置。
  3.  前記対象タスクで処理される入力データが分散配置されている各サーバ装置における分散入力データの量をそれぞれ示す入力データ所在情報を取得する入力データ取得部、
     を更に備え、
     前記リソース情報取得部は、前記複数のサーバ装置の各々に関する前記実リソース使用量をそれぞれ取得し、
     前記リソース分析部は、前記複数のサーバ装置の各々について前記確率的空きリソース情報をそれぞれ生成し、
     前記スケジューリング部は、前記対象タスクを実行させるサーバ装置として前記分散入力データを持つ複数のサーバ装置を選択し、前記複数の所定空き確率の中から、該選択されたサーバ装置の数及び所定完了確率に対応する所定空き確率を選択し、該選択された各サーバ装置における該選択された所定空き確率で保証される各空きリソース量、及び、該選択された各サーバ装置が持つ分散入力データの量に基づいて、該選択された各サーバ装置上で実行される前記対象タスクがそれぞれ前記要求時間内に完了するか否かを判定する、
     請求項2に記載のタスク管理装置。
  4.  前記スケジューリング部は、前記対象タスクが前記要求時間内に完了しないと判定されたオーバフローサーバ装置が持つ分散入力データの少なくとも一部の移送先となるサーバ装置を決定し、該分散入力データの移送と、該移送先となるサーバ装置において該移送される分散入力データに対する処理とを含む前記対象タスクが前記要求時間内に完了するか否かを判定し、該判定結果に基づいて、該分散入力データの移送、及び、該移送先となるサーバ装置での前記対象タスクの実行を、前記対象タスクの実行計画として更に決定する、
     請求項3に記載のタスク管理装置。
  5.  前記スケジューリング部は、前記対象タスクを実行させる複数のサーバ装置を選択し、該選択された各サーバ装置における前記選択された所定空き確率で保証される各空きリソース量と、前記対象タスクで処理される入力データの中から、該選択された各サーバ装置に割り当てられる分散入力データの量とに基づいて、該選択された各サーバ装置における前記対象タスクの完了時間をそれぞれ推定し、該推定結果から得られる前記対象タスク全体の完了時間が短縮されるように、該選択された各サーバ装置間での分散入力データの移送パターンを、前記対象タスクの実行計画として更に決定する、
     請求項1から4のいずれか1項に記載のタスク管理装置。
  6.  複数のサーバ装置が同じ入力データを重複して持つ場合、前記スケジューリング部は、前記選択された所定空き確率で保証される空きリソース量、及び、該入力データの量に基づいて、同じ入力データを持つ各サーバ装置について、前記対象タスクが前記要求時間内に完了するか否かをそれぞれ判定し、同じ入力データを持つ複数のサーバ装置の中の、前記対象タスクを前記要求時間内に完了させ得るサーバ装置を優先的に前記対象タスクを処理させるサーバ装置として選択する、
     請求項1から5のいずれか1項に記載のタスク管理装置。
  7.  複数のサーバ装置が同じ入力データを重複して持つ場合、前記スケジューリング部は、同じ入力データを持ち、かつ、前記対象タスクを前記要求時間内に完了させ得る複数のサーバ装置の中の、前記選択された所定空き確率で保証される空きリソース量で処理可能な最大入力データ量に対する該入力データの量の割合が大きいサーバ装置を優先的に前記対象タスクを処理させるサーバ装置として選択する、
     請求項6に記載のタスク管理装置。
  8.  前記スケジューリング部により決定された前記対象タスクの実行計画に基づいて、前記対象タスクを実行させると決定されたサーバ装置に前記対象タスクを実行させ、前記対象タスクの実行中に、所定量のリソースが明示的に割当てられているソフトウェア実行単位が該リソースを要求する場合、前記対象タスクにリソースを解放させるタスク制御部、
     を更に備える請求項1から7のいずれか1項に記載のタスク管理装置。
  9.  少なくとも1つのコンピュータにより実行されるタスク管理方法において、
     サーバ装置上で実際に使用されているリソース量を示す実リソース使用量を取得し、
     前記取得された実リソース使用量の履歴に基づいて、前記サーバ装置のための、複数の所定空き確率について該所定空き確率で保証される空きリソース量をそれぞれ示す確率的空きリソース情報を生成し、
     対象タスクを実行させる少なくとも1つのサーバ装置を選択し、
     前記複数の所定空き確率の中から所定完了確率に対応する所定空き確率を選択し、
     前記選択されたサーバ装置のための前記確率的空きリソース情報により示される、前記選択された所定空き確率で保証される空きリソース量に基づいて、前記対象タスクの実行計画を決定する、
     ことを含むタスク管理方法。
  10.  少なくとも1つのコンピュータに、
     サーバ装置上で実際に使用されているリソース量を示す実リソース使用量を取得し、
     前記取得された実リソース使用量の履歴に基づいて、前記サーバ装置のための、複数の所定空き確率について該所定空き確率で保証される空きリソース量をそれぞれ示す確率的空きリソース情報を生成し、
     対象タスクを実行させる少なくとも1つのサーバ装置を選択し、
     前記複数の所定空き確率の中から所定完了確率に対応する所定空き確率を選択し、
     前記選択されたサーバ装置のための前記確率的空きリソース情報により示される、前記選択された所定空き確率で保証される空きリソース量に基づいて、前記対象タスクの実行計画を決定する、
     ことを実行させるプログラム。
PCT/JP2013/076660 2013-03-04 2013-10-01 タスク管理装置及びタスク管理方法 WO2014136302A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013041857 2013-03-04
JP2013-041857 2013-03-04

Publications (1)

Publication Number Publication Date
WO2014136302A1 true WO2014136302A1 (ja) 2014-09-12

Family

ID=51490848

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/076660 WO2014136302A1 (ja) 2013-03-04 2013-10-01 タスク管理装置及びタスク管理方法

Country Status (1)

Country Link
WO (1) WO2014136302A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017004266A (ja) * 2015-06-10 2017-01-05 富士通株式会社 判定制御プログラム、判定制御方法及び仮想マシン管理装置
JP2017211751A (ja) * 2016-05-24 2017-11-30 日本電信電話株式会社 リソース割り当て装置、リソース割り当て方法、及びリソース割り当てプログラム
JP2019159385A (ja) * 2018-03-07 2019-09-19 富士ゼロックス株式会社 処理割当装置及び処理割当プログラム
CN112764935A (zh) * 2021-01-29 2021-05-07 中国平安人寿保险股份有限公司 大数据处理方法、装置、电子设备及存储介质
JPWO2021166108A1 (ja) * 2020-02-19 2021-08-26
CN115952959A (zh) * 2022-05-05 2023-04-11 北京小米移动软件有限公司 物料分配方法及装置、产线控制系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006228115A (ja) * 2005-02-21 2006-08-31 Ntt Comware Corp 負荷分散予測装置及び負荷分散制御方法並びにそのプログラム、負荷分散制御システムおよび当該システムにおける負荷分散制御方法
WO2011138854A1 (ja) * 2010-05-06 2011-11-10 日本電気株式会社 リソース管理システム、リソース管理方法およびリソース管理プログラム
JP2012123735A (ja) * 2010-12-10 2012-06-28 Sony Corp 分散処理システム、演算装置、演算制御装置、演算制御方法、演算タスクの完了確率算出方法、及びプログラム
JP2012173926A (ja) * 2011-02-21 2012-09-10 Nec Corp サーバシステム及び電力供給制御方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006228115A (ja) * 2005-02-21 2006-08-31 Ntt Comware Corp 負荷分散予測装置及び負荷分散制御方法並びにそのプログラム、負荷分散制御システムおよび当該システムにおける負荷分散制御方法
WO2011138854A1 (ja) * 2010-05-06 2011-11-10 日本電気株式会社 リソース管理システム、リソース管理方法およびリソース管理プログラム
JP2012123735A (ja) * 2010-12-10 2012-06-28 Sony Corp 分散処理システム、演算装置、演算制御装置、演算制御方法、演算タスクの完了確率算出方法、及びプログラム
JP2012173926A (ja) * 2011-02-21 2012-09-10 Nec Corp サーバシステム及び電力供給制御方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017004266A (ja) * 2015-06-10 2017-01-05 富士通株式会社 判定制御プログラム、判定制御方法及び仮想マシン管理装置
JP2017211751A (ja) * 2016-05-24 2017-11-30 日本電信電話株式会社 リソース割り当て装置、リソース割り当て方法、及びリソース割り当てプログラム
JP2019159385A (ja) * 2018-03-07 2019-09-19 富士ゼロックス株式会社 処理割当装置及び処理割当プログラム
JP7077676B2 (ja) 2018-03-07 2022-05-31 富士フイルムビジネスイノベーション株式会社 処理割当装置及び処理割当プログラム
JPWO2021166108A1 (ja) * 2020-02-19 2021-08-26
WO2021166108A1 (ja) * 2020-02-19 2021-08-26 三菱電機株式会社 タスク異常監視装置、方法及びプログラム
JP7026870B2 (ja) 2020-02-19 2022-02-28 三菱電機株式会社 タスク異常監視装置、方法及びプログラム
CN112764935A (zh) * 2021-01-29 2021-05-07 中国平安人寿保险股份有限公司 大数据处理方法、装置、电子设备及存储介质
CN112764935B (zh) * 2021-01-29 2023-06-30 中国平安人寿保险股份有限公司 大数据处理方法、装置、电子设备及存储介质
CN115952959A (zh) * 2022-05-05 2023-04-11 北京小米移动软件有限公司 物料分配方法及装置、产线控制系统
CN115952959B (zh) * 2022-05-05 2024-02-23 北京小米移动软件有限公司 物料分配方法及装置、产线控制系统

Similar Documents

Publication Publication Date Title
US10719343B2 (en) Optimizing virtual machines placement in cloud computing environments
WO2014136302A1 (ja) タスク管理装置及びタスク管理方法
JP5662057B2 (ja) データ・センタのバッチ・ジョブのサービスの質コントロール
US9571567B2 (en) Methods and systems to manage computer resources in elastic multi-tenant cloud computing systems
US8656404B2 (en) Statistical packing of resource requirements in data centers
US8694644B2 (en) Network-aware coordination of virtual machine migrations in enterprise data centers and clouds
CN108182105B (zh) 基于Docker容器技术的局部动态迁移方法及控制系统
JP6819131B2 (ja) 情報処理装置、情報処理方法、情報処理プログラムおよび情報処理システム
JP2016526735A (ja) 仮想ハドゥープマネジャ
US9792142B2 (en) Information processing device and resource allocation method
CN109257399B (zh) 云平台应用程序管理方法及管理平台、存储介质
CN112269641A (zh) 一种调度方法、装置、电子设备及存储介质
US11972301B2 (en) Allocating computing resources for deferrable virtual machines
US10606650B2 (en) Methods and nodes for scheduling data processing
CN115617497B (zh) 线程处理方法、调度组件、监测组件、服务器和存储介质
CN107203256B (zh) 一种网络功能虚拟化场景下的节能分配方法与装置
Yazdanov et al. EHadoop: Network I/O aware scheduler for elastic MapReduce cluster
Wu et al. Abp scheduler: Speeding up service spread in docker swarm
US20180101405A1 (en) Resource and latency estimation-based scheduling in a distributed computing environment
US20230155958A1 (en) Method for optimal resource selection based on available gpu resource analysis in large-scale container platform
CN109298949B (zh) 一种分布式文件系统的资源调度系统
CN116483546A (zh) 分布式训练任务调度方法、装置、设备及存储介质
CN114253663A (zh) 一种虚拟机资源的调度方法和装置
US20160224378A1 (en) Method to control deployment of a program across a cluster of machines
JP7239861B2 (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: 13877152

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13877152

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP