WO2018003031A1 - Virtualization management program, virtualization management device, and virtualization management method - Google Patents

Virtualization management program, virtualization management device, and virtualization management method Download PDF

Info

Publication number
WO2018003031A1
WO2018003031A1 PCT/JP2016/069285 JP2016069285W WO2018003031A1 WO 2018003031 A1 WO2018003031 A1 WO 2018003031A1 JP 2016069285 W JP2016069285 W JP 2016069285W WO 2018003031 A1 WO2018003031 A1 WO 2018003031A1
Authority
WO
WIPO (PCT)
Prior art keywords
container
virtual execution
service
application
resource
Prior art date
Application number
PCT/JP2016/069285
Other languages
French (fr)
Japanese (ja)
Inventor
永井 剛
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to JP2018524634A priority Critical patent/JP6631710B2/en
Priority to PCT/JP2016/069285 priority patent/WO2018003031A1/en
Publication of WO2018003031A1 publication Critical patent/WO2018003031A1/en

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Definitions

  • the present invention relates to a virtualization management program, a virtualization management device, and a virtualization management method.
  • multiple virtual execution units such as multiple virtual machines and multiple containers may be operated on the same physical machine using computer virtualization technology.
  • Resources such as processor capacity and memory area can be allocated to each of the plurality of virtual execution units, and the resources that can be used by each virtual execution unit are limited to the allocated range.
  • application software can be executed without being influenced by other virtual execution units (independent of other virtual execution units).
  • the same type of application software can be executed in a plurality of virtual execution units, and the processing of the application software can be distributed using the plurality of virtual execution units.
  • the number of virtual execution units that execute the same type of application software may be dynamically changed. Increase the virtual execution unit when the application software load is high (for example, when the number of requests per unit time is large), and decrease the virtual execution unit when the load is low (for example, when the number of requests per unit time is small) It is possible. As a result, resources can be saved when the load is low, and the required resources can be used only when the load is high.
  • the number of virtual execution units that execute the same type of application software may be referred to as “scale”, increasing the virtual execution units may be referred to as “scale-out”, and decreasing the virtual execution units may be referred to as “scale-in”.
  • a server management apparatus that manages a cluster system including a plurality of virtual servers has been proposed.
  • the proposed server management device collects the processor usage rate, the memory usage rate, the number of waiting queues, the number of database connections, the frequency of occurrence of garbage collection, and the number of sessions with clients of the virtual server group.
  • the server management apparatus determines that the virtual server group can be scaled in when all of the six index values are equal to or less than the threshold value.
  • the server management apparatus searches for a physical server with the smallest number of operating virtual servers and stops any virtual server on the corresponding physical server.
  • a server management apparatus that performs scale-in has been proposed.
  • an operation management apparatus that collects the communication amount for each traffic type of the virtual machine and determines the increase or decrease of the virtual machine based on the communication amount is proposed.
  • One method for selecting a virtual execution unit to be stopped is to monitor changes in processor usage, memory usage, disk usage, etc. for each virtual execution unit, and select a virtual execution unit with little change. It is done. However, depending on the application software, the virtual execution unit may have an incomplete processing state even if the processor usage rate does not change. On the other hand, even if the processor usage rate changes intermittently, the virtual execution unit may not have an incomplete processing state.
  • an object of the present invention is to provide a virtualization management program, a virtualization management apparatus, and a virtualization management method that can appropriately select a virtual execution unit to be stopped.
  • a virtualization management program that causes a computer to execute the following processing. For each of a plurality of virtual execution units to which a resource other than a processor resource and a processor resource is allocated, resource information indicating a first usage amount related to the processor resource and a second usage amount related to another resource, and a plurality of virtual executions Service information indicating the usage status of services provided from other than the unit computer is acquired. A virtual execution unit that can be stopped from a plurality of virtual execution units is specified based on predetermined conditions relating to resource information and service information.
  • the predetermined condition is that the amount of change in the first usage amount and the amount of change in the second usage amount are equal to or less than a threshold value, and the virtual execution in the first state in which the service is not used for a first time or more.
  • the unit or the amount of change in the second usage amount is less than or equal to the threshold, the time when the service is being used for polling the service continues for the second time or more, and the polling is performed in other than the virtual execution unit.
  • the virtual execution unit of the 2nd state which is also performing the virtual execution unit is shown.
  • a virtualization management device having a storage unit and a control unit is provided.
  • a virtualization management method executed by a computer is provided.
  • the virtual execution unit to be stopped can be appropriately selected.
  • FIG. 1 It is a figure which shows the example of the virtualization management apparatus of 1st Embodiment. It is a figure which shows the example of the information processing system of 2nd Embodiment. It is a block diagram which shows the hardware example of a scale control server. It is a block diagram which shows the example of a container. It is a figure which shows the example of the scale-out and scale-in of a container. It is a figure which shows the example of an application setting table. It is a figure which shows the example of an application instance table. It is a figure which shows the example of a container resource table. It is a figure which shows the example of a distribution table and a communication log table. It is a figure which shows the example of a service log table.
  • FIG. 1 is a diagram illustrating an example of a virtualization management apparatus according to the first embodiment.
  • the virtualization management device 10 manages a plurality of virtual execution units including the virtual execution units 21 and 22.
  • the virtual execution units 21 and 22 are virtual processing entities that execute application software on a physical computer (physical machine).
  • the virtual execution units 21 and 22 are arranged on the same physical machine or different physical machines.
  • the virtual execution units 21 and 22 may be virtual machines in host type virtualization or hypervisor type virtualization, or containers in container type virtualization.
  • host-type virtualization a host OS (Operating System) is executed on a physical machine, and a plurality of virtual machines operate on the host OS. Each virtual machine executes a guest OS, and middleware and application software are executed on the guest OS.
  • hypervisor type virtualization a hypervisor is executed on a physical machine, and a plurality of virtual machines operate on the hypervisor. Similar to host-type virtualization, a guest OS is executed in each virtual machine, and middleware and application software are executed on the guest OS.
  • container type virtualization a host OS is executed on a physical machine, and a plurality of containers operate on the host OS.
  • a container is a virtual execution unit that is lighter than a virtual machine. In each container, the guest OS is not executed, and middleware and application software are executed using a part of the resources managed by the host OS.
  • Each of the virtual execution units 21 and 22 can execute application software within the range of allocated resources.
  • the virtual execution unit 21 is assigned a processor resource 21a and another resource 21b.
  • the virtual execution unit 22 is assigned a processor resource 22a and another resource 22b.
  • the processor resources 21a and 22a are processor computing capabilities such as CPU (Central Processing Unit) resources.
  • the other resources 21b and 22b are resources other than the processor resources 21a and 22a.
  • a storage area of a main storage device such as a RAM (Random Access Memory) or a storage of an auxiliary storage device such as an HDD (Hard Disk Drive). It is an area.
  • the virtual execution units 21 and 22 may use the service 23.
  • the service 23 is provided from outside the virtual execution units 21 and 22, for example.
  • the service 23 may be provided from a device other than the computer that executes the virtual execution units 21 and 22, or may be provided from a device other than the virtualization management device 10.
  • the service 23 is, for example, a service using an external storage device, and may include a database service and a queue service. Examples of usage forms of the service 23 include database reference, database update, polling of a queue shared by the virtual execution units 21 and 22, reading from the queue, writing to the queue, and the like. In queue polling, it is periodically checked whether data has arrived in the queue.
  • the plurality of virtual execution units execute the same type of application software. Application software processing is distributed using these virtual execution units.
  • the virtualization management device 10 dynamically changes the number of virtual execution units according to the resource usage status of a plurality of virtual execution units. In scale-out, the virtualization management device 10 adds a new virtual execution unit to increase the number of virtual execution units. In scale-in, the virtualization management device 10 stops some virtual execution units and reduces the number of virtual execution units.
  • the virtualization management device 10 includes a storage unit 11 and a control unit 12.
  • the storage unit 11 may be a volatile semiconductor memory such as a RAM or a non-volatile storage device such as an HDD or a flash memory.
  • the control unit 12 may be a processor such as a CPU or DSP (Digital Signal Processor). Further, the control unit 12 may include an electronic circuit for a specific application such as ASIC (Application Specific Integrated Circuit) or FPGA (Field Programmable Gate Array).
  • the processor executes a program stored in a memory such as a RAM (or the storage unit 11).
  • the program executed by the processor includes a virtualization management program in which processing described below is described.
  • a set of processors may be referred to as a “multiprocessor” or simply “processor”.
  • the storage unit 11 stores resource information 13 and service information 14 for each of a plurality of virtual execution units.
  • the resource information 13 and the service information 14 may be collected by the virtualization management apparatus 10 via a network.
  • Resource information 13 indicates the usage amount (first usage amount) of processor resources and the usage amount (second usage amount) of other resources. For example, for the virtual execution unit 21, the resource information 13 indicates the amount used (for example, the processor usage rate) among the processor resources 21 a allocated to the virtual execution unit 21. Further, the resource information 13 indicates the amount used (for example, the memory usage amount or the disk usage amount) among the other resources 21 b allocated to the virtual execution unit 21.
  • the service information 14 indicates the usage status of the service 23. For example, for the virtual execution unit 21, the service information 14 indicates the time requested by the virtual execution unit 21 to the service 23 and the type of service.
  • the control unit 12 specifies a virtual execution unit that can be stopped from a plurality of virtual execution units based on predetermined conditions regarding the resource information 13 and the service information 14 stored in the storage unit 11.
  • the control unit 12 stops the specified virtual execution unit.
  • the predetermined condition indicates a virtual execution unit in the first state 15 or the second state 16.
  • the first state 15 is a state in which the amount of change in the first usage amount and the amount of change in the second usage amount are equal to or less than the threshold and the time during which the service 23 is not used continues for the first time or more.
  • the change amount of the first usage amount and the change amount of the second usage amount are, for example, the difference between the maximum value and the minimum value in the latest 5 seconds.
  • the threshold value for the change amount of the first usage amount is, for example, about 5% of the allocated processor resource.
  • the threshold value for the amount of change in the second usage amount is, for example, about 5% of other allocated resources.
  • the first time is, for example, about 5 minutes.
  • the virtual execution unit 21 When the virtual execution unit 21 is in the first state 15, it is presumed that the virtual execution unit 21 is not executing the application software process and is not waiting for a response from the service 23. In this case, the virtual execution unit 21 does not have an incomplete process state (data being processed), and it is considered that the state is not lost even if the virtual execution unit 21 is stopped.
  • the amount of change in the second usage amount is less than or equal to the threshold, the time during which the service 23 is polled for the service 23 continues for the second time or longer, and the virtual execution is performed in the polling state.
  • the change amount of the first usage amount may exceed the threshold value.
  • the change amount of the second usage amount is, for example, the difference between the maximum value and the minimum value in the latest 5 seconds.
  • the threshold value for the amount of change in the second usage amount is, for example, about 5% of other allocated resources.
  • the second time is, for example, about 10 minutes. During this time, it is preferable that the service 23 is not used except for polling.
  • the virtual execution unit 22 When the virtual execution unit 22 is in the second state 16, even if the virtual execution unit 22 uses the processor resource 22a, it is estimated that the use is caused exclusively by polling. In this case, the virtual execution unit 22 does not have an incomplete processing state (data in the middle of processing), and it is considered that the state is not lost even when stopped. Since other virtual execution units are also polled, even if the virtual execution unit 22 stops polling, it is unlikely that the data that has arrived at the service 23 will remain unprocessed.
  • the resource information 13 and the service information 14 are acquired for a plurality of virtual execution units, and a plurality of conditions are determined based on predetermined conditions regarding the resource information 13 and the service information 14.
  • a virtual execution unit that can be stopped is specified from the virtual execution unit. It can be determined that a virtual execution unit in the first state 15 or the second state 16 can be stopped. As a result, the risk of forcibly stopping a virtual execution unit having an incomplete processing state can be reduced, and the virtual execution unit to be stopped can be appropriately selected.
  • the virtualization management device 10 can reduce the risk of forcibly stopping the virtual execution unit waiting for a response from the service 23 by specifying the virtual execution unit in the first state 15. Even in a virtual execution unit in which the change in the usage amount of the processor resource is not small, it may not have an incomplete processing state because polling is exclusively performed. On the other hand, the virtualization management device 10 can stop the virtual processing unit exclusively for polling by specifying the virtual execution unit in the second state 16.
  • FIG. 2 is a diagram illustrating an example of an information processing system according to the second embodiment.
  • the information processing system according to the second embodiment includes a client 41, an administrator terminal 42, a load balancer 43, a storage server 44, an application management server 45, a container management server 46, a scale control server 100, and container servers 200 and 200a.
  • the client 41 and the administrator terminal 42 are connected to the network 31 that is a wide area network.
  • the load balancer 43, the storage server 44, the application management server 45, the container management server 46, the scale control server 100, and the container servers 200 and 200a are connected to a network 32 that is a local network.
  • the container servers 200 and 200a are server computers that can arrange a plurality of containers.
  • container type virtualization is used as a computer virtualization technique.
  • a container is a virtual execution unit that is lighter than a virtual machine.
  • a part of the hardware resources of the container servers 200 and 200a is allocated to each container.
  • the hardware resources include a CPU resource (CPU processing time), a RAM resource (RAM storage area), and a disk resource (HDD storage area).
  • Each container uses the allocated hardware resources to execute middleware and application software independently of other containers. However, unlike a virtual machine, each container does not have to execute a guest OS. Different users' containers can be mixed and arranged on the same container server. It is also possible to distribute the processing by causing two or more containers to execute the same application software.
  • the scale control server 100 is a server computer that controls the scale of containers arranged in the container servers 200 and 200a. That is, the scale control server 100 dynamically changes the number of containers that execute the same application software in accordance with the current container load. When it is determined that the load is high, the scale control server 100 determines to perform “scale out” to increase the number of containers. When it is determined that the load is low, the scale control server 100 determines to perform “scale-in” to reduce the number of containers. When performing scale-in, the scale control server 100 selects a container to be stopped from the containers arranged in the container servers 200 and 200a.
  • the client 41 is a client computer that transmits a request for application software executed in the container and receives a response corresponding to the request.
  • the application software is a Web server application
  • the client 41 transmits / receives an HTTP (Hypertext Transfer Protocol) message using a Web client such as a Web browser. Since there are a plurality of containers that execute the same application software, the client 41 transmits a request to the load balancer 43 via the networks 31 and 32. The client 41 receives a response from the load balancer 43.
  • the administrator terminal 42 is a client computer used by the application software administrator.
  • the administrator terminal 42 accesses the application management server 45 via the networks 31 and 32 and requests the application management server 45 to place containers on the container servers 200 and 200a.
  • the administrator terminal 42 is connected to the network 31 that is a wide area network.
  • the administrator terminal 42 may be connected to the network 32 that is a local network.
  • the load balancer 43 is a server computer that relays requests from the network 31 to the container servers 200 and 200a and responses from the container servers 200 and 200a to the network 31.
  • the load balancer 43 may be a device called “router”, “gateway”, “reverse proxy server”, or the like.
  • the load balancer 43 selects any one of the two or more containers and transfers the request to the selected container.
  • a container selection method a predetermined algorithm such as round robin is used. In round robin, the first container, the second container, the third container,..., The first container, and two or more containers are cyclically selected.
  • the load balancer 43 monitors whether the application software of each container is operating normally.
  • the load balancer 43 periodically transmits a survival confirmation message to each container (for example, in a cycle of 30 seconds) and waits for a response message to the survival confirmation message.
  • the load balancer 43 determines that the application software is operating normally in the container in which the response message has been received.
  • the load balancer 43 determines that the application software is not operating normally due to a hang-up or the like in a container in which there is no response message continuously for a predetermined number of times (for example, twice).
  • the load balancer 43 does not transfer the request to the container thereafter.
  • the storage server 44 is a server computer that stores data using a non-volatile storage device and provides various services related to the data.
  • the storage server 44 stores a container image including a middleware program and an application software program. Two or more containers that execute the same application software can be activated from one container image.
  • the storage server 44 provides a database service.
  • the containers arranged in the container servers 200 and 200a can request the storage server 44 to refer to and update the database.
  • the storage server 44 provides a queue service. Two or more containers arranged in the container servers 200 and 200a can share the same queue. Each container can request polling from the storage server 44 to check whether data has arrived in the queue. Each container can request the storage server 44 to read or write a queue.
  • the application management server 45 generates a container image based on the setting designated from the administrator terminal 42 and stores the generated container image in the storage server 44. Further, the application management server 45 instructs the container management server 46 to start the container using the container image in response to an instruction from the administrator terminal 42. Further, when the scale control server 100 determines scale-out or scale-in, the application management server 45 receives a notification to that effect from the scale control server 100. Then, the application management server 45 instructs the container management server 46 to add or delete a container in response to the notification from the scale control server 100.
  • the container management server 46 is a server computer that manages containers.
  • the container management server 46 collects information on the load of each container from the container servers 200 and 200a. Further, the container management server 46 causes the container servers 200 and 200a to activate the containers using the container image stored in the storage server 44 in response to an instruction from the application management server 45.
  • the container management server 46 sets the load balancer 43 so that requests are distributed to the container. Further, the container management server 46 causes the container servers 200 and 200a to stop the container in response to an instruction from the application management server 45.
  • FIG. 3 is a block diagram illustrating a hardware example of the scale control server.
  • the scale control server 100 includes a processor 101, a RAM 102, an HDD 103, an image signal processing unit 104, an input signal processing unit 105, a medium reader 106, and a communication interface 107.
  • the unit of the scale control server 100 is connected to the bus 108.
  • the scale control server 100 corresponds to the virtualization management device 10 according to the first embodiment.
  • the CPU 101 corresponds to the control unit 12 of the first embodiment.
  • the RAM 102 or the HDD 103 corresponds to the storage unit 11 of the first embodiment.
  • the client 41, the administrator terminal 42, the load balancer 43, the storage server 44, the application management server 45, the container management server 46, and the container servers 200 and 200a can also be implemented using the same hardware as the scale control server 100.
  • the processor 101 is a processor including an arithmetic circuit that executes program instructions.
  • the processor 101 is a CPU, for example.
  • the processor 101 loads at least a part of the program and data stored in the HDD 103 into the RAM 102 and executes the loaded program.
  • the processor 101 may include a plurality of processor cores, and the scale control server 100 may include a plurality of processors. The processes described below may be executed in parallel using a plurality of processors or processor cores.
  • the RAM 102 is a volatile semiconductor memory that temporarily stores programs executed by the processor 101 and data used for computation.
  • the scale control server 100 may include a memory of a type other than the RAM, or may include a plurality of memories.
  • the HDD 103 is a non-volatile storage device that stores software programs such as an OS, middleware, and application software, and data.
  • the program includes a virtualization management program.
  • the scale control server 100 may include other types of storage devices such as a flash memory and an SSD (Solid State Drive), or may include a plurality of nonvolatile storage devices.
  • the image signal processing unit 104 outputs an image to the display 111 connected to the scale control server 100 in accordance with an instruction from the processor 101.
  • the display 111 may be any type of display such as a CRT (Cathode Ray Tube) display, a liquid crystal display (LCD), a plasma display, or an organic EL (OEL: Organic Electro-Luminescence) display.
  • the input signal processing unit 105 acquires an input signal from the input device 112 connected to the scale control server 100 and outputs it to the processor 101.
  • the input device 112 a mouse, a touch panel, a touch pad, a pointing device such as a trackball, a keyboard, a remote controller, a button switch, or the like can be used.
  • a plurality of types of input devices may be connected to the scale control server 100.
  • the medium reader 106 is a reading device that reads a program and data recorded on the recording medium 113.
  • the recording medium 113 for example, a magnetic disk, an optical disk, a magneto-optical disk (MO), a semiconductor memory, or the like can be used.
  • Magnetic disks include flexible disks (FD: Flexible Disk) and HDDs.
  • Optical discs include CD (Compact Disc) and DVD (Digital Versatile Disc).
  • the medium reader 106 copies the program and data read from the recording medium 113 to another recording medium such as the RAM 102 and the HDD 103, for example.
  • the read program is executed by the processor 101, for example.
  • the recording medium 113 may be a portable recording medium and may be used for distributing programs and data.
  • the recording medium 113 and the HDD 103 may be referred to as computer-readable recording media.
  • the communication interface 107 is an interface that is connected to the network 32 and communicates with other computers via the network 32.
  • the communication interface 107 may be a wired communication interface connected to a communication device such as a switch via a cable, or may be a wireless communication interface connected to a base station via a wireless link.
  • FIG. 4 is a block diagram illustrating an example of a container.
  • the container server 200 has an operating system 201 and a container control unit 202.
  • the container server 200 includes containers 210 and 220.
  • the operating system 201, the container control unit 202, and the containers 210 and 220 can be implemented using program modules executed by the CPU.
  • the container server 200a also has the same function as the container server 200.
  • the operating system 201 is a host OS that manages hardware resources of the container server 200.
  • the container control unit 202 is middleware that operates on the operating system 201.
  • the container control unit 202 allocates some of the hardware resources managed by the operating system 201 to the containers 210 and 220, thereby forming the containers 210 and 220 on the container control unit 202.
  • the container 210 includes middleware 211 and application instances 212.
  • the container 220 includes middleware 221 and an application instance 222.
  • the middleware 211 and 221 provide basic server functions such as a message transmission / reception function with the client 41.
  • the application instances 212 and 222 are those (for example, processes and threads) in which user-defined application software that operates on the middleware 211 and 221 is activated.
  • Application instance 212 and application instance 222 can be activated from the same application program, and execute the same type of processing in response to a request from client 41. Since the containers 210 and 220 use the hardware resources of the operating system 201 that is the host OS, the guest OS need not be executed. The containers 210 and 220 can be activated from the same container image.
  • the container control unit 202 separates the processing of the container 210 and the processing of the container 220 and performs control so that they do not interfere with each other. For example, the container control unit 202 assigns different process ID name spaces to the containers 210 and 220. Thereby, among the processes managed by the operating system 201, the process of the container 210 and the process of the container 220 are distinguished. In addition, the container control unit 202 assigns different network name spaces to the containers 210 and 220. As a result, the communication of the container 210 and the communication of the container 220 among the communication transferred by the operating system 201 are distinguished.
  • the container control unit 202 assigns different user ID name spaces to the containers 210 and 220. Thereby, even if the container 210 and the container 220 use the same user ID, the operating system 201 distinguishes both. Further, the container control unit 202 assigns different mount name spaces to the containers 210 and 220. Thereby, a part of the file system managed by the operating system 201 is distinguished as the file system of the container 210 and the file system of the container 220.
  • the container control unit 202 identifies a set of processes (process group) of the container 210 and a process group of the container 220 among the processes managed by the operating system 201.
  • the container control unit 202 limits the use of hardware resources to a certain range for each process group. As a result, the container control unit 202 can allocate hardware resources to the containers 210 and 220.
  • the container control unit 202 provides a virtual bridge function for transferring packets between the operating system 201 and the containers 210 and 220.
  • the container 210 and the container 220 communicate via a virtual bridge.
  • the containers 210 and 220 communicate with the outside of the container server 200, the containers 210 and 220 output a packet to the operating system 201 via the virtual bridge, and acquire the packet from the operating system 201 via the virtual bridge.
  • the control in which the container control unit 202 described above separates the processing of the container 210 and the processing of the container 220 so that they do not interfere with each other can be realized by using the function of the OS.
  • FIG. 5 is a diagram illustrating an example of container scale-out and scale-in. Assume that three containers 210, 220, and 230 are activated as containers for executing certain application software. Then, the load balancer 43 allocates a plurality of requests received from the client 41 to the containers 210, 220, and 230. For example, the load balancer 43 evenly transfers a plurality of requests to the containers 210, 220, and 230 by round robin. The load balancer 43 receives responses from the containers 210, 220, and 230 and transfers the responses to the client 41.
  • the load balancer 43 allocates a plurality of requests received from the client 41 to the containers 210, 220, 230, and 240. For example, the load balancer 43 equally transfers a plurality of requests to the containers 210, 220, 230, and 240 by round robin. The load balancer 43 receives responses from the containers 210, 220, 230, and 240 and transfers the responses to the client 41.
  • the load balancer 43 allocates a plurality of requests received from the client 41 to the containers 210 and 220. For example, the load balancer 43 evenly transfers a plurality of requests to the containers 210 and 220 by round robin.
  • the load balancer 43 receives a response from the containers 210 and 220 and transfers the response to the client 41.
  • the container 230 is deleted.
  • a container to be deleted is selected from a plurality of containers.
  • the scale control server 100 selects the container to be deleted by a method as described later.
  • FIG. 6 is a diagram illustrating an example of an application setting table.
  • the application management server 45 has the application setting table 121.
  • the application setting table 121 includes items of application ID, minimum number of instances, memory capacity, disk capacity, CPU threshold value, memory threshold value, monitoring time 1, monitoring time 2, and monitoring time 3.
  • One record of the application setting table 121 corresponds to one application software.
  • the values of at least some items are specified from the administrator terminal 42 when generating the container image.
  • an application software identifier is registered. Since the same application software can be executed in multiple containers, there can be multiple application instances with the same application ID.
  • the application ID may be given by the application management server 45 or may be specified by the administrator terminal 42.
  • a lower limit of the number of application instances is registered. Scale-in does not reduce application instances below the minimum number of instances. The minimum number of instances is designated from the administrator terminal 42.
  • the RAM resource amount (size of the RAM storage area) per container desired by the administrator terminal 42 is registered.
  • the disk capacity item the disk resource amount (size of HDD storage area) per container desired by the administrator terminal 42 is registered.
  • this memory capacity and disk capacity are allocated to each container.
  • a memory capacity and a disk capacity less than these values may be allocated to each container.
  • the memory capacity and the disk capacity are designated from the administrator terminal 42.
  • a threshold value of a CPU resource serving as a reference for determining whether to perform scale-out is registered. Scale-out is determined when the current CPU utilization exceeds the CPU threshold in at least one container.
  • a threshold value of a RAM resource that is a reference for determining whether or not to perform scale-out is registered. Scale-out is determined if the current RAM usage in at least one container exceeds the memory threshold.
  • the CPU threshold and the memory threshold are specified from the administrator terminal 42.
  • monitoring time 1 is a threshold value of an elapsed time after the load balancer 43 excludes a container from a request distribution target.
  • the monitoring time 2 is a threshold value for a time during which a certain container does not use the service of the storage server 44 at all.
  • the monitoring time 3 is a threshold value of a time during which a container does not use a service other than polling for the storage server 44.
  • the monitoring time 1, the monitoring time 2, and the monitoring time 3 may be given by the application management server 45 or may be designated by the administrator terminal 42.
  • the default value of monitoring time 1 is 30 minutes
  • the default value of monitoring time 2 is 5 minutes
  • the default value of monitoring time 3 is 10 minutes. Details of how to use the monitoring time 1, the monitoring time 2, and the monitoring time 3 will be described later.
  • FIG. 7 is a diagram illustrating an example of an application instance table.
  • the scale instance server 122 has the application instance table 122.
  • the application instance table 122 has items of application ID and instance ID.
  • One record of the application instance table 122 corresponds to one application software.
  • an application ID similar to that in the application setting table 121 is registered.
  • instance ID item identifiers of application instances are listed. Each time a container is added, the application management server 45 assigns an instance ID to the added container.
  • FIG. 8 is a diagram illustrating an example of a container resource table.
  • the container resource table 123 is held by the container management server 46.
  • the container resource table 123 includes items of instance ID, time, CPU usage rate, memory usage amount, and disk usage amount.
  • instance ID item an instance ID similar to that of the application instance table 122 is registered.
  • time item the time when the CPU usage rate, the memory usage amount, and the disk usage amount are measured is registered.
  • container resource table 123 the CPU usage rate, the memory usage amount, and the disk usage amount for at least the latest 5 seconds are registered.
  • the CPU usage rate measured at each time of each container is registered in the item of CPU usage rate.
  • the RAM usage measured at each time of each container is registered.
  • the disk usage amount item the HDD usage amount measured at each time of each container is registered.
  • the container management server 46 periodically collects the CPU usage rate, the memory usage amount, and the disk usage amount of each container from the container servers 200 and 200a.
  • FIG. 9 is a diagram illustrating an example of a sorting table and a communication log table.
  • the distribution table 124 is included in the load balancer 43.
  • the distribution table 124 includes items of address, instance ID, stop flag, and stop time.
  • the address field the address of the application software that is the destination of the request transmitted by the client 41 is registered.
  • the address is included in the request.
  • One address corresponds to one application software.
  • the address is, for example, an IP (Internet Protocol) address or a URL (Uniform Resource Locator).
  • IP Internet Protocol
  • URL Uniform Resource Locator
  • stop flag item a flag indicating whether or not it is excluded from the request distribution target is registered.
  • the stop flag False indicates that it is not excluded from the distribution target.
  • Stop flag True indicates that the flag is excluded from the distribution target.
  • a container that does not respond to the existence confirmation message is excluded from the request distribution target because there is a possibility that the container has stopped abnormally due to a hangup or the like.
  • the time when the stop flag is rewritten from False to True that is, the time excluded from the request distribution target is registered.
  • the communication log table 125 is included in the load balancer 43.
  • the communication log table 125 includes items of address, instance ID, communication direction, and transfer time. One record in the communication log table 125 corresponds to one transfer process of the load balancer 43.
  • the address field the address of the application software of the transfer destination or sender is registered.
  • the instance ID item an instance ID of a transfer destination or transmission source container (that is, an application instance) is registered.
  • the type of message transferred by the load balancer 43 is registered in the item of communication direction.
  • the communication direction distinguishes a request from the client 41 to the container server 200, 200a and a response from the container server 200, 200a to the client 41.
  • the transfer time item the time at which the load balancer 43 transferred the request or response is registered.
  • FIG. 10 is a diagram illustrating an example of a service log table.
  • the service log table 126 is included in the storage server 44.
  • the service log table 126 includes items of application ID, instance ID, request type, and request time.
  • One record in the service log table 126 corresponds to one request from the container server 200, 200a to the storage server 44.
  • the application ID item the application ID of the requesting application software is registered.
  • the instance ID item an instance ID of a requesting container (that is, an application instance) is registered.
  • the request type item the type of service request accepted by the storage server 44 is registered.
  • the request time item the time when the storage server 44 received the request is registered.
  • the types of service requests include database reference, database update, queue polling, queue read and queue write.
  • the storage server 44 searches the database for data corresponding to the specified search condition, and returns the searched database.
  • the storage server 44 writes the specified data to the database and returns a success or failure of the writing.
  • the storage server 44 checks whether data is stored in the designated queue, and returns the presence / absence of data.
  • the storage server 44 reads data from the designated queue and returns the read data.
  • the storage server 44 writes the specified data to the specified queue and returns a success or failure of the write.
  • queue polling may be performed periodically by the same container.
  • a plurality of containers may share the same queue, and the plurality of containers may periodically perform queue polling for the same queue.
  • FIG. 11 is a sequence diagram illustrating an example of communication between servers.
  • the application management server 45 receives a request for starting application software from the administrator terminal 42. This request includes the minimum number of instances, memory capacity, disk capacity, CPU threshold, and memory threshold. This request may include monitoring time 1, monitoring time 2, and monitoring time 3. When the monitoring time 1, the monitoring time 2, and the monitoring time 3 are not included, the application management server 45 sets the default value.
  • Application management server 45 assigns an application ID to application software. Further, the application management server 45 determines the number of containers to be activated for the first time, and assigns an instance ID to each container to be activated (that is, each application instance). The number of containers activated for the first time is, for example, the minimum number of instances. The application management server 45 adds a record to the application setting table 121. Further, the application management server 45 generates a container image including the application program, and stores the container image in the storage server 44 (S10). The application program is designated from the administrator terminal 42.
  • the application management server 45 instructs the container management server 46 to start the container. At this time, the application management server 45 designates the application ID and the instance ID of the container to be activated (S11). The container management server 46 acquires a container image corresponding to the designated application ID from the storage server 44 (S12). The container management server 46 causes the container server 200 to activate the container. At this time, the container management server 46 transmits the container image to the container management server 46 and designates the application ID and the instance ID. The container control unit 202 of the container server 200 activates the designated number of containers (S13).
  • the container management server 46 designates the address of the application software and the instance ID of the activated container, and instructs the load balancer 43 to register an application instance.
  • the load balancer 43 registers the address and instance ID in the distribution table 124 (S14). As a result, the load balancer 43 starts distributing requests to the activated containers.
  • the container management server 46 notifies the scale control server 100 that the container has been started. At this time, the container management server 46 designates an application ID and an instance ID.
  • the scale control server 100 registers the application ID and the instance ID in the application instance table 122 (S15).
  • the load balancer 43 receives a request from the client 41. Then, the load balancer 43 refers to the distribution table 124, selects a transfer destination container, and transfers the request to the selected container (S16). The load balancer 43 records a transfer log in the communication log table 125.
  • the application instance of the container on the container server 200 When the application instance of the container on the container server 200 receives the request, it executes processing according to the request. At this time, the application instance may use a service provided by the storage server 44 (S17). The application instance transmits a response including the processing result to the load balancer 43 (S18). The load balancer 43 transfers the response to the client 41. The load balancer 43 records a transfer log in the communication log table 125.
  • the scale control server 100 periodically acquires setting information registered in the application setting table 121 from the application management server 45 (S19).
  • the container control unit 202 of the container server 200 measures the CPU usage rate, the memory usage amount, and the disk usage amount of each container.
  • the container management server 46 periodically acquires resource information indicating the CPU usage rate, the memory usage amount, and the disk usage amount of each container from the container server 200 and registers it in the container resource table 123 (S20).
  • the scale control server 100 periodically acquires the resource information registered in the container resource table 123 from the container management server 46 (S21).
  • the scale control server 100 periodically acquires distribution information registered in the distribution table 124 from the load balancer 43. Further, the scale control server 100 periodically acquires a communication log registered in the communication log table 125 from the load balancer 43 (S22). Further, the scale control server 100 periodically acquires the service log registered in the service log table 126 from the storage server 44 (S23).
  • FIG. 12 is a sequence diagram (continued) illustrating an example of communication between servers.
  • the scale control server 100 determines whether or not each application software needs to be scaled out based on the information collected in steps S19 and S21 to S23.
  • the scale control server 100 determines that application software in which the CPU usage rate of at least one container exceeds the CPU threshold or the memory usage of at least one container exceeds the memory threshold should be scaled out.
  • the scale control server 100 determines whether or not each application software needs to be scaled in based on the information collected in steps S19 and S21 to S23. In the case of scale-in, the scale control server 100 selects a container to be stopped. A method for determining scale-in will be described later.
  • the scale control server 100 When the scale-out is determined, the scale control server 100 notifies the application management server 45 of the scale-out (S24). At this time, the scale control server 100 designates the application ID of the application software to be scaled out. The application management server 45 assigns an instance ID to the container to be added. The application management server 45 instructs the container management server 46 to add a container (S25). At this time, the application management server 45 designates the application ID and the instance ID of the container to be added.
  • the container management server 46 acquires a container image corresponding to the designated application ID from the storage server 44 (S26).
  • the container management server 46 causes the container server 200 to activate a container (S27).
  • the container management server 46 transmits the container image to the container management server 46 and designates the application ID and the instance ID.
  • the container management server 46 designates the address of the application software and the instance ID of the added container, and instructs the load balancer 43 to register the application instance (S28). As a result, the load balancer 43 starts distributing requests to the added container.
  • the container management server 46 notifies the scale control server 100 that the container has been started. At this time, the container management server 46 designates an application ID and an instance ID. The scale control server 100 adds the instance ID in association with the application ID to the application instance table 122 (S29).
  • the scale control server 100 notifies the application management server 45 of the scale-in (S30). At this time, the scale control server 100 designates the application ID of the application software to be scaled out and the instance ID of the container to be stopped. The application management server 45 instructs the container management server 46 to delete the container (S31). At this time, the application management server 45 designates an application ID and an instance ID.
  • the container management server 46 specifies the address of the application software and the instance ID of the container to be stopped, and instructs the load balancer 43 to delete the application instance (S32).
  • the load balancer 43 deletes the specified instance ID from the distribution table 124. As a result, the load balancer 43 prevents the request from being distributed to the container to be stopped.
  • the container management server 46 designates the application ID and the instance ID, and causes the container server 200 to stop the container (S33).
  • the container control unit 202 of the container server 200 forcibly stops the application instance of the designated container, and releases hardware resources allocated to the container.
  • FIG. 13 is a block diagram illustrating a function example of the scale control server.
  • the scale control server 100 includes an instance information storage unit 131, a setting information storage unit 132, a resource information storage unit 133, a distribution information storage unit 134, a communication log storage unit 135, and a service log storage unit 136.
  • the scale control server 100 also includes an information collection unit 141, an instance information management unit 142, a scale determination unit 143, and a scale change notification unit 144.
  • the instance information storage unit 131, the setting information storage unit 132, the resource information storage unit 133, the distribution information storage unit 134, the communication log storage unit 135, and the service log storage unit 136 use, for example, a storage area secured in the RAM 102 or the HDD 103.
  • the information collection unit 141, the instance information management unit 142, the scale determination unit 143, and the scale change notification unit 144 are implemented using program modules executed by the CPU 101, for example.
  • the instance information storage unit 131 stores an application instance table 122, that is, instance information.
  • the setting information storage unit 132 stores a table similar to the application setting table 121, that is, collected setting information.
  • the resource information storage unit 133 stores a table similar to the container resource table 123, that is, collected resource information.
  • the distribution information storage unit 134 stores a table similar to the distribution table 124, that is, collected distribution information.
  • the communication log storage unit 135 stores a table similar to the communication log table 125, that is, collected communication logs.
  • the service log storage unit 136 stores a table similar to the service log table 126, that is, collected service logs.
  • the information collection unit 141 periodically collects various types of information from the load balancer 43, the storage server 44, the application management server 45, and the container management server 46.
  • the information collection unit 141 acquires setting information from the application management server 45 and stores the acquired setting information in the setting information storage unit 132.
  • the information collection unit 141 acquires resource information from the container management server 46 and stores the acquired resource information in the resource information storage unit 133.
  • the information collection unit 141 acquires distribution information and a communication log from the load balancer 43, stores the acquired distribution information in the distribution information storage unit 134, and stores the acquired communication log in the communication log storage unit 135.
  • the information collection unit 141 acquires a service log from the storage server 44 and stores the acquired service log in the service log storage unit 136.
  • the instance information management unit 142 manages the application instance table 122 stored in the instance information storage unit 131.
  • the instance information management unit 142 registers the designated application ID and instance ID in the application instance table 122 when the container management server 46 notifies the activation of the container. Also, when the scale determination unit 143 selects a scale-in target container, the instance information management unit 142 deletes the instance ID of the selected container from the application instance table 122.
  • the scale determination unit 143 periodically determines whether or not each application software needs to be scaled out and scaled in. In the case of scale-in, the scale determination unit 143 selects a container to be stopped from the containers arranged in the container servers 200 and 200a.
  • the scale determination unit 143 refers to information stored in the instance information storage unit 131, the setting information storage unit 132, the resource information storage unit 133, the distribution information storage unit 134, the communication log storage unit 135, and the service log storage unit 136.
  • the scale change notification unit 144 notifies the application management server 45 of the scale change.
  • the application management server 45 is notified of the application ID of the target application software.
  • the scale change notification unit 144 notifies the application management server 45 of the application ID of the target application software and the instance ID of the container to be stopped.
  • FIG. 14 is a flowchart illustrating a procedure example of scale-in determination.
  • the scale determination unit 143 selects one application software.
  • the scale determination unit 143 refers to the application instance table 122 and calculates the number of application instances (that is, the number of containers) corresponding to the application software selected in step S40.
  • step S42 The scale determination unit 143 determines whether the number of instances calculated in step S41 is greater than the minimum number of instances included in the setting information. If the number of instances is greater than the minimum number of instances, the process proceeds to step S43. If the number of instances is equal to or less than the minimum number of instances, it is determined that the application software selected in step S40 does not need to be scaled in, and the process proceeds to step S60.
  • the scale determination unit 143 refers to the distribution information and determines whether any of the application instances corresponding to the application software selected in step S40 is excluded from the distribution target. If there is an application instance that is not a distribution target, the process proceeds to step S44. If there is no application instance that is not a distribution target, the process proceeds to step S47.
  • the scale determination unit 143 extracts the stop time of the application instances that are not to be distributed from the distribution information, and calculates the elapsed time from the stop time to the current time.
  • the scale determination unit 143 determines whether the elapsed time calculated in step S44 exceeds the monitoring time 1 included in the setting information. The monitoring time 1 is, for example, about 30 minutes. If the elapsed time exceeds the monitoring time 1, the process proceeds to step S46. If the elapsed time is equal to or less than the monitoring time 1, the process proceeds to step S47.
  • the scale determination unit 143 determines to scale in the application software selected in step S40. In addition, the scale determination unit 143 selects an application instance corresponding to steps S43 and S45 as the application instance to be stopped. When there are two or more application instances corresponding to Steps S43 and S45, the scale determination unit 143 may select all of them as stop targets. Then, the process proceeds to step S60.
  • the scale determination unit 143 searches the communication log for application instances that have received a request but have not yet returned a response at this time, among application instances that are to be distributed.
  • the scale determination unit 143 determines whether all of the application instances to be distributed are unresponsive application instances. If all application instances have not yet responded, it is determined that the application software selected in step S40 cannot be scaled in, and the process proceeds to step S60. If there is an application instance that is not yet responded, the process proceeds to step S49.
  • FIG. 15 is a flowchart (continuation) illustrating an example of the procedure of scale-in determination.
  • the scale determination unit 143 calculates changes in the CPU usage rate, the memory usage amount, and the disk usage amount with reference to the resource information for each candidate application instance. For example, the scale determination unit 143 calculates the difference between the maximum value and the minimum value as the amount of change in the CPU usage rate from the CPU usage rate for the last 5 seconds. In addition, the scale determination unit 143 calculates the difference between the maximum value and the minimum value as the amount of change in the memory usage from the memory usage over the last 5 seconds. Also, the scale determination unit 143 calculates the difference between the maximum value and the minimum value as the change amount of the disk usage amount from the disk usage amount for the latest 5 seconds.
  • the scale determination unit 143 determines whether there is an application instance in the candidate application instances in which the change in the memory usage is sufficiently small and the change in the disk usage is sufficiently small.
  • the change in the memory usage is sufficiently small, for example, when the change is smaller than a threshold (for example, about 5% of the allocated RAM resource).
  • the change in the disk usage is sufficiently small, for example, when the change is smaller than a threshold (for example, about 5% of the allocated HDD resource). If there is a corresponding application instance, the process proceeds to step S52. If there is no corresponding application instance, it is determined that the application software selected in step S40 cannot be scaled in, and the process proceeds to step S60.
  • the scale determination unit 143 determines whether there is an application instance having a sufficiently small change in CPU usage rate among the application instances corresponding to step S51.
  • the change in the CPU usage rate is sufficiently small, for example, when the amount of change is smaller than a threshold (for example, about 5% of the allocated CPU resource). If there is a corresponding application instance, the process proceeds to step S53. If there is no corresponding application instance, the process proceeds to step S56.
  • the scale determination unit 143 searches the service log for the service request from the application instance corresponding to steps S51 and S52, and the latest “monitoring time 2”.
  • the monitoring time 2 is included in the setting information, and is about 5 minutes, for example.
  • step S54 The scale determination unit 143 determines whether one or more service requests are retrieved in step S53, that is, whether the application instance corresponding to steps S51 and S52 has recently used the service. When the service is used, it is determined that the application software selected in step S40 cannot be scaled in, and the process proceeds to step S60. If the service is not used, the process proceeds to step S55.
  • the scale determination unit 143 determines to scale in the application software selected in step S40. In addition, the scale determination unit 143 selects an application instance that corresponds to steps S51 and S52 and does not use a service as an application instance to be stopped. When there are two or more corresponding application instances, the scale determination unit 143 selects one or a predetermined number of them as a stop target. The upper limit of the number of application instances to be reduced by one scale-in may be fixed in advance, or may be registered in the setting information for each application software. Then, the process proceeds to step S60.
  • the scale determination unit 143 searches the service log for the service request from the application instance corresponding to step S51 and the latest “monitoring time 3”.
  • the monitoring time 3 is included in the setting information, and is about 10 minutes, for example.
  • the scale determination unit 143 determines whether the application instance corresponding to step S51 has not recently used the service or whether the service is only queue polling. If there is service use other than queue polling, it is determined that the application software selected in step S40 cannot be scaled in, and the process proceeds to step S60. If no service is used or only queue polling is used, the process proceeds to step S58. Note that periodic database reference may be determined to be processing equivalent to queue polling.
  • the scale determination unit 143 searches the service log for queue polling from an application instance other than the candidate to be stopped corresponding to steps S51 and S57 and having the latest “monitoring time 3”. The scale determination unit 143 determines whether there is another application instance that performs queue polling. If another application instance exists, the process proceeds to step S59. If no other application instance exists, it is determined that the application software selected in step S40 cannot be scaled in, and the process proceeds to step S60.
  • the scale determination unit 143 determines to scale in the application software selected in step S40. In addition, the scale determination unit 143 selects an application instance corresponding to steps S51, S57, and S58 as the application instance to be stopped. When there are two or more corresponding application instances, the scale determination unit 143 selects one or a predetermined number of them as a stop target. Then, the process proceeds to step S60.
  • step S60 The scale determination unit 143 determines whether or not all application software has been selected in step S40. If all are selected, the scale-in determination ends, and if there is an unselected one, the process proceeds to step S40.
  • the period (monitoring time 2) for determining whether or not the service is used in step S54 is shorter than the period (monitoring time 3) for determining whether or not the service is used in step S57.
  • An application instance in which all of the CPU usage rate, the memory usage amount, and the disk usage amount have not changed for more than 5 seconds is presumed to have received no request or to wait for a response from the storage server 44. The Since there is a low possibility of waiting for a response for a long time, the monitoring time 2 may be a relatively short time.
  • an application instance whose CPU usage rate has changed but whose memory usage and disk usage have not changed for more than 5 seconds is only performing queue polling. Since data may arrive from the outside from the queue, it is preferable to set the monitoring time 3 to a slightly longer time from the viewpoint of process safety. In addition, it is determined that an application instance that performs only queue polling can be stopped only when another application instance that performs queue polling similarly exists. This can reduce the risk that data that has arrived in the queue will remain unprocessed.
  • the period (monitoring time 3) for determining whether or not the service is used in step S57 may be changed according to the type of service. For example, it is conceivable that the monitoring time 3 is set relatively short for the reference service, and the monitoring time 3 is set relatively long for the update service. This is because even if an application instance that uses a reference service suddenly stops, there is little risk of data integrity being lost. On the other hand, if an application instance that uses an update service suddenly stops during processing, there is a risk that the integrity of the data is impaired.
  • each of a plurality of containers that execute the same application software it is determined whether or not each of a plurality of containers that execute the same application software can be stopped during scale-in.
  • a container in which the CPU usage rate, the memory usage amount, and the disk usage amount have not changed substantially for 5 seconds or more and the service of the storage server 44 has not been used for 5 minutes or more is determined to be able to be stopped. Further, it is determined that a container in which the memory usage and the disk usage have not substantially changed for 5 seconds or more and the service other than queue polling is not used for 5 minutes or more can be stopped. It is determined that the other containers cannot be stopped.
  • a method of selecting a container to be stopped As a method of selecting a container to be stopped, a method of selecting a container in which none of the CPU usage rate, the memory usage amount, and the disk usage amount has changed can be considered. However, with this method, there is a risk that a container waiting for a response from an external service is erroneously stopped. Also, with this method, there is a possibility that a container whose CPU usage rate is changing cannot be stopped because it does not have an incomplete processing state but periodically performs queue polling. On the other hand, according to the second embodiment, it is possible to accurately estimate whether or not each container has an incomplete processing state.

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

The purpose of the present invention is to appropriately select a virtual execution unit to be shut down. A storage unit (11) stores, for each virtual execution unit (21, 22), both resource information (13) which indicates a first usage amount relating to processor resources and a second usage amount relating to other resources, and service information (14) which indicates usage of a service (23). A control unit (12) identifies a virtual execution unit that can be shut down, on the basis of predetermined criteria. The predetermined criteria indicate either: a virtual execution unit in a first state (15), that is, a virtual execution unit for which both an amount of change in the first usage amount and an amount of change in the second usage amount are equal to or less than a threshold value, and which has not used the service (23) for at least a first period of time; or a virtual execution unit in a second state (16), that is, a virtual execution unit for which an amount of change in the second usage amount is equal to or less than a threshold value, and which has been using the service (23) by polling the service (23) for at least a second period of time, during which other virtual execution units were also polling the service (23).

Description

仮想化管理プログラム、仮想化管理装置および仮想化管理方法Virtualization management program, virtualization management apparatus, and virtualization management method
 本発明は仮想化管理プログラム、仮想化管理装置および仮想化管理方法に関する。 The present invention relates to a virtualization management program, a virtualization management device, and a virtualization management method.
 現在、コンピュータ仮想化技術を用いて、同じ物理マシン上に複数の仮想マシンや複数のコンテナなどの複数の仮想実行単位を稼働させることがある。複数の仮想実行単位それぞれに対してプロセッサ能力やメモリ領域などのリソースを割り当てることができ、各仮想実行単位が使用できるリソースは割り当てられた範囲に限定される。ある仮想実行単位上では、他の仮想実行単位から影響を受けずに(他の仮想実行単位とは独立に)アプリケーションソフトウェアを実行することができる。複数の仮想実行単位に同じ種類のアプリケーションソフトウェアを実行させ、これら複数の仮想実行単位を用いて当該アプリケーションソフトウェアの処理を分散化することもできる。 Currently, multiple virtual execution units such as multiple virtual machines and multiple containers may be operated on the same physical machine using computer virtualization technology. Resources such as processor capacity and memory area can be allocated to each of the plurality of virtual execution units, and the resources that can be used by each virtual execution unit are limited to the allocated range. On a virtual execution unit, application software can be executed without being influenced by other virtual execution units (independent of other virtual execution units). The same type of application software can be executed in a plurality of virtual execution units, and the processing of the application software can be distributed using the plurality of virtual execution units.
 このとき、同じ種類のアプリケーションソフトウェアを実行する仮想実行単位の数を動的に変更することがある。アプリケーションソフトウェアの負荷が高いとき(例えば、単位時間当たりのリクエスト数が多いとき)は仮想実行単位を増やし、負荷が低いとき(例えば、単位時間当たりのリクエスト数が少ないとき)は仮想実行単位を減らすことが考えられる。これにより、負荷が低いときはリソースを節約し、負荷が高いときのみ所要のリソースを使用することが可能となる。同じ種類のアプリケーションソフトウェアを実行する仮想実行単位の数を「スケール」、仮想実行単位を増やすことを「スケールアウト」、仮想実行単位を減らすことを「スケールイン」と言うことがある。 At this time, the number of virtual execution units that execute the same type of application software may be dynamically changed. Increase the virtual execution unit when the application software load is high (for example, when the number of requests per unit time is large), and decrease the virtual execution unit when the load is low (for example, when the number of requests per unit time is small) It is possible. As a result, resources can be saved when the load is low, and the required resources can be used only when the load is high. The number of virtual execution units that execute the same type of application software may be referred to as “scale”, increasing the virtual execution units may be referred to as “scale-out”, and decreasing the virtual execution units may be referred to as “scale-in”.
 例えば、複数の仮想サーバを含むクラスタシステムを管理するサーバ管理装置が提案されている。提案のサーバ管理装置は、仮想サーバ群のプロセッサ使用率、メモリ使用率、待ちキュー数、データベースコネクション数、ガーベッジコレクションの発生頻度およびクライアントとの間のセッション数を収集する。サーバ管理装置は、上記の6個の指標値の全てが閾値以下である場合、仮想サーバ群をスケールイン可能と判定する。スケールイン可能である場合、サーバ管理装置は、稼働中の仮想サーバ数が最も少ない物理サーバを検索し、該当する物理サーバ上の何れかの仮想サーバを停止させる。 For example, a server management apparatus that manages a cluster system including a plurality of virtual servers has been proposed. The proposed server management device collects the processor usage rate, the memory usage rate, the number of waiting queues, the number of database connections, the frequency of occurrence of garbage collection, and the number of sessions with clients of the virtual server group. The server management apparatus determines that the virtual server group can be scaled in when all of the six index values are equal to or less than the threshold value. When the scale-in is possible, the server management apparatus searches for a physical server with the smallest number of operating virtual servers and stops any virtual server on the corresponding physical server.
 また、例えば、仮想サーバの現在の負荷がスケールイン閾値を下回ったとき、過去の負荷変動の履歴から今後の負荷変動を予測し、今後も負荷が継続的にスケールイン閾値を下回ると予測される場合にスケールインを実行するサーバ管理装置が提案されている。また、例えば、仮想マシンのトラフィック種別毎の通信量を収集し、通信量に基づいて仮想マシンの増加台数または減少台数を決定する運用管理装置が提案されている。 Also, for example, when the current load of the virtual server falls below the scale-in threshold, future load fluctuations are predicted from the history of past load fluctuations, and it is predicted that the load will continue to fall below the scale-in threshold in the future. In some cases, a server management apparatus that performs scale-in has been proposed. In addition, for example, an operation management apparatus that collects the communication amount for each traffic type of the virtual machine and determines the increase or decrease of the virtual machine based on the communication amount is proposed.
特開2011-90594号公報JP 2011-90594 A 特開2011-118525号公報JP 2011-118525 A 特開2015-149578号公報JP2015-149578 A
 スケールインを行う場合、複数の仮想実行単位のうちの何れの仮想実行単位を停止させるかが問題となる。未完了の処理のステート(処理途中のデータ)を有している仮想実行単位を強制停止させてしまうと、当該ステートが失われてしまう。よって、未完了の処理のステートを有していない仮想実行単位を選択することが好ましい。 When performing scale-in, it becomes a problem which virtual execution unit of a plurality of virtual execution units is to be stopped. If a virtual execution unit having an incomplete processing state (data in the middle of processing) is forcibly stopped, the state is lost. Therefore, it is preferable to select a virtual execution unit that does not have an incomplete processing state.
 停止させる仮想実行単位を選択する1つの方法としては、仮想実行単位毎にプロセッサ使用率、メモリ使用量、ディスク使用量などの変化を監視し、ほとんど変化がない仮想実行単位を選択する方法が考えられる。しかし、アプリケーションソフトウェアによっては、プロセッサ使用率などに変化がなくても、仮想実行単位が未完了の処理のステートを有している場合がある。逆に、プロセッサ使用率などが間欠的に変化していても、仮想実行単位が未完了の処理のステートを有していない場合もある。 One method for selecting a virtual execution unit to be stopped is to monitor changes in processor usage, memory usage, disk usage, etc. for each virtual execution unit, and select a virtual execution unit with little change. It is done. However, depending on the application software, the virtual execution unit may have an incomplete processing state even if the processor usage rate does not change. On the other hand, even if the processor usage rate changes intermittently, the virtual execution unit may not have an incomplete processing state.
 1つの側面では、本発明は、停止させる仮想実行単位を適切に選択できる仮想化管理プログラム、仮想化管理装置および仮想化管理方法を提供することを目的とする。 In one aspect, an object of the present invention is to provide a virtualization management program, a virtualization management apparatus, and a virtualization management method that can appropriately select a virtual execution unit to be stopped.
 1つの態様では、以下の処理をコンピュータに実行させる仮想化管理プログラムが提供される。プロセッサリソースおよびプロセッサリソース以外の他のリソースが割り当てられた複数の仮想実行単位それぞれに対して、プロセッサリソースに関する第1使用量および他のリソースに関する第2使用量を示すリソース情報と、複数の仮想実行単位のコンピュータ以外から提供されるサービスの利用状況を示すサービス情報とを取得する。リソース情報およびサービス情報に関する所定の条件に基づいて、複数の仮想実行単位より停止可能な仮想実行単位を特定する。所定の条件は、第1使用量の変化量および第2使用量の変化量が閾値以下であり、かつ、サービスを利用しない時間が第1の時間以上継続している第1の状態の仮想実行単位、または、第2使用量の変化量が閾値以下であり、サービスの利用がサービスに対するポーリングである時間が第2の時間以上継続しており、かつ、ポーリングを当該仮想実行単位以外の他の仮想実行単位も行っている第2の状態の仮想実行単位を示す。 In one aspect, a virtualization management program that causes a computer to execute the following processing is provided. For each of a plurality of virtual execution units to which a resource other than a processor resource and a processor resource is allocated, resource information indicating a first usage amount related to the processor resource and a second usage amount related to another resource, and a plurality of virtual executions Service information indicating the usage status of services provided from other than the unit computer is acquired. A virtual execution unit that can be stopped from a plurality of virtual execution units is specified based on predetermined conditions relating to resource information and service information. The predetermined condition is that the amount of change in the first usage amount and the amount of change in the second usage amount are equal to or less than a threshold value, and the virtual execution in the first state in which the service is not used for a first time or more. The unit or the amount of change in the second usage amount is less than or equal to the threshold, the time when the service is being used for polling the service continues for the second time or more, and the polling is performed in other than the virtual execution unit. The virtual execution unit of the 2nd state which is also performing the virtual execution unit is shown.
 また、1つの態様では、記憶部と制御部とを有する仮想化管理装置が提供される。また、1つの態様では、コンピュータが実行する仮想化管理方法が提供される。 Also, in one aspect, a virtualization management device having a storage unit and a control unit is provided. In one aspect, a virtualization management method executed by a computer is provided.
 1つの側面では、停止させる仮想実行単位を適切に選択できる。
 本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
In one aspect, the virtual execution unit to be stopped can be appropriately selected.
These and other objects, features and advantages of the present invention will become apparent from the following description taken in conjunction with the accompanying drawings which illustrate preferred embodiments by way of example of the present invention.
第1の実施の形態の仮想化管理装置の例を示す図である。It is a figure which shows the example of the virtualization management apparatus of 1st Embodiment. 第2の実施の形態の情報処理システムの例を示す図である。It is a figure which shows the example of the information processing system of 2nd Embodiment. スケール制御サーバのハードウェア例を示すブロック図である。It is a block diagram which shows the hardware example of a scale control server. コンテナの例を示すブロック図である。It is a block diagram which shows the example of a container. コンテナのスケールアウトとスケールインの例を示す図である。It is a figure which shows the example of the scale-out and scale-in of a container. アプリケーション設定テーブルの例を示す図である。It is a figure which shows the example of an application setting table. アプリケーションインスタンステーブルの例を示す図である。It is a figure which shows the example of an application instance table. コンテナリソーステーブルの例を示す図である。It is a figure which shows the example of a container resource table. 振り分けテーブルと通信ログテーブルの例を示す図である。It is a figure which shows the example of a distribution table and a communication log table. サービスログテーブルの例を示す図である。It is a figure which shows the example of a service log table. サーバ間の通信例を示すシーケンス図である。It is a sequence diagram which shows the example of communication between servers. サーバ間の通信例を示すシーケンス図(続き)である。It is a sequence diagram (continuation) which shows the example of communication between servers. スケール制御サーバの機能例を示すブロック図である。It is a block diagram which shows the function example of a scale control server. スケールイン判定の手順例を示すフローチャートである。It is a flowchart which shows the example of a procedure of scale-in determination. スケールイン判定の手順例を示すフローチャート(続き)である。It is a flowchart (continuation) which shows the example of a procedure of scale-in determination.
 以下、本実施の形態を図面を参照して説明する。
 [第1の実施の形態]
 図1は、第1の実施の形態の仮想化管理装置の例を示す図である。
Hereinafter, the present embodiment will be described with reference to the drawings.
[First Embodiment]
FIG. 1 is a diagram illustrating an example of a virtualization management apparatus according to the first embodiment.
 第1の実施の形態の仮想化管理装置10は、仮想実行単位21,22を含む複数の仮想実行単位を管理する。仮想実行単位21,22は、物理的なコンピュータ(物理マシン)上においてアプリケーションソフトウェアを実行する仮想的な処理主体である。仮想実行単位21,22は、同じ物理マシンまたは異なる物理マシンに配置されている。 The virtualization management device 10 according to the first embodiment manages a plurality of virtual execution units including the virtual execution units 21 and 22. The virtual execution units 21 and 22 are virtual processing entities that execute application software on a physical computer (physical machine). The virtual execution units 21 and 22 are arranged on the same physical machine or different physical machines.
 仮想実行単位21,22は、ホスト型仮想化やハイパーバイザ型仮想化における仮想マシンであってもよいし、コンテナ型仮想化におけるコンテナでもよい。
 ホスト型仮想化では、物理マシン上でホストOS(Operating System)が実行され、ホストOS上で複数の仮想マシンが動作する。各仮想マシンではゲストOSが実行され、ゲストOS上でミドルウェアやアプリケーションソフトウェアが実行される。ハイパーバイザ型仮想化では、物理マシン上でハイパーバイザが実行され、ハイパーバイザ上で複数の仮想マシンが動作する。ホスト型仮想化と同様、各仮想マシンではゲストOSが実行され、ゲストOS上でミドルウェアやアプリケーションソフトウェアが実行される。コンテナ型仮想化では、物理マシン上でホストOSが実行され、ホストOS上で複数のコンテナが動作する。コンテナは、仮想マシンより軽量な仮想実行単位である。各コンテナでは、ゲストOSは実行されず、ホストOSが管理するリソースの一部を用いてミドルウェアやアプリケーションソフトウェアが実行される。
The virtual execution units 21 and 22 may be virtual machines in host type virtualization or hypervisor type virtualization, or containers in container type virtualization.
In host-type virtualization, a host OS (Operating System) is executed on a physical machine, and a plurality of virtual machines operate on the host OS. Each virtual machine executes a guest OS, and middleware and application software are executed on the guest OS. In hypervisor type virtualization, a hypervisor is executed on a physical machine, and a plurality of virtual machines operate on the hypervisor. Similar to host-type virtualization, a guest OS is executed in each virtual machine, and middleware and application software are executed on the guest OS. In container type virtualization, a host OS is executed on a physical machine, and a plurality of containers operate on the host OS. A container is a virtual execution unit that is lighter than a virtual machine. In each container, the guest OS is not executed, and middleware and application software are executed using a part of the resources managed by the host OS.
 仮想実行単位21,22はそれぞれ、割り当てられているリソースの範囲内でアプリケーションソフトウェアを実行することができる。仮想実行単位21には、プロセッサリソース21aおよび他のリソース21bが割り当てられている。仮想実行単位22には、プロセッサリソース22aおよび他のリソース22bが割り当てられている。プロセッサリソース21a,22aは、CPU(Central Processing Unit)リソースなどプロセッサの演算能力である。他のリソース21b,22bは、プロセッサリソース21a,22a以外のリソースであり、例えば、RAM(Random Access Memory)などの主記憶装置の記憶領域や、HDD(Hard Disk Drive)などの補助記憶装置の記憶領域である。 Each of the virtual execution units 21 and 22 can execute application software within the range of allocated resources. The virtual execution unit 21 is assigned a processor resource 21a and another resource 21b. The virtual execution unit 22 is assigned a processor resource 22a and another resource 22b. The processor resources 21a and 22a are processor computing capabilities such as CPU (Central Processing Unit) resources. The other resources 21b and 22b are resources other than the processor resources 21a and 22a. For example, a storage area of a main storage device such as a RAM (Random Access Memory) or a storage of an auxiliary storage device such as an HDD (Hard Disk Drive). It is an area.
 仮想実行単位21,22は、サービス23を利用することがある。サービス23は、例えば、仮想実行単位21,22の外部から提供される。サービス23は、仮想実行単位21,22を実行するコンピュータ以外の装置から提供されてもよく、仮想化管理装置10以外の装置から提供されてもよい。サービス23は、例えば、外部の記憶装置を用いたサービスであり、データベースサービスやキューサービスが含まれてもよい。サービス23の利用形態の例として、データベースの参照、データベースの更新、仮想実行単位21,22が共有するキューのポーリング、キューからの読み出し、キューへの書き込みなどが挙げられる。キューのポーリングでは、キューにデータが到着しているか否かを定期的に確認する。 The virtual execution units 21 and 22 may use the service 23. The service 23 is provided from outside the virtual execution units 21 and 22, for example. The service 23 may be provided from a device other than the computer that executes the virtual execution units 21 and 22, or may be provided from a device other than the virtualization management device 10. The service 23 is, for example, a service using an external storage device, and may include a database service and a queue service. Examples of usage forms of the service 23 include database reference, database update, polling of a queue shared by the virtual execution units 21 and 22, reading from the queue, writing to the queue, and the like. In queue polling, it is periodically checked whether data has arrived in the queue.
 第1の実施の形態では、複数の仮想実行単位は同じ種類のアプリケーションソフトウェアを実行する。これら複数の仮想実行単位を用いて、アプリケーションソフトウェアの処理が分散化されている。仮想化管理装置10は、複数の仮想実行単位のリソース使用状況に応じて、仮想実行単位の数を動的に変更する。スケールアウトでは、仮想化管理装置10は、新たな仮想実行単位を追加して仮想実行単位の数を増やす。スケールインでは、仮想化管理装置10は、一部の仮想実行単位を停止して仮想実行単位の数を減らす。 In the first embodiment, the plurality of virtual execution units execute the same type of application software. Application software processing is distributed using these virtual execution units. The virtualization management device 10 dynamically changes the number of virtual execution units according to the resource usage status of a plurality of virtual execution units. In scale-out, the virtualization management device 10 adds a new virtual execution unit to increase the number of virtual execution units. In scale-in, the virtualization management device 10 stops some virtual execution units and reduces the number of virtual execution units.
 仮想化管理装置10は、記憶部11および制御部12を有する。記憶部11は、RAMなどの揮発性の半導体メモリでもよいし、HDDやフラッシュメモリなどの不揮発性の記憶装置でもよい。制御部12は、CPUやDSP(Digital Signal Processor)などのプロセッサでもよい。また、制御部12は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路を含んでもよい。プロセッサは、RAMなどのメモリ(記憶部11でもよい)に記憶されたプログラムを実行する。プロセッサが実行するプログラムには、以下に説明する処理を記載した仮想化管理プログラムが含まれる。複数のプロセッサの集合を、「マルチプロセッサ」または単に「プロセッサ」と呼ぶこともある。 The virtualization management device 10 includes a storage unit 11 and a control unit 12. The storage unit 11 may be a volatile semiconductor memory such as a RAM or a non-volatile storage device such as an HDD or a flash memory. The control unit 12 may be a processor such as a CPU or DSP (Digital Signal Processor). Further, the control unit 12 may include an electronic circuit for a specific application such as ASIC (Application Specific Integrated Circuit) or FPGA (Field Programmable Gate Array). The processor executes a program stored in a memory such as a RAM (or the storage unit 11). The program executed by the processor includes a virtualization management program in which processing described below is described. A set of processors may be referred to as a “multiprocessor” or simply “processor”.
 記憶部11は、複数の仮想実行単位それぞれについてリソース情報13およびサービス情報14を記憶する。リソース情報13およびサービス情報14は、仮想化管理装置10がネットワーク経由で収集したものであってもよい。 The storage unit 11 stores resource information 13 and service information 14 for each of a plurality of virtual execution units. The resource information 13 and the service information 14 may be collected by the virtualization management apparatus 10 via a network.
 リソース情報13は、プロセッサリソースの使用量(第1使用量)および他のリソースの使用量(第2使用量)を示す。例えば、仮想実行単位21について、リソース情報13は、仮想実行単位21に割り当てられたプロセッサリソース21aのうち使用されている量(例えば、プロセッサ使用率)を示す。また、リソース情報13は、仮想実行単位21に割り当てられた他のリソース21bのうち使用されている量(例えば、メモリ使用量やディスク使用量)を示す。サービス情報14は、サービス23の利用状況を示す。例えば、仮想実行単位21について、サービス情報14は、仮想実行単位21がサービス23に対して要求した時刻やサービスの種類を示す。 Resource information 13 indicates the usage amount (first usage amount) of processor resources and the usage amount (second usage amount) of other resources. For example, for the virtual execution unit 21, the resource information 13 indicates the amount used (for example, the processor usage rate) among the processor resources 21 a allocated to the virtual execution unit 21. Further, the resource information 13 indicates the amount used (for example, the memory usage amount or the disk usage amount) among the other resources 21 b allocated to the virtual execution unit 21. The service information 14 indicates the usage status of the service 23. For example, for the virtual execution unit 21, the service information 14 indicates the time requested by the virtual execution unit 21 to the service 23 and the type of service.
 制御部12は、記憶部11に記憶されたリソース情報13およびサービス情報14に関する所定の条件に基づいて、複数の仮想実行単位より停止可能な仮想実行単位を特定する。スケールインを行う場合、制御部12は、特定した仮想実行単位を停止させる。ここで、所定の条件は、第1の状態15または第2の状態16の仮想実行単位を示す。 The control unit 12 specifies a virtual execution unit that can be stopped from a plurality of virtual execution units based on predetermined conditions regarding the resource information 13 and the service information 14 stored in the storage unit 11. When performing the scale-in, the control unit 12 stops the specified virtual execution unit. Here, the predetermined condition indicates a virtual execution unit in the first state 15 or the second state 16.
 第1の状態15は、第1使用量の変化量および第2使用量の変化量が閾値以下であり、かつ、サービス23を利用しない時間が第1の時間以上継続している状態である。第1使用量の変化量および第2使用量の変化量は、例えば、直近の5秒間における最大値と最小値の差である。第1使用量の変化量の閾値は、例えば、割り当てられたプロセッサリソースの5%程度である。第2使用量の変化量の閾値は、例えば、割り当てられた他のリソースの5%程度である。第1の時間は、例えば、5分程度である。 The first state 15 is a state in which the amount of change in the first usage amount and the amount of change in the second usage amount are equal to or less than the threshold and the time during which the service 23 is not used continues for the first time or more. The change amount of the first usage amount and the change amount of the second usage amount are, for example, the difference between the maximum value and the minimum value in the latest 5 seconds. The threshold value for the change amount of the first usage amount is, for example, about 5% of the allocated processor resource. The threshold value for the amount of change in the second usage amount is, for example, about 5% of other allocated resources. The first time is, for example, about 5 minutes.
 仮想実行単位21が第1の状態15にある場合、仮想実行単位21は、アプリケ-ションソフトウェアの処理を実行しておらず、サービス23からの応答待ちも発生していないと推定される。この場合、仮想実行単位21は、未完了の処理のステート(処理途中のデータ)を有しておらず、停止してもステートが失われないと考えられる。 When the virtual execution unit 21 is in the first state 15, it is presumed that the virtual execution unit 21 is not executing the application software process and is not waiting for a response from the service 23. In this case, the virtual execution unit 21 does not have an incomplete process state (data being processed), and it is considered that the state is not lost even if the virtual execution unit 21 is stopped.
 第2の状態16は、第2使用量の変化量が閾値以下であり、サービス23の利用がサービス23に対するポーリングである時間が第2の時間以上継続しており、かつ、ポーリングを当該仮想実行単位以外の他の仮想実行単位も行っている状態である。第2の状態16では、第1使用量の変化量が閾値を超えていてもよい。第2使用量の変化量は、例えば、直近の5秒間における最大値と最小値の差である。第2使用量の変化量の閾値は、例えば、割り当てられた他のリソースの5%程度である。第2の時間は、例えば、10分程度である。この間、ポーリング以外にサービス23が利用されていないことが好ましい。 In the second state 16, the amount of change in the second usage amount is less than or equal to the threshold, the time during which the service 23 is polled for the service 23 continues for the second time or longer, and the virtual execution is performed in the polling state. This is a state where other virtual execution units other than the unit are also performed. In the second state 16, the change amount of the first usage amount may exceed the threshold value. The change amount of the second usage amount is, for example, the difference between the maximum value and the minimum value in the latest 5 seconds. The threshold value for the amount of change in the second usage amount is, for example, about 5% of other allocated resources. The second time is, for example, about 10 minutes. During this time, it is preferable that the service 23 is not used except for polling.
 仮想実行単位22が第2の状態16にある場合、仮想実行単位22は、プロセッサリソース22aを使用していても、その使用は専らポーリングによって生じていると推定される。この場合、仮想実行単位22は、未完了の処理のステート(処理途中のデータ)を有しておらず、停止してもステートが失われないと考えられる。また、他の仮想実行単位もポーリングを行っているため、仮想実行単位22がポーリングを停止しても、サービス23に到着したデータが処理されずに残ってしまう可能性は低い。 When the virtual execution unit 22 is in the second state 16, even if the virtual execution unit 22 uses the processor resource 22a, it is estimated that the use is caused exclusively by polling. In this case, the virtual execution unit 22 does not have an incomplete processing state (data in the middle of processing), and it is considered that the state is not lost even when stopped. Since other virtual execution units are also polled, even if the virtual execution unit 22 stops polling, it is unlikely that the data that has arrived at the service 23 will remain unprocessed.
 第1の実施の形態の仮想化管理装置10によれば、複数の仮想実行単位についてリソース情報13とサービス情報14が取得され、リソース情報13とサービス情報14に関する所定の条件に基づいて、複数の仮想実行単位より停止可能な仮想実行単位が特定される。第1の状態15または第2の状態16にある仮想実行単位が、停止可能と判定され得る。これにより、未完了の処理のステートを有している仮想実行単位を強制停止させてしまうリスクを低減でき、停止させる仮想実行単位を適切に選択することができる。 According to the virtualization management device 10 of the first embodiment, the resource information 13 and the service information 14 are acquired for a plurality of virtual execution units, and a plurality of conditions are determined based on predetermined conditions regarding the resource information 13 and the service information 14. A virtual execution unit that can be stopped is specified from the virtual execution unit. It can be determined that a virtual execution unit in the first state 15 or the second state 16 can be stopped. As a result, the risk of forcibly stopping a virtual execution unit having an incomplete processing state can be reduced, and the virtual execution unit to be stopped can be appropriately selected.
 プロセッサリソースや他のリソースの使用量の変化が小さい仮想実行単位であっても、サービス23の応答待ちによって未完了の処理のステートを有していることがある。これに対し、仮想化管理装置10は、第1の状態15にある仮想実行単位を特定することで、サービス23の応答待ち中の仮想実行単位を強制停止してしまうリスクを低減できる。また、プロセッサリソースの使用量の変化が小さくない仮想実行単位であっても、専らポーリングを行っているため未完了の処理のステートを有していないことがある。これに対し、仮想化管理装置10は、第2の状態16にある仮想実行単位を特定することで、専らポーリングを行う仮想処理単位を停止させることが可能となる。 Even in a virtual execution unit in which changes in the usage of processor resources and other resources are small, there may be an incomplete processing state due to a response from the service 23. On the other hand, the virtualization management device 10 can reduce the risk of forcibly stopping the virtual execution unit waiting for a response from the service 23 by specifying the virtual execution unit in the first state 15. Even in a virtual execution unit in which the change in the usage amount of the processor resource is not small, it may not have an incomplete processing state because polling is exclusively performed. On the other hand, the virtualization management device 10 can stop the virtual processing unit exclusively for polling by specifying the virtual execution unit in the second state 16.
 [第2の実施の形態]
 図2は、第2の実施の形態の情報処理システムの例を示す図である。
 第2の実施の形態の情報処理システムは、クライアント41、管理者端末42、ロードバランサ43、ストレージサーバ44、アプリケーション管理サーバ45、コンテナ管理サーバ46、スケール制御サーバ100およびコンテナサーバ200,200aを有する。クライアント41および管理者端末42は、広域ネットワークであるネットワーク31に接続されている。ロードバランサ43、ストレージサーバ44、アプリケーション管理サーバ45、コンテナ管理サーバ46、スケール制御サーバ100およびコンテナサーバ200,200aは、ローカルネットワークであるネットワーク32に接続されている。
[Second Embodiment]
FIG. 2 is a diagram illustrating an example of an information processing system according to the second embodiment.
The information processing system according to the second embodiment includes a client 41, an administrator terminal 42, a load balancer 43, a storage server 44, an application management server 45, a container management server 46, a scale control server 100, and container servers 200 and 200a. . The client 41 and the administrator terminal 42 are connected to the network 31 that is a wide area network. The load balancer 43, the storage server 44, the application management server 45, the container management server 46, the scale control server 100, and the container servers 200 and 200a are connected to a network 32 that is a local network.
 コンテナサーバ200,200aは、複数のコンテナを配置することができるサーバコンピュータである。第2の実施の形態では、コンピュータ仮想化技術としてコンテナ型仮想化を用いる。コンテナは、仮想マシンよりも軽量な仮想実行単位である。各コンテナに対して、コンテナサーバ200,200aが有するハードウェアリソースの一部が割り当てられる。ハードウェアリソースには、CPUリソース(CPU処理時間)、RAMリソース(RAM記憶領域)およびディスクリソース(HDD記憶領域)が含まれる。 The container servers 200 and 200a are server computers that can arrange a plurality of containers. In the second embodiment, container type virtualization is used as a computer virtualization technique. A container is a virtual execution unit that is lighter than a virtual machine. A part of the hardware resources of the container servers 200 and 200a is allocated to each container. The hardware resources include a CPU resource (CPU processing time), a RAM resource (RAM storage area), and a disk resource (HDD storage area).
 各コンテナは、割り当てられたハードウェアリソースを用いて、他のコンテナとは独立にミドルウェアやアプリケーションソフトウェアを実行する。ただし、各コンテナは、仮想マシンと異なりゲストOSを実行しなくてよい。同じコンテナサーバ上に異なるユーザのコンテナを混在させて配置することもできる。また、2以上のコンテナに同じアプリケーションソフトウェアを実行させて処理を分散化することもできる。 Each container uses the allocated hardware resources to execute middleware and application software independently of other containers. However, unlike a virtual machine, each container does not have to execute a guest OS. Different users' containers can be mixed and arranged on the same container server. It is also possible to distribute the processing by causing two or more containers to execute the same application software.
 スケール制御サーバ100は、コンテナサーバ200,200aに配置されたコンテナのスケールを制御するサーバコンピュータである。すなわち、スケール制御サーバ100は、同じアプリケーションソフトウェアを実行するコンテナの数を、現在のコンテナの負荷に応じて動的に変更する。負荷が高いと判断される場合、スケール制御サーバ100は、コンテナの数を増やす「スケールアウト」を行うと決定する。負荷が低いと判断される場合、スケール制御サーバ100は、コンテナの数を減らす「スケールイン」を行うと決定する。スケールインを行う際、スケール制御サーバ100は、コンテナサーバ200,200aに配置されたコンテナの中から停止するコンテナを選択する。 The scale control server 100 is a server computer that controls the scale of containers arranged in the container servers 200 and 200a. That is, the scale control server 100 dynamically changes the number of containers that execute the same application software in accordance with the current container load. When it is determined that the load is high, the scale control server 100 determines to perform “scale out” to increase the number of containers. When it is determined that the load is low, the scale control server 100 determines to perform “scale-in” to reduce the number of containers. When performing scale-in, the scale control server 100 selects a container to be stopped from the containers arranged in the container servers 200 and 200a.
 クライアント41は、コンテナで実行されているアプリケーションソフトウェアに対するリクエストを送信し、リクエストに対応するレスポンスを受信するクライアントコンピュータである。アプリケーションソフトウェアがWebサーバアプリケーションである場合、例えば、クライアント41は、WebブラウザなどのWebクライアントを用いてHTTP(Hypertext Transfer Protocol)メッセージを送受信する。同じアプリケーションソフトウェアを実行するコンテナが複数存在するため、クライアント41は、ネットワーク31,32を介してロードバランサ43にリクエストを送信する。クライアント41は、ロードバランサ43からレスポンスを受信する。 The client 41 is a client computer that transmits a request for application software executed in the container and receives a response corresponding to the request. When the application software is a Web server application, for example, the client 41 transmits / receives an HTTP (Hypertext Transfer Protocol) message using a Web client such as a Web browser. Since there are a plurality of containers that execute the same application software, the client 41 transmits a request to the load balancer 43 via the networks 31 and 32. The client 41 receives a response from the load balancer 43.
 管理者端末42は、アプリケーションソフトウェアの管理者が使用するクライアントコンピュータである。管理者端末42は、ネットワーク31,32を介してアプリケーション管理サーバ45にアクセスし、コンテナサーバ200,200aへのコンテナの配置をアプリケーション管理サーバ45に依頼する。なお、図2では管理者端末42が広域ネットワークであるネットワーク31に接続されているとしたが、管理者端末42がローカルネットワークであるネットワーク32に接続されていてもよい。 The administrator terminal 42 is a client computer used by the application software administrator. The administrator terminal 42 accesses the application management server 45 via the networks 31 and 32 and requests the application management server 45 to place containers on the container servers 200 and 200a. In FIG. 2, the administrator terminal 42 is connected to the network 31 that is a wide area network. However, the administrator terminal 42 may be connected to the network 32 that is a local network.
 ロードバランサ43は、ネットワーク31からコンテナサーバ200,200aへのリクエストと、コンテナサーバ200,200aからネットワーク31へのレスポンスを中継するサーバコンピュータである。ただし、ロードバランサ43は、「ルータ」、「ゲートウェイ」、「リバースプロキシサーバ」などと呼ばれる装置であってもよい。ロードバランサ43は、コンテナ数が2以上のアプリケーションソフトウェア宛てのリクエストを受信すると、2以上のコンテナのうちの何れか1つを選択し、選択したコンテナにリクエストを転送する。コンテナの選択方法としては、ラウンドロビンなどの所定のアルゴリズムを使用する。ラウンドロビンでは、1番目のコンテナ、2番目のコンテナ、3番目のコンテナ、…1番目のコンテナと、2以上のコンテナが巡回的に選択される。 The load balancer 43 is a server computer that relays requests from the network 31 to the container servers 200 and 200a and responses from the container servers 200 and 200a to the network 31. However, the load balancer 43 may be a device called “router”, “gateway”, “reverse proxy server”, or the like. When receiving a request addressed to application software having two or more containers, the load balancer 43 selects any one of the two or more containers and transfers the request to the selected container. As a container selection method, a predetermined algorithm such as round robin is used. In round robin, the first container, the second container, the third container,..., The first container, and two or more containers are cyclically selected.
 また、ロードバランサ43は、各コンテナのアプリケーションソフトウェアが正常に稼働しているか監視する。ロードバランサ43は、定期的に(例えば、30秒周期で)各コンテナに生存確認メッセージを送信し、生存確認メッセージに対する応答メッセージを待つ。ロードバランサ43は、応答メッセージがあったコンテナではアプリケーションソフトウェアが正常に稼働していると判定する。一方、ロードバランサ43は、所定回数(例えば、2回)連続して応答メッセージがないコンテナでは、アプリケーションソフトウェアがハングアップなどにより正常に稼働していないと判定する。アプリケーションソフトウェアが正常に稼働していないコンテナを検出した場合、ロードバランサ43は、以降は当該コンテナにリクエストを転送しないようにする。 Also, the load balancer 43 monitors whether the application software of each container is operating normally. The load balancer 43 periodically transmits a survival confirmation message to each container (for example, in a cycle of 30 seconds) and waits for a response message to the survival confirmation message. The load balancer 43 determines that the application software is operating normally in the container in which the response message has been received. On the other hand, the load balancer 43 determines that the application software is not operating normally due to a hang-up or the like in a container in which there is no response message continuously for a predetermined number of times (for example, twice). When the container in which the application software is not operating normally is detected, the load balancer 43 does not transfer the request to the container thereafter.
 ストレージサーバ44は、不揮発性の記憶装置を用いてデータを保存し、データに関する各種のサービスを提供するサーバコンピュータである。ストレージサーバ44は、ミドルウェアのプログラムおよびアプリケーションソフトウェアのプログラムを含むコンテナイメージを記憶する。1つのコンテナイメージから、同じアプリケーションソフトウェアを実行する2以上のコンテナを起動することができる。 The storage server 44 is a server computer that stores data using a non-volatile storage device and provides various services related to the data. The storage server 44 stores a container image including a middleware program and an application software program. Two or more containers that execute the same application software can be activated from one container image.
 また、ストレージサーバ44は、データベースサービスを提供する。コンテナサーバ200,200aに配置されたコンテナは、ストレージサーバ44に対し、データベースの参照や更新を要求することができる。また、ストレージサーバ44は、キューサービスを提供する。コンテナサーバ200,200aに配置された2以上のコンテナは、同一のキューを共有できる。各コンテナは、ストレージサーバ44に対し、キューにデータが到着しているか確認するポーリングを要求することができる。また、各コンテナは、ストレージサーバ44に対し、キューの読み出しや書き込みを要求することができる。 Also, the storage server 44 provides a database service. The containers arranged in the container servers 200 and 200a can request the storage server 44 to refer to and update the database. The storage server 44 provides a queue service. Two or more containers arranged in the container servers 200 and 200a can share the same queue. Each container can request polling from the storage server 44 to check whether data has arrived in the queue. Each container can request the storage server 44 to read or write a queue.
 アプリケーション管理サーバ45は、管理者端末42から指定された設定に基づいてコンテナイメージを生成し、生成したコンテナイメージをストレージサーバ44に保存する。また、アプリケーション管理サーバ45は、管理者端末42からの指示に応じて、コンテナイメージを用いたコンテナの起動をコンテナ管理サーバ46に指示する。また、アプリケーション管理サーバ45は、スケール制御サーバ100がスケールアウトまたはスケールインを決定すると、その旨の通知をスケール制御サーバ100から受信する。すると、アプリケーション管理サーバ45は、スケール制御サーバ100からの通知に応じて、コンテナの追加または削除をコンテナ管理サーバ46に指示する。 The application management server 45 generates a container image based on the setting designated from the administrator terminal 42 and stores the generated container image in the storage server 44. Further, the application management server 45 instructs the container management server 46 to start the container using the container image in response to an instruction from the administrator terminal 42. Further, when the scale control server 100 determines scale-out or scale-in, the application management server 45 receives a notification to that effect from the scale control server 100. Then, the application management server 45 instructs the container management server 46 to add or delete a container in response to the notification from the scale control server 100.
 コンテナ管理サーバ46は、コンテナを管理するサーバコンピュータである。コンテナ管理サーバ46は、コンテナサーバ200,200aから、各コンテナの負荷に関する情報を収集する。また、コンテナ管理サーバ46は、アプリケーション管理サーバ45からの指示に応じて、ストレージサーバ44に記憶されたコンテナイメージを用いてコンテナサーバ200,200aにコンテナを起動させる。コンテナを追加した場合、コンテナ管理サーバ46は、当該コンテナにリクエストが振り分けられるようにロードバランサ43を設定する。また、コンテナ管理サーバ46は、アプリケーション管理サーバ45からの指示に応じて、コンテナサーバ200,200aにコンテナを停止させる。 The container management server 46 is a server computer that manages containers. The container management server 46 collects information on the load of each container from the container servers 200 and 200a. Further, the container management server 46 causes the container servers 200 and 200a to activate the containers using the container image stored in the storage server 44 in response to an instruction from the application management server 45. When a container is added, the container management server 46 sets the load balancer 43 so that requests are distributed to the container. Further, the container management server 46 causes the container servers 200 and 200a to stop the container in response to an instruction from the application management server 45.
 図3は、スケール制御サーバのハードウェア例を示すブロック図である。
 スケール制御サーバ100は、プロセッサ101、RAM102、HDD103、画像信号処理部104、入力信号処理部105、媒体リーダ106および通信インタフェース107を有する。スケール制御サーバ100の上記ユニットは、バス108に接続されている。なお、スケール制御サーバ100は、第1の実施の形態の仮想化管理装置10に対応する。CPU101は、第1の実施の形態の制御部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。
FIG. 3 is a block diagram illustrating a hardware example of the scale control server.
The scale control server 100 includes a processor 101, a RAM 102, an HDD 103, an image signal processing unit 104, an input signal processing unit 105, a medium reader 106, and a communication interface 107. The unit of the scale control server 100 is connected to the bus 108. The scale control server 100 corresponds to the virtualization management device 10 according to the first embodiment. The CPU 101 corresponds to the control unit 12 of the first embodiment. The RAM 102 or the HDD 103 corresponds to the storage unit 11 of the first embodiment.
 クライアント41、管理者端末42、ロードバランサ43、ストレージサーバ44、アプリケーション管理サーバ45、コンテナ管理サーバ46およびコンテナサーバ200,200aも、スケール制御サーバ100と同様のハードウェアを用いて実装できる。 The client 41, the administrator terminal 42, the load balancer 43, the storage server 44, the application management server 45, the container management server 46, and the container servers 200 and 200a can also be implemented using the same hardware as the scale control server 100.
 プロセッサ101は、プログラムの命令を実行する演算回路を含むプロセッサである。プロセッサ101は、例えば、CPUである。プロセッサ101は、HDD103に記憶されたプログラムおよびデータの少なくとも一部をRAM102にロードし、ロードされたプログラムを実行する。なお、プロセッサ101が複数のプロセッサコアを備えてもよいし、スケール制御サーバ100が複数のプロセッサを備えてもよい。以下で説明する処理を、複数のプロセッサまたはプロセッサコアを用いて並列に実行してもよい。 The processor 101 is a processor including an arithmetic circuit that executes program instructions. The processor 101 is a CPU, for example. The processor 101 loads at least a part of the program and data stored in the HDD 103 into the RAM 102 and executes the loaded program. The processor 101 may include a plurality of processor cores, and the scale control server 100 may include a plurality of processors. The processes described below may be executed in parallel using a plurality of processors or processor cores.
 RAM102は、プロセッサ101が実行するプログラムや演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、スケール制御サーバ100は、RAM以外の種類のメモリを備えてもよいし、複数個のメモリを備えてもよい。 The RAM 102 is a volatile semiconductor memory that temporarily stores programs executed by the processor 101 and data used for computation. Note that the scale control server 100 may include a memory of a type other than the RAM, or may include a plurality of memories.
 HDD103は、OSやミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。プログラムには、仮想化管理プログラムが含まれる。なお、スケール制御サーバ100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよいし、複数の不揮発性の記憶装置を備えてもよい。 The HDD 103 is a non-volatile storage device that stores software programs such as an OS, middleware, and application software, and data. The program includes a virtualization management program. The scale control server 100 may include other types of storage devices such as a flash memory and an SSD (Solid State Drive), or may include a plurality of nonvolatile storage devices.
 画像信号処理部104は、プロセッサ101からの命令に従って、スケール制御サーバ100に接続されたディスプレイ111に画像を出力する。ディスプレイ111としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなど、任意の種類のディスプレイを用いることができる。 The image signal processing unit 104 outputs an image to the display 111 connected to the scale control server 100 in accordance with an instruction from the processor 101. The display 111 may be any type of display such as a CRT (Cathode Ray Tube) display, a liquid crystal display (LCD), a plasma display, or an organic EL (OEL: Organic Electro-Luminescence) display.
 入力信号処理部105は、スケール制御サーバ100に接続された入力デバイス112から入力信号を取得し、プロセッサ101に出力する。入力デバイス112としては、マウスやタッチパネルやタッチパッドやトラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、スケール制御サーバ100に、複数の種類の入力デバイスが接続されていてもよい。 The input signal processing unit 105 acquires an input signal from the input device 112 connected to the scale control server 100 and outputs it to the processor 101. As the input device 112, a mouse, a touch panel, a touch pad, a pointing device such as a trackball, a keyboard, a remote controller, a button switch, or the like can be used. A plurality of types of input devices may be connected to the scale control server 100.
 媒体リーダ106は、記録媒体113に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体113として、例えば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。 The medium reader 106 is a reading device that reads a program and data recorded on the recording medium 113. As the recording medium 113, for example, a magnetic disk, an optical disk, a magneto-optical disk (MO), a semiconductor memory, or the like can be used. Magnetic disks include flexible disks (FD: Flexible Disk) and HDDs. Optical discs include CD (Compact Disc) and DVD (Digital Versatile Disc).
 媒体リーダ106は、例えば、記録媒体113から読み取ったプログラムやデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、プロセッサ101によって実行される。なお、記録媒体113は、可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体113やHDD103を、コンピュータ読み取り可能な記録媒体と言うことがある。 The medium reader 106 copies the program and data read from the recording medium 113 to another recording medium such as the RAM 102 and the HDD 103, for example. The read program is executed by the processor 101, for example. The recording medium 113 may be a portable recording medium and may be used for distributing programs and data. In addition, the recording medium 113 and the HDD 103 may be referred to as computer-readable recording media.
 通信インタフェース107は、ネットワーク32に接続され、ネットワーク32を介して他のコンピュータと通信を行うインタフェースである。通信インタフェース107は、スイッチなどの通信装置とケーブルで接続される有線通信インタフェースでもよいし、基地局と無線リンクで接続される無線通信インタフェースでもよい。 The communication interface 107 is an interface that is connected to the network 32 and communicates with other computers via the network 32. The communication interface 107 may be a wired communication interface connected to a communication device such as a switch via a cable, or may be a wireless communication interface connected to a base station via a wireless link.
 図4は、コンテナの例を示すブロック図である。
 コンテナサーバ200は、オペレーティングシステム201およびコンテナ制御部202を有する。また、一例として、コンテナサーバ200は、コンテナ210,220を有する。オペレーティングシステム201、コンテナ制御部202およびコンテナ210,220は、CPUが実行するプログラムモジュールを用いて実装できる。コンテナサーバ200aも、コンテナサーバ200と同様の機能を有する。
FIG. 4 is a block diagram illustrating an example of a container.
The container server 200 has an operating system 201 and a container control unit 202. As an example, the container server 200 includes containers 210 and 220. The operating system 201, the container control unit 202, and the containers 210 and 220 can be implemented using program modules executed by the CPU. The container server 200a also has the same function as the container server 200.
 オペレーティングシステム201は、コンテナサーバ200が有するハードウェアリソースを管理するホストOSである。コンテナ制御部202は、オペレーティングシステム201上で動作するミドルウェアである。コンテナ制御部202は、オペレーティングシステム201が管理するハードウェアリソースの一部をコンテナ210,220に割り当てることで、コンテナ制御部202上にコンテナ210,220を形成する。 The operating system 201 is a host OS that manages hardware resources of the container server 200. The container control unit 202 is middleware that operates on the operating system 201. The container control unit 202 allocates some of the hardware resources managed by the operating system 201 to the containers 210 and 220, thereby forming the containers 210 and 220 on the container control unit 202.
 コンテナ210は、ミドルウェア211およびアプリケーションインスタンス212を有する。コンテナ220は、ミドルウェア221およびアプリケーションインスタンス222を有する。ミドルウェア211,221は、クライアント41とのメッセージ送受信機能などの基本的なサーバ機能を提供する。アプリケーションインスタンス212,222は、ミドルウェア211,221上で動作するユーザ定義のアプリケーションソフトウェアを起動したもの(プロセスやスレッドなど)である。 The container 210 includes middleware 211 and application instances 212. The container 220 includes middleware 221 and an application instance 222. The middleware 211 and 221 provide basic server functions such as a message transmission / reception function with the client 41. The application instances 212 and 222 are those (for example, processes and threads) in which user-defined application software that operates on the middleware 211 and 221 is activated.
 アプリケーションインスタンス212とアプリケーションインスタンス222とは、同じアプリケーションプログラムから起動することができ、クライアント41からのリクエストに応じて同種の処理を実行する。コンテナ210,220は、ホストOSであるオペレーティングシステム201のハードウェアリソースを利用するため、ゲストOSを実行しなくてよい。コンテナ210,220は、同じコンテナイメージから起動できる。 Application instance 212 and application instance 222 can be activated from the same application program, and execute the same type of processing in response to a request from client 41. Since the containers 210 and 220 use the hardware resources of the operating system 201 that is the host OS, the guest OS need not be executed. The containers 210 and 220 can be activated from the same container image.
 ここで、コンテナ制御部202は、コンテナ210の処理とコンテナ220の処理とを分離し、両者が干渉しないように制御する。例えば、コンテナ制御部202は、コンテナ210,220に異なるプロセスID名前空間を付与する。これにより、オペレーティングシステム201が管理するプロセスのうちコンテナ210のプロセスとコンテナ220のプロセスとが区別される。また、コンテナ制御部202は、コンテナ210,220に異なるネットワーク名前空間を付与する。これにより、オペレーティングシステム201が転送する通信のうちコンテナ210の通信とコンテナ220の通信とが区別される。 Here, the container control unit 202 separates the processing of the container 210 and the processing of the container 220 and performs control so that they do not interfere with each other. For example, the container control unit 202 assigns different process ID name spaces to the containers 210 and 220. Thereby, among the processes managed by the operating system 201, the process of the container 210 and the process of the container 220 are distinguished. In addition, the container control unit 202 assigns different network name spaces to the containers 210 and 220. As a result, the communication of the container 210 and the communication of the container 220 among the communication transferred by the operating system 201 are distinguished.
 また、コンテナ制御部202は、コンテナ210,220に異なるユーザID名前空間を付与する。これにより、コンテナ210とコンテナ220が同じユーザIDを使用しても、オペレーティングシステム201において両者が区別される。また、コンテナ制御部202は、コンテナ210,220に異なるマウント名前空間を付与する。これにより、オペレーティングシステム201が管理するファイルシステムの一部分が、コンテナ210のファイルシステムおよびコンテナ220のファイルシステムとして区別される。 In addition, the container control unit 202 assigns different user ID name spaces to the containers 210 and 220. Thereby, even if the container 210 and the container 220 use the same user ID, the operating system 201 distinguishes both. Further, the container control unit 202 assigns different mount name spaces to the containers 210 and 220. Thereby, a part of the file system managed by the operating system 201 is distinguished as the file system of the container 210 and the file system of the container 220.
 また、コンテナ制御部202は、オペレーティングシステム201が管理するプロセスのうち、コンテナ210のプロセスの集合(プロセスグループ)およびコンテナ220のプロセスグループを特定する。コンテナ制御部202は、プロセスグループ毎にハードウェアリソースの使用を一定範囲に制限する。これにより、コンテナ制御部202は、コンテナ210,220にハードウェアリソースを割り当てることができる。 Also, the container control unit 202 identifies a set of processes (process group) of the container 210 and a process group of the container 220 among the processes managed by the operating system 201. The container control unit 202 limits the use of hardware resources to a certain range for each process group. As a result, the container control unit 202 can allocate hardware resources to the containers 210 and 220.
 また、コンテナ制御部202は、オペレーティングシステム201およびコンテナ210,220の間でパケットを転送する仮想ブリッジ機能を提供する。コンテナ210とコンテナ220とは、仮想ブリッジを介して通信する。コンテナ210,220がコンテナサーバ200の外部と通信する場合、コンテナ210,220は、仮想ブリッジを介してオペレーティングシステム201にパケットを出力し、オペレーティングシステム201から仮想ブリッジを介してパケットを取得する。 In addition, the container control unit 202 provides a virtual bridge function for transferring packets between the operating system 201 and the containers 210 and 220. The container 210 and the container 220 communicate via a virtual bridge. When the containers 210 and 220 communicate with the outside of the container server 200, the containers 210 and 220 output a packet to the operating system 201 via the virtual bridge, and acquire the packet from the operating system 201 via the virtual bridge.
 以上のコンテナ制御部202がコンテナ210の処理とコンテナ220の処理とを分離し、両者が干渉しないようにする制御は、OSの機能を利用して実現することも可能である。 The control in which the container control unit 202 described above separates the processing of the container 210 and the processing of the container 220 so that they do not interfere with each other can be realized by using the function of the OS.
 図5は、コンテナのスケールアウトとスケールインの例を示す図である。
 あるアプリケーションソフトウェアを実行するコンテナとして、コンテナ210,220,230の3つが起動しているとする。すると、ロードバランサ43は、クライアント41から受信する複数のリクエストをコンテナ210,220,230に割り振る。例えば、ロードバランサ43は、ラウンドロビンにより、複数のリクエストをコンテナ210,220,230に均等に転送する。ロードバランサ43は、コンテナ210,220,230からレスポンスを受信し、レスポンスをクライアント41に転送する。
FIG. 5 is a diagram illustrating an example of container scale-out and scale-in.
Assume that three containers 210, 220, and 230 are activated as containers for executing certain application software. Then, the load balancer 43 allocates a plurality of requests received from the client 41 to the containers 210, 220, and 230. For example, the load balancer 43 evenly transfers a plurality of requests to the containers 210, 220, and 230 by round robin. The load balancer 43 receives responses from the containers 210, 220, and 230 and transfers the responses to the client 41.
 コンテナ210,220,230の負荷が高くなると、スケールアウトによりコンテナ240が追加される。すると、ロードバランサ43は、クライアント41から受信する複数のリクエストをコンテナ210,220,230,240に割り振る。例えば、ロードバランサ43は、ラウンドロビンにより、複数のリクエストをコンテナ210,220,230,240に均等に転送する。ロードバランサ43は、コンテナ210,220,230,240からレスポンスを受信し、レスポンスをクライアント41に転送する。 When the load on the containers 210, 220, and 230 increases, the container 240 is added due to scale-out. Then, the load balancer 43 allocates a plurality of requests received from the client 41 to the containers 210, 220, 230, and 240. For example, the load balancer 43 equally transfers a plurality of requests to the containers 210, 220, 230, and 240 by round robin. The load balancer 43 receives responses from the containers 210, 220, 230, and 240 and transfers the responses to the client 41.
 一方、コンテナ210,220,230の負荷が低くなると、スケールインによりコンテナ230が削除される。すると、ロードバランサ43は、クライアント41から受信する複数のリクエストをコンテナ210,220に割り振る。例えば、ロードバランサ43は、ラウンドロビンにより、複数のリクエストをコンテナ210,220に均等に転送する。ロードバランサ43は、コンテナ210,220からレスポンスを受信し、レスポンスをクライアント41に転送する。上記ではコンテナ230を削除しているが、スケールインを行う場合には複数のコンテナの中から削除するコンテナを選択することになる。削除するコンテナは、後述するような方法でスケール制御サーバ100が選択する。 On the other hand, when the load on the containers 210, 220, and 230 decreases, the container 230 is deleted due to the scale-in. Then, the load balancer 43 allocates a plurality of requests received from the client 41 to the containers 210 and 220. For example, the load balancer 43 evenly transfers a plurality of requests to the containers 210 and 220 by round robin. The load balancer 43 receives a response from the containers 210 and 220 and transfers the response to the client 41. In the above description, the container 230 is deleted. However, when performing scale-in, a container to be deleted is selected from a plurality of containers. The scale control server 100 selects the container to be deleted by a method as described later.
 次に、ロードバランサ43、ストレージサーバ44、アプリケーション管理サーバ45、コンテナ管理サーバ46およびスケール制御サーバ100が有するデータを説明する。
 図6は、アプリケーション設定テーブルの例を示す図である。
Next, data included in the load balancer 43, the storage server 44, the application management server 45, the container management server 46, and the scale control server 100 will be described.
FIG. 6 is a diagram illustrating an example of an application setting table.
 アプリケーション設定テーブル121は、アプリケーション管理サーバ45が有する。アプリケーション設定テーブル121は、アプリケーションID、最低インスタンス数、メモリ容量、ディスク容量、CPU閾値、メモリ閾値、監視時間1、監視時間2および監視時間3の項目を有する。アプリケーション設定テーブル121の1つのレコードは、1つのアプリケーションソフトウェアに対応する。少なくとも一部の項目の値は、コンテナイメージを生成するにあたって管理者端末42から指定される。 The application management server 45 has the application setting table 121. The application setting table 121 includes items of application ID, minimum number of instances, memory capacity, disk capacity, CPU threshold value, memory threshold value, monitoring time 1, monitoring time 2, and monitoring time 3. One record of the application setting table 121 corresponds to one application software. The values of at least some items are specified from the administrator terminal 42 when generating the container image.
 アプリケーションIDの項目には、アプリケーションソフトウェアの識別子が登録される。同じアプリケーションソフトウェアが複数のコンテナで実行され得るため、同じアプリケーションIDをもつ複数のアプリケーションインスタンスが存在し得る。アプリケーションIDは、アプリケーション管理サーバ45が付与してもよいし、管理者端末42が指定してもよい。最低インスタンス数の項目には、アプリケーションインスタンス数の下限が登録される。スケールインによっても、アプリケーションインスタンスは最低インスタンス数未満には減少しない。最低インスタンス数は、管理者端末42から指定される。 In the application ID item, an application software identifier is registered. Since the same application software can be executed in multiple containers, there can be multiple application instances with the same application ID. The application ID may be given by the application management server 45 or may be specified by the administrator terminal 42. In the item of the minimum number of instances, a lower limit of the number of application instances is registered. Scale-in does not reduce application instances below the minimum number of instances. The minimum number of instances is designated from the administrator terminal 42.
 メモリ容量の項目には、管理者端末42が希望するコンテナ1つ当たりのRAMリソース量(RAM記憶領域のサイズ)が登録される。ディスク容量の項目には、管理者端末42が希望するコンテナ1つ当たりのディスクリソース量(HDD記憶領域のサイズ)が登録される。コンテナサーバ200,200aが十分なハードウェアリソースを有している場合、このメモリ容量およびディスク容量が各コンテナに割り当てられる。ただし、コンテナサーバ200,200aのハードウェアリソースが不足している場合、この値未満のメモリ容量およびディスク容量が各コンテナに割り当てられることもある。メモリ容量およびディスク容量は、管理者端末42から指定される。 In the memory capacity item, the RAM resource amount (size of the RAM storage area) per container desired by the administrator terminal 42 is registered. In the disk capacity item, the disk resource amount (size of HDD storage area) per container desired by the administrator terminal 42 is registered. When the container servers 200 and 200a have sufficient hardware resources, this memory capacity and disk capacity are allocated to each container. However, when the hardware resources of the container servers 200 and 200a are insufficient, a memory capacity and a disk capacity less than these values may be allocated to each container. The memory capacity and the disk capacity are designated from the administrator terminal 42.
 CPU閾値の項目には、スケールアウトを行うか否か判断する基準となるCPUリソースの閾値が登録される。少なくとも1つのコンテナにおいて現在のCPU使用率がCPU閾値を超えた場合、スケールアウトが決定される。メモリ閾値の項目には、スケールアウトを行うか否か判断する基準となるRAMリソースの閾値が登録される。少なくとも1つのコンテナにおいて現在のRAM使用量がメモリ閾値を超えた場合、スケールアウトが決定される。CPU閾値およびメモリ閾値は、管理者端末42から指定される。 In the “CPU threshold value” field, a threshold value of a CPU resource serving as a reference for determining whether to perform scale-out is registered. Scale-out is determined when the current CPU utilization exceeds the CPU threshold in at least one container. In the memory threshold item, a threshold value of a RAM resource that is a reference for determining whether or not to perform scale-out is registered. Scale-out is determined if the current RAM usage in at least one container exceeds the memory threshold. The CPU threshold and the memory threshold are specified from the administrator terminal 42.
 監視時間1、監視時間2および監視時間3の項目には、スケールインの際に停止させるコンテナを選択するために用いられる時間閾値が登録される。監視時間1は、あるコンテナをロードバランサ43がリクエストの振り分け対象から除外してからの経過時間の閾値である。監視時間2は、あるコンテナがストレージサーバ44のサービスを全く利用していない時間の閾値である。監視時間3は、あるコンテナがストレージサーバ44に対するポーリング以外のサービスを利用していない時間の閾値である。 In the items of monitoring time 1, monitoring time 2 and monitoring time 3, a time threshold used for selecting a container to be stopped at the time of scale-in is registered. The monitoring time 1 is a threshold value of an elapsed time after the load balancer 43 excludes a container from a request distribution target. The monitoring time 2 is a threshold value for a time during which a certain container does not use the service of the storage server 44 at all. The monitoring time 3 is a threshold value of a time during which a container does not use a service other than polling for the storage server 44.
 監視時間1、監視時間2および監視時間3は、アプリケーション管理サーバ45が付与してもよいし、管理者端末42が指定してもよい。例えば、監視時間1のデフォルト値を30分、監視時間2のデフォルト値を5分、監視時間3のデフォルト値を10分とする。監視時間1、監視時間2および監視時間3の使用方法の詳細は後述する。 The monitoring time 1, the monitoring time 2, and the monitoring time 3 may be given by the application management server 45 or may be designated by the administrator terminal 42. For example, the default value of monitoring time 1 is 30 minutes, the default value of monitoring time 2 is 5 minutes, and the default value of monitoring time 3 is 10 minutes. Details of how to use the monitoring time 1, the monitoring time 2, and the monitoring time 3 will be described later.
 図7は、アプリケーションインスタンステーブルの例を示す図である。
 アプリケーションインスタンステーブル122は、スケール制御サーバ100が有する。アプリケーションインスタンステーブル122は、アプリケーションIDおよびインスタンスIDの項目を有する。アプリケーションインスタンステーブル122の1つのレコードは、1つのアプリケーションソフトウェアに対応する。
FIG. 7 is a diagram illustrating an example of an application instance table.
The scale instance server 122 has the application instance table 122. The application instance table 122 has items of application ID and instance ID. One record of the application instance table 122 corresponds to one application software.
 アプリケーションIDの項目には、アプリケーション設定テーブル121と同様のアプリケーションIDが登録される。インスタンスIDの項目には、アプリケーションインスタンスの識別子が列挙される。コンテナを追加する毎に、追加されるコンテナに対してアプリケーション管理サーバ45がインスタンスIDを付与する。 In the application ID item, an application ID similar to that in the application setting table 121 is registered. In the instance ID item, identifiers of application instances are listed. Each time a container is added, the application management server 45 assigns an instance ID to the added container.
 図8は、コンテナリソーステーブルの例を示す図である。
 コンテナリソーステーブル123は、コンテナ管理サーバ46が有する。コンテナリソーステーブル123は、インスタンスID、時刻、CPU使用率、メモリ使用量およびディスク使用量の項目を有する。
FIG. 8 is a diagram illustrating an example of a container resource table.
The container resource table 123 is held by the container management server 46. The container resource table 123 includes items of instance ID, time, CPU usage rate, memory usage amount, and disk usage amount.
 インスタンスIDの項目には、アプリケーションインスタンステーブル122と同様のインスタンスIDが登録される。時刻の項目には、CPU使用率、メモリ使用量およびディスク使用量が測定された時刻が登録される。コンテナリソーステーブル123には、少なくとも直近5秒間のCPU使用率、メモリ使用量およびディスク使用量が登録される。 In the instance ID item, an instance ID similar to that of the application instance table 122 is registered. In the time item, the time when the CPU usage rate, the memory usage amount, and the disk usage amount are measured is registered. In the container resource table 123, the CPU usage rate, the memory usage amount, and the disk usage amount for at least the latest 5 seconds are registered.
 CPU使用率の項目には、各コンテナの各時刻に測定されたCPU使用率が登録される。メモリ使用量の項目には、各コンテナの各時刻に測定されたRAM使用量が登録される。ディスク使用量の項目には、各コンテナの各時刻に測定されたHDD使用量が登録される。コンテナ管理サーバ46は、定期的にコンテナサーバ200,200aから、各コンテナのCPU使用率、メモリ使用量およびディスク使用量を収集する。 The CPU usage rate measured at each time of each container is registered in the item of CPU usage rate. In the item of memory usage, the RAM usage measured at each time of each container is registered. In the disk usage amount item, the HDD usage amount measured at each time of each container is registered. The container management server 46 periodically collects the CPU usage rate, the memory usage amount, and the disk usage amount of each container from the container servers 200 and 200a.
 図9は、振り分けテーブルと通信ログテーブルの例を示す図である。
 振り分けテーブル124は、ロードバランサ43が有する。振り分けテーブル124は、アドレス、インスタンスID、停止フラグおよび停止時刻の項目を有する。
FIG. 9 is a diagram illustrating an example of a sorting table and a communication log table.
The distribution table 124 is included in the load balancer 43. The distribution table 124 includes items of address, instance ID, stop flag, and stop time.
 アドレスの項目には、クライアント41が送信するリクエストの宛先となるアプリケーションソフトウェアのアドレスが登録される。アドレスはリクエストに含まれている。1つのアドレスは1つのアプリケーションソフトウェアに対応する。アドレスは、例えば、IP(Internet Protocol)アドレスまたはURL(Uniform Resource Locator)である。インスタンスIDの項目には、アプリケーションインスタンステーブル122およびコンテナリソーステーブル123と同様のインスタンスIDが登録される。 In the address field, the address of the application software that is the destination of the request transmitted by the client 41 is registered. The address is included in the request. One address corresponds to one application software. The address is, for example, an IP (Internet Protocol) address or a URL (Uniform Resource Locator). In the instance ID item, an instance ID similar to that in the application instance table 122 and the container resource table 123 is registered.
 停止フラグの項目には、リクエストの振り分け対象から除外されているか否かを示すフラグが登録される。停止フラグ=Falseは、振り分け対象から除外されていないことを示す。停止フラグ=Trueは、振り分け対象から除外されていることを示す。前述のように、生存確認メッセージに対する応答がないコンテナは、ハングアップなどにより異常停止している可能性があるためリクエストの振り分け対象から除外される。停止時刻の項目には、停止フラグがFalseからTrueに書き換えられた時刻、すなわち、リクエストの振り分け対象から除外された時刻が登録される。 In the stop flag item, a flag indicating whether or not it is excluded from the request distribution target is registered. The stop flag = False indicates that it is not excluded from the distribution target. Stop flag = True indicates that the flag is excluded from the distribution target. As described above, a container that does not respond to the existence confirmation message is excluded from the request distribution target because there is a possibility that the container has stopped abnormally due to a hangup or the like. In the item of stop time, the time when the stop flag is rewritten from False to True, that is, the time excluded from the request distribution target is registered.
 通信ログテーブル125は、ロードバランサ43が有する。通信ログテーブル125は、アドレス、インスタンスID、通信方向および転送時刻の項目を有する。通信ログテーブル125の1つのレコードは、ロードバランサ43の1回の転送処理に対応する。 The communication log table 125 is included in the load balancer 43. The communication log table 125 includes items of address, instance ID, communication direction, and transfer time. One record in the communication log table 125 corresponds to one transfer process of the load balancer 43.
 アドレスの項目には、転送先または送信元のアプリケーションソフトウェアのアドレスが登録される。インスタンスIDの項目には、転送先または送信元のコンテナ(すなわち、アプリケーションインスタンス)のインスタンスIDが登録される。通信方向の項目には、ロードバランサ43が転送したメッセージの種類が登録される。通信方向は、クライアント41からコンテナサーバ200,200aへのリクエストと、コンテナサーバ200,200aからクライアント41へのレスポンスとを区別する。転送時刻の項目には、ロードバランサ43がリクエストまたはレスポンスを転送した時刻が登録される。 In the address field, the address of the application software of the transfer destination or sender is registered. In the instance ID item, an instance ID of a transfer destination or transmission source container (that is, an application instance) is registered. The type of message transferred by the load balancer 43 is registered in the item of communication direction. The communication direction distinguishes a request from the client 41 to the container server 200, 200a and a response from the container server 200, 200a to the client 41. In the transfer time item, the time at which the load balancer 43 transferred the request or response is registered.
 図10は、サービスログテーブルの例を示す図である。
 サービスログテーブル126は、ストレージサーバ44が有する。サービスログテーブル126は、アプリケーションID、インスタンスID、要求種別および要求時刻の項目を有する。サービスログテーブル126の1つのレコードは、コンテナサーバ200,200aからストレージサーバ44への1回の要求に対応する。
FIG. 10 is a diagram illustrating an example of a service log table.
The service log table 126 is included in the storage server 44. The service log table 126 includes items of application ID, instance ID, request type, and request time. One record in the service log table 126 corresponds to one request from the container server 200, 200a to the storage server 44.
 アプリケーションIDの項目には、要求元のアプリケーションソフトウェアのアプリケーションIDが登録される。インスタンスIDの項目には、要求元のコンテナ(すなわち、アプリケーションインスタンス)のインスタンスIDが登録される。要求種別の項目には、ストレージサーバ44が受け付けたサービス要求の種別が登録される。要求時刻の項目には、ストレージサーバ44が要求を受け付けた時刻が登録される。 In the application ID item, the application ID of the requesting application software is registered. In the instance ID item, an instance ID of a requesting container (that is, an application instance) is registered. In the request type item, the type of service request accepted by the storage server 44 is registered. In the request time item, the time when the storage server 44 received the request is registered.
 ここで、サービス要求の種別には、データベース参照、データベース更新、キューポーリング、キュー読み出しおよびキュー書き込みが含まれる。データベース参照の要求に対して、ストレージサーバ44は、指定された検索条件に該当するデータをデータベースから検索し、検索されたデータベースを返信する。データベース更新の要求に対して、ストレージサーバ44は、指定されたデータをデータベースに書き込み、書き込みの成否を返信する。キューポーリングの要求に対して、ストレージサーバ44は、指定されたキューにデータが格納されているか確認し、データの有無を返信する。キュー読み出しの要求に対して、ストレージサーバ44は、指定されたキューからデータを読み出し、読み出したデータを返信する。キュー書き込みの要求に対して、ストレージサーバ44は、指定されたデータを指定されたキューに書き込み、書き込みの成否を返信する。 Here, the types of service requests include database reference, database update, queue polling, queue read and queue write. In response to the database reference request, the storage server 44 searches the database for data corresponding to the specified search condition, and returns the searched database. In response to the database update request, the storage server 44 writes the specified data to the database and returns a success or failure of the writing. In response to the queue polling request, the storage server 44 checks whether data is stored in the designated queue, and returns the presence / absence of data. In response to the queue read request, the storage server 44 reads data from the designated queue and returns the read data. In response to the queue write request, the storage server 44 writes the specified data to the specified queue and returns a success or failure of the write.
 サービス要求の種別によっては、ストレージサーバ44が要求を受け付けてから応答するまで長時間を要することがある。ストレージサーバ44に要求を送信したコンテナは、ストレージサーバ44からの応答を待つことになる。その間、当該コンテナはCPUリソース、RAMリソースおよびHDDリソースをほとんど追加的に消費しないことがある。また、キューポーリングは、同じコンテナによって定期的に行われることがある。また、複数のコンテナが同じキューを共有することがあり、それら複数のコンテナが同じキューに対して定期的にキューポーリングを行うことがある。 Depending on the type of service request, it may take a long time for the storage server 44 to respond after receiving the request. The container that transmitted the request to the storage server 44 waits for a response from the storage server 44. Meanwhile, the container may consume little additional CPU, RAM, and HDD resources. In addition, queue polling may be performed periodically by the same container. A plurality of containers may share the same queue, and the plurality of containers may periodically perform queue polling for the same queue.
 次に、ロードバランサ43、ストレージサーバ44、アプリケーション管理サーバ45、コンテナ管理サーバ46、スケール制御サーバ100およびコンテナサーバ200,200aの間の通信の流れについて説明する。以下では、複数のコンテナサーバのうちコンテナサーバ200にコンテナが配置されるものと仮定する。 Next, the flow of communication among the load balancer 43, the storage server 44, the application management server 45, the container management server 46, the scale control server 100, and the container servers 200 and 200a will be described. In the following, it is assumed that a container is arranged in the container server 200 among the plurality of container servers.
 図11は、サーバ間の通信例を示すシーケンス図である。
 アプリケーション管理サーバ45は、管理者端末42からアプリケーションソフトウェアの起動の要求を受け付ける。この要求には、最低インスタンス数、メモリ容量、ディスク容量、CPU閾値およびメモリ閾値が含まれる。この要求には、監視時間1、監視時間2および監視時間3が含まれてもよい。監視時間1、監視時間2および監視時間3が含まれていない場合、アプリケーション管理サーバ45は、そのデフォルト値を設定する。
FIG. 11 is a sequence diagram illustrating an example of communication between servers.
The application management server 45 receives a request for starting application software from the administrator terminal 42. This request includes the minimum number of instances, memory capacity, disk capacity, CPU threshold, and memory threshold. This request may include monitoring time 1, monitoring time 2, and monitoring time 3. When the monitoring time 1, the monitoring time 2, and the monitoring time 3 are not included, the application management server 45 sets the default value.
 アプリケーション管理サーバ45は、アプリケーションソフトウェアにアプリケーションIDを付与する。また、アプリケーション管理サーバ45は、初回に起動するコンテナの数を決定し、起動する各コンテナ(すなわち、各アプリケーションインスタンス)にインスタンスIDを付与する。初回に起動するコンテナの数は、例えば、最低インスタンス数とする。アプリケーション管理サーバ45は、アプリケーション設定テーブル121にレコードを追加する。また、アプリケーション管理サーバ45は、アプリケーションプログラムを含むコンテナイメージを生成し、コンテナイメージをストレージサーバ44に保存する(S10)。アプリケーションプログラムは、管理者端末42から指定される。 Application management server 45 assigns an application ID to application software. Further, the application management server 45 determines the number of containers to be activated for the first time, and assigns an instance ID to each container to be activated (that is, each application instance). The number of containers activated for the first time is, for example, the minimum number of instances. The application management server 45 adds a record to the application setting table 121. Further, the application management server 45 generates a container image including the application program, and stores the container image in the storage server 44 (S10). The application program is designated from the administrator terminal 42.
 アプリケーション管理サーバ45は、コンテナ管理サーバ46にコンテナ起動を指示する。このとき、アプリケーション管理サーバ45は、アプリケーションIDおよび起動するコンテナのインスタンスIDを指定する(S11)。コンテナ管理サーバ46は、指定されたアプリケーションIDに対応するコンテナイメージをストレージサーバ44から取得する(S12)。コンテナ管理サーバ46は、コンテナサーバ200にコンテナを起動させる。このとき、コンテナ管理サーバ46は、コンテナイメージをコンテナ管理サーバ46に送信し、アプリケーションIDとインスタンスIDを指定する。コンテナサーバ200のコンテナ制御部202は、指定された数のコンテナを起動する(S13)。 The application management server 45 instructs the container management server 46 to start the container. At this time, the application management server 45 designates the application ID and the instance ID of the container to be activated (S11). The container management server 46 acquires a container image corresponding to the designated application ID from the storage server 44 (S12). The container management server 46 causes the container server 200 to activate the container. At this time, the container management server 46 transmits the container image to the container management server 46 and designates the application ID and the instance ID. The container control unit 202 of the container server 200 activates the designated number of containers (S13).
 コンテナ管理サーバ46は、アプリケーションソフトウェアのアドレスと起動されたコンテナのインスタンスIDとを指定して、ロードバランサ43にアプリケーションインスタンスの登録を指示する。ロードバランサ43は、振り分けテーブル124にアドレスとインスタンスIDを登録する(S14)。これにより、ロードバランサ43は、起動されたコンテナに対してリクエストを振り分け始める。 The container management server 46 designates the address of the application software and the instance ID of the activated container, and instructs the load balancer 43 to register an application instance. The load balancer 43 registers the address and instance ID in the distribution table 124 (S14). As a result, the load balancer 43 starts distributing requests to the activated containers.
 コンテナ管理サーバ46は、スケール制御サーバ100にコンテナを起動したことを通知する。このとき、コンテナ管理サーバ46は、アプリケーションIDとインスタンスIDを指定する。スケール制御サーバ100は、アプリケーションインスタンステーブル122にアプリケーションIDとインスタンスIDを登録する(S15)。 The container management server 46 notifies the scale control server 100 that the container has been started. At this time, the container management server 46 designates an application ID and an instance ID. The scale control server 100 registers the application ID and the instance ID in the application instance table 122 (S15).
 ロードバランサ43は、クライアント41からリクエストを受信する。すると、ロードバランサ43は、振り分けテーブル124を参照して転送先のコンテナを選択し、選択したコンテナにリクエストを転送する(S16)。また、ロードバランサ43は、通信ログテーブル125に転送のログを記録する。 The load balancer 43 receives a request from the client 41. Then, the load balancer 43 refers to the distribution table 124, selects a transfer destination container, and transfers the request to the selected container (S16). The load balancer 43 records a transfer log in the communication log table 125.
 コンテナサーバ200上のコンテナのアプリケーションインスタンスは、リクエストを受信すると、リクエストに応じた処理を実行する。このとき、アプリケーションインスタンスは、ストレージサーバ44が提供するサービスを利用することがある(S17)。アプリケーションインスタンスは、処理結果を含むレスポンスをロードバランサ43に送信する(S18)。ロードバランサ43は、レスポンスをクライアント41に転送する。また、ロードバランサ43は、通信ログテーブル125に転送のログを記録する。 When the application instance of the container on the container server 200 receives the request, it executes processing according to the request. At this time, the application instance may use a service provided by the storage server 44 (S17). The application instance transmits a response including the processing result to the load balancer 43 (S18). The load balancer 43 transfers the response to the client 41. The load balancer 43 records a transfer log in the communication log table 125.
 スケール制御サーバ100は、定期的にアプリケーション管理サーバ45から、アプリケーション設定テーブル121に登録された設定情報を取得する(S19)。コンテナサーバ200のコンテナ制御部202は、各コンテナのCPU使用率、メモリ使用量およびディスク使用量を測定する。コンテナ管理サーバ46は、定期的にコンテナサーバ200から、各コンテナのCPU使用率、メモリ使用量およびディスク使用量を示すリソース情報を取得し、コンテナリソーステーブル123に登録する(S20)。スケール制御サーバ100は、定期的にコンテナ管理サーバ46から、コンテナリソーステーブル123に登録されたリソース情報を取得する(S21)。 The scale control server 100 periodically acquires setting information registered in the application setting table 121 from the application management server 45 (S19). The container control unit 202 of the container server 200 measures the CPU usage rate, the memory usage amount, and the disk usage amount of each container. The container management server 46 periodically acquires resource information indicating the CPU usage rate, the memory usage amount, and the disk usage amount of each container from the container server 200 and registers it in the container resource table 123 (S20). The scale control server 100 periodically acquires the resource information registered in the container resource table 123 from the container management server 46 (S21).
 スケール制御サーバ100は、定期的にロードバランサ43から、振り分けテーブル124に登録された振り分け情報を取得する。また、スケール制御サーバ100は、定期的にロードバランサ43から、通信ログテーブル125に登録された通信ログを取得する(S22)。また、スケール制御サーバ100は、定期的にストレージサーバ44から、サービスログテーブル126に登録されたサービスログを取得する(S23)。 The scale control server 100 periodically acquires distribution information registered in the distribution table 124 from the load balancer 43. Further, the scale control server 100 periodically acquires a communication log registered in the communication log table 125 from the load balancer 43 (S22). Further, the scale control server 100 periodically acquires the service log registered in the service log table 126 from the storage server 44 (S23).
 図12は、サーバ間の通信例を示すシーケンス図(続き)である。
 スケール制御サーバ100は、ステップS19,S21~S23で収集した情報に基づいて、各アプリケーションソフトウェアのスケールアウトの要否を判定する。スケール制御サーバ100は、少なくとも1つのコンテナのCPU使用率がCPU閾値を超えているか、少なくとも1つのコンテナのメモリ使用量がメモリ閾値を超えているアプリケーションソフトウェアを、スケールアウトすべきと判定する。また、スケール制御サーバ100は、ステップS19,S21~S23で収集した情報に基づいて、各アプリケーションソフトウェアのスケールインの要否を判定する。スケールインの場合、スケール制御サーバ100は、停止するコンテナを選択する。スケールインの判定方法は後述する。
FIG. 12 is a sequence diagram (continued) illustrating an example of communication between servers.
The scale control server 100 determines whether or not each application software needs to be scaled out based on the information collected in steps S19 and S21 to S23. The scale control server 100 determines that application software in which the CPU usage rate of at least one container exceeds the CPU threshold or the memory usage of at least one container exceeds the memory threshold should be scaled out. The scale control server 100 determines whether or not each application software needs to be scaled in based on the information collected in steps S19 and S21 to S23. In the case of scale-in, the scale control server 100 selects a container to be stopped. A method for determining scale-in will be described later.
 スケールアウトを決定した場合、スケール制御サーバ100は、スケールアウトをアプリケーション管理サーバ45に通知する(S24)。このとき、スケール制御サーバ100は、スケールアウトするアプリケーションソフトウェアのアプリケーションIDを指定する。アプリケーション管理サーバ45は、追加するコンテナにインスタンスIDを付与する。アプリケーション管理サーバ45は、コンテナ追加をコンテナ管理サーバ46に指示する(S25)。このとき、アプリケーション管理サーバ45は、アプリケーションIDおよび追加するコンテナのインスタンスIDを指定する。 When the scale-out is determined, the scale control server 100 notifies the application management server 45 of the scale-out (S24). At this time, the scale control server 100 designates the application ID of the application software to be scaled out. The application management server 45 assigns an instance ID to the container to be added. The application management server 45 instructs the container management server 46 to add a container (S25). At this time, the application management server 45 designates the application ID and the instance ID of the container to be added.
 コンテナ管理サーバ46は、指定されたアプリケーションIDに対応するコンテナイメージをストレージサーバ44から取得する(S26)。コンテナ管理サーバ46は、コンテナサーバ200にコンテナを起動させる(S27)。このとき、コンテナ管理サーバ46は、コンテナイメージをコンテナ管理サーバ46に送信し、アプリケーションIDとインスタンスIDを指定する。コンテナ管理サーバ46は、アプリケーションソフトウェアのアドレスと追加されたコンテナのインスタンスIDとを指定して、ロードバランサ43にアプリケーションインスタンスの登録を指示する(S28)。これにより、ロードバランサ43は、追加されたコンテナに対してリクエストを振り分け始める。 The container management server 46 acquires a container image corresponding to the designated application ID from the storage server 44 (S26). The container management server 46 causes the container server 200 to activate a container (S27). At this time, the container management server 46 transmits the container image to the container management server 46 and designates the application ID and the instance ID. The container management server 46 designates the address of the application software and the instance ID of the added container, and instructs the load balancer 43 to register the application instance (S28). As a result, the load balancer 43 starts distributing requests to the added container.
 コンテナ管理サーバ46は、スケール制御サーバ100にコンテナを起動したことを通知する。このとき、コンテナ管理サーバ46は、アプリケーションIDとインスタンスIDを指定する。スケール制御サーバ100は、アプリケーションIDと対応付けてインスタンスIDをアプリケーションインスタンステーブル122に追加する(S29)。 The container management server 46 notifies the scale control server 100 that the container has been started. At this time, the container management server 46 designates an application ID and an instance ID. The scale control server 100 adds the instance ID in association with the application ID to the application instance table 122 (S29).
 一方、スケールインを決定した場合、スケール制御サーバ100は、スケールインをアプリケーション管理サーバ45に通知する(S30)。このとき、スケール制御サーバ100は、スケールアウトするアプリケーションソフトウェアのアプリケーションIDと停止させるコンテナのインスタンスIDを指定する。アプリケーション管理サーバ45は、コンテナ削除をコンテナ管理サーバ46に指示する(S31)。このとき、アプリケーション管理サーバ45は、アプリケーションIDおよびインスタンスIDを指定する。 On the other hand, when the scale-in is determined, the scale control server 100 notifies the application management server 45 of the scale-in (S30). At this time, the scale control server 100 designates the application ID of the application software to be scaled out and the instance ID of the container to be stopped. The application management server 45 instructs the container management server 46 to delete the container (S31). At this time, the application management server 45 designates an application ID and an instance ID.
 コンテナ管理サーバ46は、アプリケーションソフトウェアのアドレスと停止するコンテナのインスタンスIDとを指定して、ロードバランサ43にアプリケーションインスタンスの抹消を指示する(S32)。ロードバランサ43は、指定されたインスタンスIDを振り分けテーブル124から削除する。これにより、ロードバランサ43は、停止するコンテナに対してリクエストを振り分けないようにする。コンテナ管理サーバ46は、アプリケーションIDとインスタンスIDを指定し、コンテナサーバ200にコンテナを停止させる(S33)。コンテナサーバ200のコンテナ制御部202は、指定されたコンテナのアプリケーションインスタンスを強制停止させ、当該コンテナに割り当てられていたハードウェアリソースを解放する。 The container management server 46 specifies the address of the application software and the instance ID of the container to be stopped, and instructs the load balancer 43 to delete the application instance (S32). The load balancer 43 deletes the specified instance ID from the distribution table 124. As a result, the load balancer 43 prevents the request from being distributed to the container to be stopped. The container management server 46 designates the application ID and the instance ID, and causes the container server 200 to stop the container (S33). The container control unit 202 of the container server 200 forcibly stops the application instance of the designated container, and releases hardware resources allocated to the container.
 次に、スケール制御サーバの処理について説明する。
 図13は、スケール制御サーバの機能例を示すブロック図である。
 スケール制御サーバ100は、インスタンス情報記憶部131、設定情報記憶部132、リソース情報記憶部133、振り分け情報記憶部134、通信ログ記憶部135およびサービスログ記憶部136を有する。また、スケール制御サーバ100は、情報収集部141、インスタンス情報管理部142、スケール判定部143およびスケール変更通知部144を有する。インスタンス情報記憶部131、設定情報記憶部132、リソース情報記憶部133、振り分け情報記憶部134、通信ログ記憶部135およびサービスログ記憶部136は、例えば、RAM102またはHDD103に確保した記憶領域を用いて実装される。情報収集部141、インスタンス情報管理部142、スケール判定部143およびスケール変更通知部144は、例えば、CPU101が実行するプログラムモジュールを用いて実装される。
Next, processing of the scale control server will be described.
FIG. 13 is a block diagram illustrating a function example of the scale control server.
The scale control server 100 includes an instance information storage unit 131, a setting information storage unit 132, a resource information storage unit 133, a distribution information storage unit 134, a communication log storage unit 135, and a service log storage unit 136. The scale control server 100 also includes an information collection unit 141, an instance information management unit 142, a scale determination unit 143, and a scale change notification unit 144. The instance information storage unit 131, the setting information storage unit 132, the resource information storage unit 133, the distribution information storage unit 134, the communication log storage unit 135, and the service log storage unit 136 use, for example, a storage area secured in the RAM 102 or the HDD 103. Implemented. The information collection unit 141, the instance information management unit 142, the scale determination unit 143, and the scale change notification unit 144 are implemented using program modules executed by the CPU 101, for example.
 インスタンス情報記憶部131は、アプリケーションインスタンステーブル122、すなわち、インスタンス情報を記憶する。設定情報記憶部132は、アプリケーション設定テーブル121と同様のテーブル、すなわち、収集された設定情報を記憶する。リソース情報記憶部133は、コンテナリソーステーブル123と同様のテーブル、すなわち、収集されたリソース情報を記憶する。振り分け情報記憶部134は、振り分けテーブル124と同様のテーブル、すなわち、収集された振り分け情報を記憶する。通信ログ記憶部135は、通信ログテーブル125と同様のテーブル、すなわち、収集された通信ログを記憶する。サービスログ記憶部136は、サービスログテーブル126と同様のテーブル、すなわち、収集されたサービスログを記憶する。 The instance information storage unit 131 stores an application instance table 122, that is, instance information. The setting information storage unit 132 stores a table similar to the application setting table 121, that is, collected setting information. The resource information storage unit 133 stores a table similar to the container resource table 123, that is, collected resource information. The distribution information storage unit 134 stores a table similar to the distribution table 124, that is, collected distribution information. The communication log storage unit 135 stores a table similar to the communication log table 125, that is, collected communication logs. The service log storage unit 136 stores a table similar to the service log table 126, that is, collected service logs.
 情報収集部141は、ロードバランサ43、ストレージサーバ44、アプリケーション管理サーバ45およびコンテナ管理サーバ46から、定期的に各種の情報を収集する。情報収集部141は、アプリケーション管理サーバ45から設定情報を取得し、取得した設定情報を設定情報記憶部132に保存する。情報収集部141は、コンテナ管理サーバ46からリソース情報を取得し、取得したリソース情報をリソース情報記憶部133に保存する。情報収集部141は、ロードバランサ43から振り分け情報および通信ログを取得し、取得した振り分け情報を振り分け情報記憶部134に保存し、取得した通信ログを通信ログ記憶部135に保存する。情報収集部141は、ストレージサーバ44からサービスログを取得し、取得したサービスログをサービスログ記憶部136に保存する。 The information collection unit 141 periodically collects various types of information from the load balancer 43, the storage server 44, the application management server 45, and the container management server 46. The information collection unit 141 acquires setting information from the application management server 45 and stores the acquired setting information in the setting information storage unit 132. The information collection unit 141 acquires resource information from the container management server 46 and stores the acquired resource information in the resource information storage unit 133. The information collection unit 141 acquires distribution information and a communication log from the load balancer 43, stores the acquired distribution information in the distribution information storage unit 134, and stores the acquired communication log in the communication log storage unit 135. The information collection unit 141 acquires a service log from the storage server 44 and stores the acquired service log in the service log storage unit 136.
 インスタンス情報管理部142は、インスタンス情報記憶部131に記憶されたアプリケーションインスタンステーブル122を管理する。インスタンス情報管理部142は、コンテナ管理サーバ46からコンテナの起動が通知されたとき、指定されたアプリケーションIDやインスタンスIDをアプリケーションインスタンステーブル122に登録する。また、インスタンス情報管理部142は、スケール判定部143がスケールイン対象のコンテナを選択したとき、選択されたコンテナのインスタンスIDをアプリケーションインスタンステーブル122から削除する。 The instance information management unit 142 manages the application instance table 122 stored in the instance information storage unit 131. The instance information management unit 142 registers the designated application ID and instance ID in the application instance table 122 when the container management server 46 notifies the activation of the container. Also, when the scale determination unit 143 selects a scale-in target container, the instance information management unit 142 deletes the instance ID of the selected container from the application instance table 122.
 スケール判定部143は、定期的に各アプリケーションソフトウェアのスケールアウトの要否およびスケールインの要否を判定する。スケールインの場合、スケール判定部143は、コンテナサーバ200,200aに配置されたコンテナの中から停止するコンテナを選択する。スケール判定部143は、インスタンス情報記憶部131、設定情報記憶部132、リソース情報記憶部133、振り分け情報記憶部134、通信ログ記憶部135およびサービスログ記憶部136に記憶された情報を参照する。 The scale determination unit 143 periodically determines whether or not each application software needs to be scaled out and scaled in. In the case of scale-in, the scale determination unit 143 selects a container to be stopped from the containers arranged in the container servers 200 and 200a. The scale determination unit 143 refers to information stored in the instance information storage unit 131, the setting information storage unit 132, the resource information storage unit 133, the distribution information storage unit 134, the communication log storage unit 135, and the service log storage unit 136.
 スケール変更通知部144は、スケール変更をアプリケーション管理サーバ45に通知する。スケール判定部143がスケールアウトを決定した場合、対象のアプリケーションソフトウェアのアプリケーションIDをアプリケーション管理サーバ45に通知する。また、スケール変更通知部144は、スケール判定部143がスケールインを決定したとき、対象のアプリケーションソフトウェアのアプリケーションIDおよび停止するコンテナのインスタンスIDをアプリケーション管理サーバ45に通知する。 The scale change notification unit 144 notifies the application management server 45 of the scale change. When the scale determination unit 143 determines to scale out, the application management server 45 is notified of the application ID of the target application software. When the scale determination unit 143 determines scale-in, the scale change notification unit 144 notifies the application management server 45 of the application ID of the target application software and the instance ID of the container to be stopped.
 次に、スケールインの判定について説明する。
 図14は、スケールイン判定の手順例を示すフローチャートである。
 (S40)スケール判定部143は、アプリケーションソフトウェアを1つ選択する。
Next, scale-in determination will be described.
FIG. 14 is a flowchart illustrating a procedure example of scale-in determination.
(S40) The scale determination unit 143 selects one application software.
 (S41)スケール判定部143は、アプリケーションインスタンステーブル122を参照して、ステップS40で選択したアプリケーションソフトウェアに対応するアプリケーションインスタンスの数(すなわち、コンテナの数)を算出する。 (S41) The scale determination unit 143 refers to the application instance table 122 and calculates the number of application instances (that is, the number of containers) corresponding to the application software selected in step S40.
 (S42)スケール判定部143は、ステップS41で算出したインスタンス数が、設定情報に含まれる最低インスタンス数より大きいか判断する。インスタンス数が最低インスタンス数より大きい場合、ステップS43に処理が進む。インスタンス数が最低インスタンス数以下である場合、ステップS40で選択したアプリケーションソフトウェアはスケールイン不要と判定され、ステップS60に処理が進む。 (S42) The scale determination unit 143 determines whether the number of instances calculated in step S41 is greater than the minimum number of instances included in the setting information. If the number of instances is greater than the minimum number of instances, the process proceeds to step S43. If the number of instances is equal to or less than the minimum number of instances, it is determined that the application software selected in step S40 does not need to be scaled in, and the process proceeds to step S60.
 (S43)スケール判定部143は、振り分け情報を参照して、ステップS40で選択したアプリケーションソフトウェアに対応するアプリケーションインスタンスの中に、振り分け対象から外れているものがあるか判断する。振り分け対象外のアプリケーションインスタンスがある場合はステップS44に処理が進み、振り分け対象外のアプリケーションインスタンスがない場合はステップS47に処理が進む。 (S43) The scale determination unit 143 refers to the distribution information and determines whether any of the application instances corresponding to the application software selected in step S40 is excluded from the distribution target. If there is an application instance that is not a distribution target, the process proceeds to step S44. If there is no application instance that is not a distribution target, the process proceeds to step S47.
 (S44)スケール判定部143は、振り分け情報から振り分け対象外のアプリケーションインスタンスの停止時刻を抽出し、停止時刻から現在までの経過時間を算出する。
 (S45)スケール判定部143は、ステップS44で算出した経過時間が、設定情報に含まれる監視時間1を超えているか判断する。監視時間1は、例えば、30分程度である。経過時間が監視時間1を超えている場合はステップS46に処理が進み、経過時間が監視時間1以下である場合はステップS47に処理が進む。
(S44) The scale determination unit 143 extracts the stop time of the application instances that are not to be distributed from the distribution information, and calculates the elapsed time from the stop time to the current time.
(S45) The scale determination unit 143 determines whether the elapsed time calculated in step S44 exceeds the monitoring time 1 included in the setting information. The monitoring time 1 is, for example, about 30 minutes. If the elapsed time exceeds the monitoring time 1, the process proceeds to step S46. If the elapsed time is equal to or less than the monitoring time 1, the process proceeds to step S47.
 (S46)スケール判定部143は、ステップS40で選択したアプリケーションソフトウェアについてスケールインを行うことを決定する。また、スケール判定部143は、停止対象のアプリケーションインスタンスとして、ステップS43,S45に該当するアプリケーションインスタンスを選択する。ステップS43,S45に該当するアプリケーションインスタンスが2以上ある場合、スケール判定部143は、その全てを停止対象として選択してよい。そして、ステップS60に処理が進む。 (S46) The scale determination unit 143 determines to scale in the application software selected in step S40. In addition, the scale determination unit 143 selects an application instance corresponding to steps S43 and S45 as the application instance to be stopped. When there are two or more application instances corresponding to Steps S43 and S45, the scale determination unit 143 may select all of them as stop targets. Then, the process proceeds to step S60.
 (S47)スケール判定部143は、通信ログから、振り分け対象になっているアプリケーションインスタンスのうち、リクエストを受信しているが現時点でレスポンスをまだ返信していない未応答のアプリケーションインスタンスを検索する。 (S47) The scale determination unit 143 searches the communication log for application instances that have received a request but have not yet returned a response at this time, among application instances that are to be distributed.
 (S48)スケール判定部143は、振り分け対象になっているアプリケーションインスタンスの全てが、未応答のアプリケーションインスタンスであるか判断する。全てのアプリケーションインスタンスが未応答である場合、ステップS40で選択したアプリケーションソフトウェアはスケールイン不可と判定され、ステップS60に処理が進む。未応答でないアプリケーションインスタンスがある場合、ステップS49に処理が進む。 (S48) The scale determination unit 143 determines whether all of the application instances to be distributed are unresponsive application instances. If all application instances have not yet responded, it is determined that the application software selected in step S40 cannot be scaled in, and the process proceeds to step S60. If there is an application instance that is not yet responded, the process proceeds to step S49.
 (S49)スケール判定部143は、振り分け対象になっているアプリケーションインスタンスのうち未応答のものを、停止対象の候補から除外する。
 図15は、スケールイン判定の手順例を示すフローチャート(続き)である。
(S49) The scale determination unit 143 excludes non-responding ones from among the application instances that are the allocation target from the candidates for the stop target.
FIG. 15 is a flowchart (continuation) illustrating an example of the procedure of scale-in determination.
 (S50)スケール判定部143は、候補のアプリケーションインスタンスそれぞれについて、リソース情報を参照してCPU使用率、メモリ使用量およびディスク使用量の変化を算出する。例えば、スケール判定部143は、直近5秒間のCPU使用率から、その最大値と最小値の差をCPU使用率の変化量として算出する。また、スケール判定部143は、直近5秒間のメモリ使用量から、その最大値と最小値の差をメモリ使用量の変化量として算出する。また、スケール判定部143は、直近5秒間のディスク使用量から、その最大値と最小値の差をディスク使用量の変化量として算出する。 (S50) The scale determination unit 143 calculates changes in the CPU usage rate, the memory usage amount, and the disk usage amount with reference to the resource information for each candidate application instance. For example, the scale determination unit 143 calculates the difference between the maximum value and the minimum value as the amount of change in the CPU usage rate from the CPU usage rate for the last 5 seconds. In addition, the scale determination unit 143 calculates the difference between the maximum value and the minimum value as the amount of change in the memory usage from the memory usage over the last 5 seconds. Also, the scale determination unit 143 calculates the difference between the maximum value and the minimum value as the change amount of the disk usage amount from the disk usage amount for the latest 5 seconds.
 (S51)スケール判定部143は、候補のアプリケーションインスタンスの中に、メモリ使用量の変化が十分に小さくかつディスク使用量の変化が十分に小さいアプリケーションインスタンスがあるか判断する。メモリ使用量の変化が十分に小さいとは、例えば、その変化量が閾値(例えば、割り当てられたRAMリソースの5%程度)より小さいことである。ディスク使用量の変化が十分に小さいとは、例えば、その変化量が閾値(例えば、割り当てられたHDDリソースの5%程度)より小さいことである。該当するアプリケーションインスタンスがある場合、ステップS52に処理が進む。該当するアプリケーションインスタンスがない場合、ステップS40で選択したアプリケーションソフトウェアはスケールイン不可と判定され、ステップS60に処理が進む。 (S51) The scale determination unit 143 determines whether there is an application instance in the candidate application instances in which the change in the memory usage is sufficiently small and the change in the disk usage is sufficiently small. The change in the memory usage is sufficiently small, for example, when the change is smaller than a threshold (for example, about 5% of the allocated RAM resource). The change in the disk usage is sufficiently small, for example, when the change is smaller than a threshold (for example, about 5% of the allocated HDD resource). If there is a corresponding application instance, the process proceeds to step S52. If there is no corresponding application instance, it is determined that the application software selected in step S40 cannot be scaled in, and the process proceeds to step S60.
 (S52)スケール判定部143は、ステップS51に該当するアプリケーションインスタンスの中に、CPU使用率の変化が十分に小さいアプリケーションインスタンスがあるか判断する。CPU使用率の変化が十分に小さいとは、例えば、その変化量が閾値(例えば、割り当てられたCPUリソースの5%程度)より小さいことである。該当するアプリケーションインスタンスがある場合はステップS53に処理が進み、該当するアプリケーションインスタンスがない場合はステップS56に処理が進む。 (S52) The scale determination unit 143 determines whether there is an application instance having a sufficiently small change in CPU usage rate among the application instances corresponding to step S51. The change in the CPU usage rate is sufficiently small, for example, when the amount of change is smaller than a threshold (for example, about 5% of the allocated CPU resource). If there is a corresponding application instance, the process proceeds to step S53. If there is no corresponding application instance, the process proceeds to step S56.
 (S53)スケール判定部143は、サービスログから、ステップS51,S52に該当するアプリケーションインスタンスからのサービス要求であって、直近の「監視時間2」のものを検索する。監視時間2は設定情報に含まれており、例えば、5分程度である。 (S53) The scale determination unit 143 searches the service log for the service request from the application instance corresponding to steps S51 and S52, and the latest “monitoring time 2”. The monitoring time 2 is included in the setting information, and is about 5 minutes, for example.
 (S54)スケール判定部143は、ステップS53で1以上のサービス要求が検索されたか、すなわち、ステップS51,S52に該当するアプリケーションインスタンスがサービスを最近利用しているか判断する。サービスの利用がある場合、ステップS40で選択したアプリケーションソフトウェアはスケールイン不可と判定され、ステップS60に処理が進む。サービスの利用がない場合、ステップS55に処理が進む。 (S54) The scale determination unit 143 determines whether one or more service requests are retrieved in step S53, that is, whether the application instance corresponding to steps S51 and S52 has recently used the service. When the service is used, it is determined that the application software selected in step S40 cannot be scaled in, and the process proceeds to step S60. If the service is not used, the process proceeds to step S55.
 (S55)スケール判定部143は、ステップS40で選択したアプリケーションソフトウェアについてスケールインを行うことを決定する。また、スケール判定部143は、停止対象のアプリケーションインスタンスとして、ステップS51,S52に該当し、かつ、サービスの利用がないアプリケーションインスタンスを選択する。該当するアプリケーションインスタンスが2以上ある場合、スケール判定部143は、そのうちの1つまたは所定数を停止対象として選択する。1回のスケールインで減少させるアプリケーションインスタンス数の上限は、予め固定しておいてもよいし、アプリケーションソフトウェア毎に設定情報に登録しておいてもよい。そして、ステップS60に処理が進む。 (S55) The scale determination unit 143 determines to scale in the application software selected in step S40. In addition, the scale determination unit 143 selects an application instance that corresponds to steps S51 and S52 and does not use a service as an application instance to be stopped. When there are two or more corresponding application instances, the scale determination unit 143 selects one or a predetermined number of them as a stop target. The upper limit of the number of application instances to be reduced by one scale-in may be fixed in advance, or may be registered in the setting information for each application software. Then, the process proceeds to step S60.
 (S56)スケール判定部143は、サービスログから、ステップS51に該当するアプリケーションインスタンスからのサービス要求であって、直近の「監視時間3」のものを検索する。監視時間3は設定情報に含まれており、例えば、10分程度である。 (S56) The scale determination unit 143 searches the service log for the service request from the application instance corresponding to step S51 and the latest “monitoring time 3”. The monitoring time 3 is included in the setting information, and is about 10 minutes, for example.
 (S57)スケール判定部143は、ステップS51に該当するアプリケーションインスタンスがサービスを最近利用していないか、または、サービス利用がキューポーリングのみであるか判断する。キューポーリング以外のサービス利用がある場合、ステップS40で選択したアプリケーションソフトウェアはスケールイン不可と判定され、ステップS60に処理が進む。サービス利用が全く無いかまたはキューポーリングのみである場合、ステップS58に処理が進む。なお、定期的なデータベース参照を、キューポーリングと同等の処理であると判定するようにしてもよい。 (S57) The scale determination unit 143 determines whether the application instance corresponding to step S51 has not recently used the service or whether the service is only queue polling. If there is service use other than queue polling, it is determined that the application software selected in step S40 cannot be scaled in, and the process proceeds to step S60. If no service is used or only queue polling is used, the process proceeds to step S58. Note that periodic database reference may be determined to be processing equivalent to queue polling.
 (S58)スケール判定部143は、サービスログから、ステップS51,S57に該当する停止対象の候補以外のアプリケーションインスタンスからのキューポーリングであって、直近の「監視時間3」のものを検索する。スケール判定部143は、キューポーリングを行う他のアプリケーションインスタンスが存在するか判断する。他のアプリケーションインスタンスが存在する場合、ステップS59に処理が進む。他のアプリケーションインスタンスが存在しない場合、ステップS40で選択したアプリケーションソフトウェアはスケールイン不可と判定され、ステップS60に処理が進む。 (S58) The scale determination unit 143 searches the service log for queue polling from an application instance other than the candidate to be stopped corresponding to steps S51 and S57 and having the latest “monitoring time 3”. The scale determination unit 143 determines whether there is another application instance that performs queue polling. If another application instance exists, the process proceeds to step S59. If no other application instance exists, it is determined that the application software selected in step S40 cannot be scaled in, and the process proceeds to step S60.
 (S59)スケール判定部143は、ステップS40で選択したアプリケーションソフトウェアについてスケールインを行うことを決定する。また、スケール判定部143は、停止対象のアプリケーションインスタンスとして、ステップS51,S57,S58に該当するアプリケーションインスタンスを選択する。該当するアプリケーションインスタンスが2以上ある場合、スケール判定部143は、そのうちの1つまたは所定数を停止対象として選択する。そして、ステップS60に処理が進む。 (S59) The scale determination unit 143 determines to scale in the application software selected in step S40. In addition, the scale determination unit 143 selects an application instance corresponding to steps S51, S57, and S58 as the application instance to be stopped. When there are two or more corresponding application instances, the scale determination unit 143 selects one or a predetermined number of them as a stop target. Then, the process proceeds to step S60.
 (S60)スケール判定部143は、ステップS40において全てのアプリケーションソフトウェアを選択したか判断する。全て選択した場合はスケールイン判定が終了し、未選択のものがある場合はステップS40に処理が進む。 (S60) The scale determination unit 143 determines whether or not all application software has been selected in step S40. If all are selected, the scale-in determination ends, and if there is an unselected one, the process proceeds to step S40.
 なお、ステップS54のサービス利用の有無を判定する期間(監視時間2)は、ステップS57のサービス利用の有無を判定する期間(監視時間3)よりも短いことが好ましい。CPU使用率とメモリ使用量とディスク使用量の全てが5秒以上変化していないアプリケーションインスタンスは、リクエストを全く受信していないかまたはストレージサーバ44からの応答を待っている状態であると推測される。長時間にわたって応答待ち状態になる可能性は低いため、監視時間2は比較的短い時間でよい。 In addition, it is preferable that the period (monitoring time 2) for determining whether or not the service is used in step S54 is shorter than the period (monitoring time 3) for determining whether or not the service is used in step S57. An application instance in which all of the CPU usage rate, the memory usage amount, and the disk usage amount have not changed for more than 5 seconds is presumed to have received no request or to wait for a response from the storage server 44. The Since there is a low possibility of waiting for a response for a long time, the monitoring time 2 may be a relatively short time.
 一方、CPU使用率は変化しているがメモリ使用量とディスク使用量が5秒以上変化していないアプリケーションインスタンスは、キューポーリングのみ行っている状態であると推測される。キューには外部からデータが到着する可能性があるため、処理の安全性の観点から監視時間3をやや長い時間に設定することが好ましい。また、キューポーリングのみ行っているアプリケーションインスタンスは、同様にキューポーリングを行っている他のアプリケーションインスタンスが存在する場合のみ停止可能と判断される。これにより、キューに到着したデータが処理されず残ってしまうリスクを低減できる。 On the other hand, it is presumed that an application instance whose CPU usage rate has changed but whose memory usage and disk usage have not changed for more than 5 seconds is only performing queue polling. Since data may arrive from the outside from the queue, it is preferable to set the monitoring time 3 to a slightly longer time from the viewpoint of process safety. In addition, it is determined that an application instance that performs only queue polling can be stopped only when another application instance that performs queue polling similarly exists. This can reduce the risk that data that has arrived in the queue will remain unprocessed.
 また、ステップS57のサービス利用の有無を判定する期間(監視時間3)は、サービスの種類に応じて変更するようにしてもよい。例えば、参照系のサービスについては監視時間3を比較的短く設定し、更新系のサービスについては監視時間3を比較的長く設定することが考えられる。これは、参照系のサービスを利用するアプリケーションインスタンスが突然停止しても、データの完全性が損なわれるリスクは小さいためである。一方、更新系のサービスを利用するアプリケーションインスタンスが処理中に突然停止すると、データの完全性が損なわれてしまうリスクがあるためである。 Further, the period (monitoring time 3) for determining whether or not the service is used in step S57 may be changed according to the type of service. For example, it is conceivable that the monitoring time 3 is set relatively short for the reference service, and the monitoring time 3 is set relatively long for the update service. This is because even if an application instance that uses a reference service suddenly stops, there is little risk of data integrity being lost. On the other hand, if an application instance that uses an update service suddenly stops during processing, there is a risk that the integrity of the data is impaired.
 第2の実施の形態の情報処理システムによれば、同じアプリケーションソフトウェアを実行する複数のコンテナそれぞれについて、スケールインの際に停止可能か判定される。CPU使用率とメモリ使用量とディスク使用量が5秒以上ほぼ変化しておらず、かつ、ストレージサーバ44のサービスを5分以上利用していないコンテナは、停止可能と判定される。また、メモリ使用量とディスク使用量が5秒以上ほぼ変化しておらず、かつ、キューポーリング以外のサービスを5分以上利用していないコンテナは、停止可能と判定される。それ以外のコンテナについては、停止不可と判定される。 According to the information processing system of the second embodiment, it is determined whether or not each of a plurality of containers that execute the same application software can be stopped during scale-in. A container in which the CPU usage rate, the memory usage amount, and the disk usage amount have not changed substantially for 5 seconds or more and the service of the storage server 44 has not been used for 5 minutes or more is determined to be able to be stopped. Further, it is determined that a container in which the memory usage and the disk usage have not substantially changed for 5 seconds or more and the service other than queue polling is not used for 5 minutes or more can be stopped. It is determined that the other containers cannot be stopped.
 これにより、未完了の処理のステートを有しているコンテナを停止させてしまうリスクを低減できる。また、未完了の処理のステートを有していないコンテナを迅速に停止させることができる。よって、停止させるコンテナを適切に選択することができる。 This can reduce the risk of stopping containers that have incomplete processing states. In addition, a container that does not have an incomplete processing state can be quickly stopped. Therefore, the container to be stopped can be appropriately selected.
 停止させるコンテナを選択する方法としては、CPU使用率とメモリ使用量とディスク使用量の何れも変化していないコンテナを選択する方法も考えられる。しかし、この方法では、外部サービスからの応答を待っているコンテナを誤って停止させてしまうリスクがある。また、この方法では、未完了の処理のステートを有していないものの、定期的にキューポーリングを行っているためにCPU使用率が変化しているコンテナを停止できない可能性がある。これに対し、第2の実施の形態によれば、各コンテナが未完了の処理のステートを有しているか否か精度よく推定することができる。 As a method of selecting a container to be stopped, a method of selecting a container in which none of the CPU usage rate, the memory usage amount, and the disk usage amount has changed can be considered. However, with this method, there is a risk that a container waiting for a response from an external service is erroneously stopped. Also, with this method, there is a possibility that a container whose CPU usage rate is changing cannot be stopped because it does not have an incomplete processing state but periodically performs queue polling. On the other hand, according to the second embodiment, it is possible to accurately estimate whether or not each container has an incomplete processing state.
 上記については単に本発明の原理を示すものである。更に、多数の変形や変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応する全ての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。 The above merely shows the principle of the present invention. In addition, many modifications and variations will be apparent to practitioners skilled in this art and the present invention is not limited to the precise configuration and application shown and described above, and all corresponding modifications and equivalents may be And the equivalents thereof are considered to be within the scope of the invention.
 10 仮想化管理装置
 11 記憶部
 12 制御部
 13 リソース情報
 14 サービス情報
 15 第1の状態
 16 第2の状態
 21,22 仮想実行単位
 21a,22a プロセッサリソース
 21b,22b 他のリソース
 23 サービス
DESCRIPTION OF SYMBOLS 10 Virtualization management apparatus 11 Memory | storage part 12 Control part 13 Resource information 14 Service information 15 1st state 16 2nd state 21 and 22 Virtual execution unit 21a, 22a Processor resource 21b, 22b Other resources 23 Service

Claims (5)

  1.  コンピュータに、
     プロセッサリソースおよび前記プロセッサリソース以外の他のリソースが割り当てられた複数の仮想実行単位それぞれに対して、前記プロセッサリソースに関する第1使用量および前記他のリソースに関する第2使用量を示すリソース情報と、前記複数の仮想実行単位の前記コンピュータ以外から提供されるサービスの利用状況を示すサービス情報とを取得し、
     前記リソース情報および前記サービス情報に関する所定の条件に基づいて、前記複数の仮想実行単位より停止可能な仮想実行単位を特定する、
     処理を実行させる仮想化管理プログラムであって、
     前記所定の条件は、前記第1使用量の変化量および前記第2使用量の変化量が閾値以下であり、かつ、前記サービスを利用しない時間が第1の時間以上継続している第1の状態の仮想実行単位、または、前記第2使用量の変化量が前記閾値以下であり、前記サービスの利用が前記サービスに対するポーリングである時間が第2の時間以上継続しており、かつ、前記ポーリングを当該仮想実行単位以外の他の仮想実行単位も行っている第2の状態の仮想実行単位を示す、
     仮想化管理プログラム。
    On the computer,
    Resource information indicating a first usage amount related to the processor resource and a second usage amount related to the other resource for each of a plurality of virtual execution units to which a resource other than the processor resource and the processor resource is allocated; Obtaining service information indicating the usage status of services provided from a plurality of virtual execution units other than the computer;
    Based on a predetermined condition relating to the resource information and the service information, a virtual execution unit that can be stopped from the plurality of virtual execution units is specified.
    A virtualization management program for executing processing,
    The predetermined condition is that the amount of change in the first usage amount and the amount of change in the second usage amount are equal to or less than a threshold, and the time during which the service is not used continues for a first time or more. The virtual execution unit of the state or the amount of change in the second usage amount is less than or equal to the threshold, the time during which the use of the service is polling the service continues for a second time or more, and the polling Indicates a virtual execution unit in the second state in which other virtual execution units other than the virtual execution unit are also performed.
    Virtualization management program.
  2.  前記第1の時間と前記第2の時間とは異なる、
     請求項1記載の仮想化管理プログラム。
    The first time and the second time are different.
    The virtualization management program according to claim 1.
  3.  前記サービス情報は複数のサービスの利用状況を示し、
     前記第2の時間は、前記ポーリングの対象のサービスに応じて異なる、
     請求項1記載の仮想化管理プログラム。
    The service information indicates usage status of a plurality of services,
    The second time varies depending on the service to be polled,
    The virtualization management program according to claim 1.
  4.  プロセッサリソースおよび前記プロセッサリソース以外の他のリソースが割り当てられた複数の仮想実行単位それぞれに対して、前記プロセッサリソースに関する第1使用量および前記他のリソースに関する第2使用量を示すリソース情報と、前記複数の仮想実行単位を実行するコンピュータ以外から提供されるサービスの利用状況を示すサービス情報とを記憶する記憶部と、
     前記リソース情報および前記サービス情報に関する所定の条件に基づいて、前記複数の仮想実行単位より停止可能な仮想実行単位を特定する制御部とを有し、
     前記所定の条件は、前記第1使用量の変化量および前記第2使用量の変化量が閾値以下であり、かつ、前記サービスを利用しない時間が第1の時間以上継続している第1の状態の仮想実行単位、または、前記第2使用量の変化量が前記閾値以下であり、前記サービスの利用が前記サービスに対するポーリングである時間が第2の時間以上継続しており、かつ、前記ポーリングを当該仮想実行単位以外の他の仮想実行単位も行っている第2の状態の仮想実行単位を示す、
     仮想化管理装置。
    Resource information indicating a first usage amount related to the processor resource and a second usage amount related to the other resource for each of a plurality of virtual execution units to which a resource other than the processor resource and the processor resource is allocated; A storage unit that stores service information indicating a usage status of a service provided from a computer other than a computer that executes a plurality of virtual execution units;
    A control unit that identifies a virtual execution unit that can be stopped from the plurality of virtual execution units based on a predetermined condition relating to the resource information and the service information;
    The predetermined condition is that the amount of change in the first usage amount and the amount of change in the second usage amount are equal to or less than a threshold, and the time during which the service is not used continues for a first time or more. The virtual execution unit of the state or the amount of change in the second usage amount is less than or equal to the threshold, the time during which the use of the service is polling the service continues for a second time or more, and the polling Indicates a virtual execution unit in the second state in which other virtual execution units other than the virtual execution unit are also performed.
    Virtualization management device.
  5.  コンピュータが実行する仮想化管理方法において、
     プロセッサリソースおよび前記プロセッサリソース以外の他のリソースが割り当てられた複数の仮想実行単位それぞれに対して、前記プロセッサリソースに関する第1使用量および前記他のリソースに関する第2使用量を示すリソース情報と、前記複数の仮想実行単位の前記コンピュータ以外から提供されるサービスの利用状況を示すサービス情報とを取得し、
     前記リソース情報および前記サービス情報に関する所定の条件に基づいて、前記複数の仮想実行単位より停止可能な仮想実行単位を特定する、
     仮想化管理方法であって、
     前記所定の条件は、前記第1使用量の変化量および前記第2使用量の変化量が閾値以下であり、かつ、前記サービスを利用しない時間が第1の時間以上継続している第1の状態の仮想実行単位、または、前記第2使用量の変化量が前記閾値以下であり、前記サービスの利用が前記サービスに対するポーリングである時間が第2の時間以上継続しており、かつ、前記ポーリングを当該仮想実行単位以外の他の仮想実行単位も行っている第2の状態の仮想実行単位を示す、
     仮想化管理方法。
    In a virtualization management method executed by a computer,
    Resource information indicating a first usage amount related to the processor resource and a second usage amount related to the other resource for each of a plurality of virtual execution units to which a resource other than the processor resource and the processor resource is allocated; Obtaining service information indicating the usage status of services provided from a plurality of virtual execution units other than the computer;
    Based on a predetermined condition relating to the resource information and the service information, a virtual execution unit that can be stopped from the plurality of virtual execution units is specified.
    A virtualization management method comprising:
    The predetermined condition is that the amount of change in the first usage amount and the amount of change in the second usage amount are equal to or less than a threshold, and the time during which the service is not used continues for a first time or more. The virtual execution unit of the state or the amount of change in the second usage amount is less than or equal to the threshold, the time during which the use of the service is polling the service continues for a second time or more, and the polling Indicates a virtual execution unit in the second state in which other virtual execution units other than the virtual execution unit are also performed.
    Virtualization management method.
PCT/JP2016/069285 2016-06-29 2016-06-29 Virtualization management program, virtualization management device, and virtualization management method WO2018003031A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018524634A JP6631710B2 (en) 2016-06-29 2016-06-29 Virtualization management program, virtualization management device, and virtualization management method
PCT/JP2016/069285 WO2018003031A1 (en) 2016-06-29 2016-06-29 Virtualization management program, virtualization management device, and virtualization management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/069285 WO2018003031A1 (en) 2016-06-29 2016-06-29 Virtualization management program, virtualization management device, and virtualization management method

Publications (1)

Publication Number Publication Date
WO2018003031A1 true WO2018003031A1 (en) 2018-01-04

Family

ID=60785167

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/069285 WO2018003031A1 (en) 2016-06-29 2016-06-29 Virtualization management program, virtualization management device, and virtualization management method

Country Status (2)

Country Link
JP (1) JP6631710B2 (en)
WO (1) WO2018003031A1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019121185A (en) * 2018-01-05 2019-07-22 コニカミノルタ株式会社 Gpu allocating program, gpu allocation method, computer-readable recording medium, and gpu allocating apparatus
JP2019135597A (en) * 2018-02-05 2019-08-15 富士通株式会社 Performance adjustment program and performance adjustment method
JP2020160775A (en) * 2019-03-26 2020-10-01 日本電気株式会社 Container activation host selection device, container activation host selection system, container activation host selection method and program
JP2020198046A (en) * 2019-06-05 2020-12-10 富士通株式会社 Information processing device and log reference program
JP2021012658A (en) * 2019-07-09 2021-02-04 株式会社三菱Ufj銀行 System and processing method
JP7419771B2 (en) 2019-11-29 2024-01-23 株式会社リコー Network system and connection method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011524053A (en) * 2008-06-13 2011-08-25 マイクロソフト コーポレーション Virtual machine and application life cycle synchronization
JP2014191368A (en) * 2013-03-26 2014-10-06 Fujitsu Ltd Management program, management apparatus, and management method
JP2015011657A (en) * 2013-07-02 2015-01-19 株式会社日立システムズ Information processing system with power-saving mode function
WO2015189968A1 (en) * 2014-06-12 2015-12-17 株式会社日立製作所 Virtual machine management system and method therefor

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011524053A (en) * 2008-06-13 2011-08-25 マイクロソフト コーポレーション Virtual machine and application life cycle synchronization
JP2014191368A (en) * 2013-03-26 2014-10-06 Fujitsu Ltd Management program, management apparatus, and management method
JP2015011657A (en) * 2013-07-02 2015-01-19 株式会社日立システムズ Information processing system with power-saving mode function
WO2015189968A1 (en) * 2014-06-12 2015-12-17 株式会社日立製作所 Virtual machine management system and method therefor

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019121185A (en) * 2018-01-05 2019-07-22 コニカミノルタ株式会社 Gpu allocating program, gpu allocation method, computer-readable recording medium, and gpu allocating apparatus
JP6992515B2 (en) 2018-01-05 2022-01-13 コニカミノルタ株式会社 GPU allocation program, GPU allocation method, computer-readable recording medium, and GPU allocation device
JP2019135597A (en) * 2018-02-05 2019-08-15 富士通株式会社 Performance adjustment program and performance adjustment method
JP7011162B2 (en) 2018-02-05 2022-01-26 富士通株式会社 Performance adjustment program and performance adjustment method
JP2020160775A (en) * 2019-03-26 2020-10-01 日本電気株式会社 Container activation host selection device, container activation host selection system, container activation host selection method and program
JP7331407B2 (en) 2019-03-26 2023-08-23 日本電気株式会社 Container activation host selection device, container activation host selection system, container activation host selection method and program
JP2020198046A (en) * 2019-06-05 2020-12-10 富士通株式会社 Information processing device and log reference program
JP7338246B2 (en) 2019-06-05 2023-09-05 富士通株式会社 Information processing device, log reference program
JP2021012658A (en) * 2019-07-09 2021-02-04 株式会社三菱Ufj銀行 System and processing method
JP7419771B2 (en) 2019-11-29 2024-01-23 株式会社リコー Network system and connection method

Also Published As

Publication number Publication date
JP6631710B2 (en) 2020-01-15
JPWO2018003031A1 (en) 2019-01-10

Similar Documents

Publication Publication Date Title
WO2018003031A1 (en) Virtualization management program, virtualization management device, and virtualization management method
US11507435B2 (en) Rack-level scheduling for reducing the long tail latency using high performance SSDs
US10110425B2 (en) Differentiated service-based graceful degradation layer
US8938510B2 (en) On-demand mailbox synchronization and migration system
US8321530B2 (en) Cloud computing system, server computer, device connection method, and storage medium
JP6186787B2 (en) Data transfer device, data transfer system, data transfer method and program
JP2019008417A (en) Information processing apparatus, memory control method and memory control program
JP6200080B2 (en) Managing client access to multiple computing systems
JP6272190B2 (en) Computer system, computer, load balancing method and program thereof
US8914582B1 (en) Systems and methods for pinning content in cache
US20110173319A1 (en) Apparatus and method for operating server using virtualization technique
US20230069240A1 (en) Dynamic cloning of application infrastructures
US11128698B2 (en) Producer system registration
US8458702B1 (en) Method for implementing user space up-calls on java virtual machine before/after garbage collection
KR20200080458A (en) Cloud multi-cluster apparatus
US9780993B2 (en) Producer computing system leasing on behalf of consumer computing system
US10754368B1 (en) Method and system for load balancing backup resources
EP2637097A1 (en) Differentiated service-based graceful degradation layer
JP2011243162A (en) Quantity control device, quantity control method and quantity control program
JP2017174038A (en) Information processing system, information processing method, and program
US10348814B1 (en) Efficient storage reclamation for system components managing storage
JP7044971B2 (en) Cluster system, autoscale server monitoring device, autoscale server monitoring program and autoscale server monitoring method
US10187278B2 (en) Channel management in scalable messaging system
US10860347B1 (en) Virtual machine with multiple content processes
JP5803655B2 (en) Program for data transfer, information processing method and transfer device, program for managing assignment of transfer processing, information processing method and management device, and information processing system

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 2018524634

Country of ref document: JP

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

Ref document number: 16907264

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: 16907264

Country of ref document: EP

Kind code of ref document: A1