JP7331407B2 - Container activation host selection device, container activation host selection system, container activation host selection method and program - Google Patents

Container activation host selection device, container activation host selection system, container activation host selection method and program Download PDF

Info

Publication number
JP7331407B2
JP7331407B2 JP2019059250A JP2019059250A JP7331407B2 JP 7331407 B2 JP7331407 B2 JP 7331407B2 JP 2019059250 A JP2019059250 A JP 2019059250A JP 2019059250 A JP2019059250 A JP 2019059250A JP 7331407 B2 JP7331407 B2 JP 7331407B2
Authority
JP
Japan
Prior art keywords
container
running
types
load
host
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019059250A
Other languages
Japanese (ja)
Other versions
JP2020160775A (en
Inventor
琢也 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2019059250A priority Critical patent/JP7331407B2/en
Publication of JP2020160775A publication Critical patent/JP2020160775A/en
Application granted granted Critical
Publication of JP7331407B2 publication Critical patent/JP7331407B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、コンテナ起動ホスト選択装置、コンテナ起動ホスト選択システム、コンテナ起動ホスト選択方法及びプログラムに関する。 The present invention relates to a container activation host selection device, a container activation host selection system, a container activation host selection method, and a program.

現在、多くのコンピュータシステムで仮想マシンやコンテナが利用されている。コンテナが起動するコンピュータをコンテナホストといい、1台のコンテナホスト上では複数のコンテナが動作することがある。例えば、負荷が高いアプリケーションが稼働するコンテナが、あるコンテナホストに集中すると、それらのコンテナで稼働するアプリケーションの性能に影響する。従って、コンテナを起動させる際には、コンテナホストを適切に選択し、コンテナホスト間の負荷を平準化する必要がある。CPU(Central Processing Unit)やメモリの負荷を考慮してコンテナホストを選択する技術は既に提供されている。例えば、特許文献1には、起動するコンテナについて記載する定義書にCPU、メモリのリソース要求を記載しておき、要求を満たすコンテナホストを、確率的な分散スキームに従って選択したり、ラウンドロビン式で選択したりする方法が開示されている。また、コンテナのオーケストレーションツールであるKubernetesでは、コンテナを起動するコンテナホストの選択をフィルタ、優先度付けにより行う。このツールを用いると、設定により、コンテナホスト間のCPU、メモリの負荷が均等になるようコンテナを起動することができる。 Virtual machines and containers are currently used in many computer systems. A computer on which a container runs is called a container host, and multiple containers may run on one container host. For example, if containers running high-load applications are concentrated on a certain container host, the performance of the applications running in those containers will be affected. Therefore, when starting a container, it is necessary to appropriately select the container host and balance the load among the container hosts. Techniques for selecting a container host in consideration of CPU (Central Processing Unit) and memory loads have already been provided. For example, in Patent Document 1, resource requirements for CPU and memory are described in a definition document describing containers to be started, and container hosts that satisfy the requirements are selected according to a probabilistic distribution scheme or a round-robin system. A method for selecting is disclosed. Kubernetes, which is a container orchestration tool, selects a container host for starting a container by filtering and prioritizing. By using this tool, it is possible to start containers so that the load of CPU and memory is evenly distributed among container hosts.

なお、特許文献2には、既存の仮想マシンをCPU、メモリ、ネットワーク、ストレージ、OS、ミドルウェア等の項目で構成別にタイプ分けして、各タイプ別に負荷状況を示す履歴情報を蓄積する。そして、新しい仮想マシンを配置するときに、上記項目の一致度から、新しい仮想マシンと既存の仮想マシンの類似度を算出し、その類似度と蓄積した既存マシンの負荷の履歴情報から新しい仮想マシンの負荷を予測し、その予測結果に基づいて、配置先の物理マシンを決定する方法が開示されている。 In addition, in Patent Literature 2, existing virtual machines are classified into types according to their configuration by items such as CPU, memory, network, storage, OS, and middleware, and history information indicating the load status is accumulated for each type. Then, when deploying a new virtual machine, the degree of similarity between the new virtual machine and the existing virtual machine is calculated from the degree of matching of the above items, and the degree of similarity and the accumulated load history information of the existing machine are used to create the new virtual machine. A method of estimating the load of each and determining a destination physical machine based on the result of the prediction is disclosed.

特開2016-057898号公報JP 2016-057898 A 特開2017-538204号公報JP 2017-538204 A

特許文献1に記載の方法は、CPU、メモリのみを負荷分散の対象としている。このため、コンテナホスト間のブロックIOの負荷やネットワークIOの負荷にばらつきがでてしまう。また、特許文献2に記載の方法では、各項目の各種負荷への寄与度が考慮されていない。従って、例えば、CPU、メモリ、ネットワーク、ストレージ、OS、ミドルウェアの各項目が一致する既存の同タイプの仮想マシンの負荷履歴に基づいて新たな仮想マシンの負荷を予測したとしても、新たな仮想マシンで稼働するアプリケーションが、同タイプの仮想マシンのアプリケーションと異なれば、ブロックIOやネットワークIOの負荷に大きな差異が生じる可能性がある。従って、特許文献2に記載の仮想マシンを配置する物理マシンの選択方法を、コンテナホストの選択に適用したとしても、コンテナホスト間でのブロックIOの負荷やネットワークIOの負荷のばらつきは解消できない。
コンテナホスト間の各種負荷が均等になるように、コンテナを起動するコンテナホストを選択する方法が求められている。
The method described in Patent Document 1 targets only CPUs and memories for load balancing. For this reason, the block IO load and the network IO load vary among container hosts. In addition, the method described in Patent Document 2 does not take into consideration the degree of contribution of each item to various loads. Therefore, for example, even if the load of a new virtual machine is predicted based on the load history of an existing virtual machine of the same type that matches each item of CPU, memory, network, storage, OS, and middleware, the new virtual machine If an application running on a virtual machine differs from that of the same type of virtual machine, there can be a large difference in block IO and network IO load. Therefore, even if the method of selecting a physical machine for arranging a virtual machine described in Patent Document 2 is applied to the selection of a container host, variations in block IO load and network IO load among container hosts cannot be eliminated.
There is a need for a method of selecting a container host on which to launch a container so that various loads are evenly distributed among the container hosts.

そこでこの発明は、上述の課題を解決するコンテナ起動ホスト選択装置、コンテナ起動ホスト選択システム、コンテナ起動ホスト選択方法及びプログラムを提供することを目的としている。 SUMMARY OF THE INVENTION Accordingly, it is an object of the present invention to provide a container activation host selection device, a container activation host selection system, a container activation host selection method, and a program that solve the above-described problems.

本発明の一態様によれば、コンテナ起動ホスト選択装置は、複数のコンテナホストのそれぞれで動作中のコンテナにて稼働するアプリケーションによる複数種類の負荷の予測値と、起動対象のコンテナである起動コンテナにて稼働するアプリケーションによる複数種類の前記負荷の予測値とに基づいて、前記コンテナホストのそれぞれについて前記起動コンテナを起動した場合の複数種類の前記負荷の合計を予測し、複数種類の前記負荷が最も小さい前記コンテナホストを選択し、選択した前記コンテナホストで前記起動コンテナを起動すると決定するコンテナホスト制御部と、前記起動コンテナの作成元となるイメージの識別情報と、イメージの識別情報とアプリケーションの情報とを対応付けて記憶するテーブルと、に基づいて、前記起動コンテナで稼働するアプリケーションを特定し、前記コンテナの作成元となるイメージの識別情報と、前記テーブルと、に基づいて、前記コンテナで稼働するアプリケーションを特定するアプリ情報判断部と、前記コンテナホストで動作した前記コンテナで稼働したアプリケーションによる前記複数種類の負荷の実績値に基づいて、前記起動コンテナで稼働するアプリケーションおよび動作中の前記コンテナで稼働するアプリケーションによる複数種類の前記負荷の予測を行う負荷情報予測部と、を備え、前記起動コンテナに対する起動要求があると、前記アプリ情報判断部は、前記起動コンテナで稼働するアプリケーションを特定するとともに、前記複数のコンテナホストのそれぞれで動作中のコンテナにて稼働するアプリケーションを特定し、前記負荷情報予測部は、特定された前記起動コンテナで稼働するアプリケーションの前記複数種類の負荷と、特定された前記複数のコンテナホストのそれぞれで動作中のコンテナにて稼働するアプリケーションの前記複数種類の負荷とを予測し、前記コンテナホスト制御部は、前記複数のコンテナホスト別に前記コンテナホストで動作中の全てのコンテナにて稼働するアプリケーションの前記複数種類の負荷の予測値を前記複数種類別に合計し、さらにその合計した値に前記複数のコンテナホスト別に前記起動コンテナで稼働するアプリケーションの前記複数種類別の負荷を加算して、加算後の前記複数種類別の負荷の合計が最も小さい前記コンテナホストで前記起動コンテナを起動すると決定する。 According to one aspect of the present invention, a container activation host selection device includes predicted values of a plurality of types of loads due to applications running in containers running on each of a plurality of container hosts, and activation containers, which are containers to be activated. predicting the total of the plurality of types of loads when the startup container is started for each of the container hosts, based on the predicted values of the plurality of types of loads caused by the applications running in the a container host control unit that selects the smallest container host and decides to start the startup container on the selected container host ; identification information of an image that is the source of creation of the startup container; identification information of the image; a table for storing information in association with each other to identify an application running in the startup container; an application information determination unit that identifies the running application; and the application running in the boot container and the running container based on the actual values of the plurality of types of load caused by the applications running in the container running on the container host. and a load information prediction unit that predicts a plurality of types of the load due to the applications running in the startup container, and the application information determination unit identifies the application running in the startup container when there is a startup request for the startup container. Also, the application running in the container running in each of the plurality of container hosts is specified, and the load information prediction unit specifies the plurality of types of loads of the application running in the specified startup container and the specified load. The container host controller predicts the plurality of types of loads of the applications running in the containers running on each of the plurality of container hosts, and the container host control unit predicts all the loads running on the container hosts for each of the plurality of container hosts. totaling the predicted values of the plurality of types of loads of the applications running on the containers of the above for each of the plurality of types; is added, and the container host having the smallest sum of the loads for each of the plurality of types after the addition is determined to start the start-up container.

また、本発明の他の一態様によれば、コンテナ起動ホスト選択システムは、上記のコンテナ起動ホスト選択装置と、自機で動作中のコンテナにて稼働するアプリケーションによる複数種類の前記負荷を取得して、前記コンテナ起動ホスト選択装置へ通知するコンテナ負荷情報収集部、を備える1又は複数のコンテナホストと、を含む。 Further, according to another aspect of the present invention, a container activation host selection system obtains a plurality of types of loads by the above-described container activation host selection device and an application running in a container running on its own machine. and one or a plurality of container hosts provided with a container load information collection unit that notifies the container activation host selection device.

また、本発明の他の一態様によれば、コンピュータによって実行されるコンテナ起動ホスト選択方法であって、複数のコンテナホストのそれぞれで動作中のコンテナにて稼働するアプリケーションによる複数種類の負荷の予測値と、起動対象のコンテナである起動コンテナにて稼働するアプリケーションによる複数種類の前記負荷の予測値とに基づいて、前記コンテナホストのそれぞれについて前記起動コンテナを起動した場合の複数種類の前記負荷を予測し、複数種類の前記負荷の合計が最も小さい前記コンテナホストを選択し、選択した前記コンテナホストで前記起動コンテナを起動すると決定するステップと、前記起動コンテナの作成元となるイメージの識別情報と、イメージの識別情報とアプリケーションの情報とを対応付けて記憶するテーブルと、に基づいて、前記起動コンテナで稼働するアプリケーションを特定し、前記コンテナの作成元となるイメージの識別情報と、前記テーブルと、に基づいて、前記コンテナで稼働するアプリケーションを特定するステップと、前記コンテナホストで動作した前記コンテナで稼働したアプリケーションによる複数種類の前記負荷の実績値に基づいて、前記起動コンテナで稼働するアプリケーションおよび動作中の前記コンテナで稼働するアプリケーションによる複数種類の前記負荷の予測を行うステップと、を有し、前記起動コンテナに対する起動要求があると、前記アプリケーションを特定するステップにて、前記起動コンテナで稼働するアプリケーションを特定するとともに、前記複数のコンテナホストのそれぞれで動作中のコンテナにて稼働するアプリケーションを特定し、前記予測を行うステップにて、特定された前記起動コンテナで稼働するアプリケーションの前記複数種類の負荷と、特定された前記複数のコンテナホストのそれぞれで動作中のコンテナにて稼働するアプリケーションの前記複数種類の負荷とを予測し、前記決定するステップにて、前記複数のコンテナホスト別に前記コンテナホストで動作中の全てのコンテナにて稼働するアプリケーションの前記複数種類の負荷の予測値を前記複数種類別に合計し、さらにその合計した値に前記複数のコンテナホスト別に前記起動コンテナで稼働するアプリケーションの前記複数種類別の負荷を加算して、加算後の前記複数種類別の負荷の合計が最も小さい前記コンテナホストで前記起動コンテナを起動すると決定する、コンテナ起動ホスト選択方法である。 According to another aspect of the present invention, there is provided a container activation host selection method executed by a computer, which predicts a plurality of types of loads by applications running in containers running on each of a plurality of container hosts. and the predicted values of the plurality of types of load caused by the application running in the startup container, which is the container to be started, the plurality of types of load when the startup container is started for each of the container hosts. predicting and selecting the container host having the smallest sum of the plurality of types of loads, and determining to start the boot container on the selected container host; and identification information of an image from which the boot container is created; , and a table for storing image identification information and application information in association with each other, identifying an application running in the startup container, identifying the image identification information from which the container is created, and the table. a step of identifying an application running in the container based on , and an application running in the boot container based on the actual values of the plurality of types of the loads of the applications running in the container running in the container host; and a step of predicting a plurality of types of the load by applications running in the running container, and when there is a start request for the start container, the step of specifying the application running in the start container. in the step of identifying applications running in containers running on each of the plurality of container hosts, and performing prediction, the plurality of types of applications running in the specified startup containers; and the plurality of types of loads of applications running in containers running on each of the identified plurality of container hosts; totaling the predicted values of the plurality of types of loads of the applications running in all the containers running on the host for each of the plurality of types; The container activation host selection method includes adding the loads for each of the plurality of types and determining to activate the activation container on the container host having the smallest sum of the loads for the plurality of types after addition.

また、本発明の他の一態様によれば、プログラムは、コンピュータに、複数のコンテナホストのそれぞれで動作中のコンテナにて稼働するアプリケーションによる複数種類の負荷の予測値と、起動対象のコンテナである起動コンテナにて稼働するアプリケーションによる複数種類の前記負荷の予測値とに基づいて、前記コンテナホストのそれぞれについて前記起動コンテナを起動した場合の複数種類の前記負荷を予測し、複数種類の前記負荷の合計が最も小さい前記コンテナホストを選択し、選択した前記コンテナホストで前記起動コンテナを起動すると決定するステップと、前記起動コンテナの作成元となるイメージの識別情報と、イメージの識別情報とアプリケーションの情報とを対応付けて記憶するテーブルと、に基づいて、前記起動コンテナで稼働するアプリケーションを特定し、前記コンテナの作成元となるイメージの識別情報と、前記テーブルと、に基づいて、前記コンテナで稼働するアプリケーションを特定するステップと、前記コンテナホストで動作した前記コンテナで稼働したアプリケーションによる複数種類の前記負荷の実績値に基づいて、前記起動コンテナで稼働するアプリケーションおよび動作中の前記コンテナで稼働するアプリケーションによる複数種類の前記負荷の予測を行うステップと、を有し、前記起動コンテナに対する起動要求があると、前記アプリケーションを特定するステップにて、前記起動コンテナで稼働するアプリケーションを特定するとともに、前記複数のコンテナホストのそれぞれで動作中のコンテナにて稼働するアプリケーションを特定し、前記予測を行うステップにて、特定された前記起動コンテナで稼働するアプリケーションの前記複数種類の負荷と、特定された前記複数のコンテナホストのそれぞれで動作中のコンテナにて稼働するアプリケーションの前記複数種類の負荷とを予測し、前記決定するステップにて、前記複数のコンテナホスト別に前記コンテナホストで動作中の全てのコンテナにて稼働するアプリケーションの前記複数種類の負荷の予測値を前記複数種類別に合計し、さらにその合計した値に前記複数のコンテナホスト別に前記起動コンテナで稼働するアプリケーションの前記複数種類別の負荷を加算して、加算後の前記複数種類別の負荷の合計が最も小さい前記コンテナホストで前記起動コンテナを起動すると決定する処理を実行させるプログラム。
Further, according to another aspect of the present invention, a program stores, in a computer, predicted values of a plurality of types of load due to applications running in containers running on each of a plurality of container hosts, and a container to be started. Predicting the plurality of types of loads when the startup container is started for each of the container hosts based on the predicted values of the plurality of types of loads due to the applications running in a certain startup container, and predicting the plurality of types of loads selecting the container host having the smallest total of , and determining to start the boot container on the selected container host; identifying the image from which the boot container is created; a table for storing information in association with each other to identify an application running in the startup container; a step of identifying an application to be run; and an application to be run in the startup container and the running container based on the actual values of the plurality of types of load by the application running in the container running in the container host. and a step of predicting a plurality of types of the load by an application, and when there is an activation request to the activation container, in the step of identifying the application, the application running in the activation container is identified, and the In the step of identifying an application running in a container running on each of a plurality of container hosts and performing the prediction, the plurality of types of loads of the application running in the specified startup container and the specified in the step of predicting and determining the plurality of types of loads of applications running in containers running on each of the plurality of container hosts, all containers running on the container hosts for each of the plurality of container hosts; totaling the predicted values of the plurality of types of loads of the applications running in the plurality of types for each of the plurality of types; Then, the container host having the smallest sum of the loads for each of the plurality of types after addition determines to start the start-up container.

本発明によれば、複数のコンテナホストの負荷を均等に分散することができる。 According to the present invention, loads on multiple container hosts can be evenly distributed.

本発明の一実施形態によるコンテナ起動ホスト選択システムの一例を示す第1のブロック図である。1 is a first block diagram illustrating an example of a container activation host selection system according to one embodiment of the present invention; FIG. 本発明の一実施形態によるコンテナ起動ホスト選択システムの一例を示す第2のブロック図である。2 is a second block diagram illustrating an example of a container activation host selection system according to one embodiment of the present invention; FIG. 本発明の一実施形態による処理の一例を示す第1のフローチャートである。4 is a first flow chart showing an example of processing according to an embodiment of the present invention; 本発明の一実施形態による処理の一例を示す第2のフローチャートである。FIG. 5 is a second flow chart showing an example of processing according to an embodiment of the present invention; FIG. 本発明の一実施形態による処理の一例を示すアプリケーション情報蓄積テーブルの一例を示す図である。It is a figure which shows an example of the application information accumulation table which shows an example of the process by one Embodiment of this invention. 本発明の一実施形態による処理の一例を示す第3のフローチャートである。3 is a third flow chart showing an example of processing according to an embodiment of the present invention; 本発明の一実施形態による処理の一例を示すアプリケーション推測情報蓄積テーブルの一例を示す図である。It is a figure which shows an example of the application estimation information accumulation table which shows an example of the process by one Embodiment of this invention. 本発明の一実施形態による処理の一例を示す第4のフローチャートである。FIG. 11 is a fourth flow chart showing an example of processing according to an embodiment of the present invention; FIG. 本発明の一実施形態による処理の一例を示す第5のフローチャートである。FIG. 11 is a fifth flowchart showing an example of processing according to one embodiment of the present invention; FIG. 本発明の一実施形態による処理の一例を示す負荷情報蓄積テーブルの一例を示す図である。It is a figure which shows an example of the load information accumulation table which shows an example of the process by one Embodiment of this invention. 本発明の一実施形態による処理の一例を示す第6のフローチャートである。FIG. 11 is a sixth flow chart showing an example of processing according to an embodiment of the present invention; FIG. 本発明の一実施形態による処理の一例を示す第7のフローチャートである。FIG. 11 is a seventh flow chart showing an example of processing according to an embodiment of the present invention; FIG. 本発明の一実施形態による処理の一例を示す第8のフローチャートである。FIG. 11 is an eighth flow chart showing an example of processing according to an embodiment of the present invention; FIG. 本発明の一実施形態によるコンテナ起動ホスト選択システムの最小構成を示す図である。1 is a diagram showing the minimum configuration of a container activation host selection system according to one embodiment of the present invention; FIG. 本発明の一実施形態におけるコンテナ起動ホスト選択システムのハードウェア構成の一例を示す図である。1 is a diagram showing an example of a hardware configuration of a container activation host selection system according to an embodiment of the present invention; FIG.

以下、一実施形態に係るコンテナ起動ホスト選択システムについて図1~図15を参照して説明する。
(構成の説明)
図1、図2は、それぞれ本発明の一実施形態によるコンテナ起動ホスト選択システムの一例を示す第1、第2のブロック図である。
図1に示すようにコンテナ起動ホスト選択システム30は、クライアント001と、コンテナ起動ホスト選択装置100と、1又は複数のコンテナホスト200と、を含む。クライアント001は、コンテナ起動要求部010を備える。コンテナ起動ホスト選択装置100は、コンテナ起動要求受付部101と、コンテナホスト制御部102と、アプリ情報判断部110と、アプリ情報記憶部111と、アプリ情報推測部112と、アプリ情報受付部113と、負荷情報予測部120と、負荷情報記憶部121と、負荷情報受付部122と、を備える。コンテナホスト200は、コンテナ制御部210と、アプリ情報収集部211と、コンテナ負荷情報収集部212と、1又は複数のコンテナ220とを備える。
A container activation host selection system according to one embodiment will be described below with reference to FIGS. 1 to 15. FIG.
(Description of configuration)
1 and 2 are first and second block diagrams respectively showing an example of a container activation host selection system according to one embodiment of the present invention.
As shown in FIG. 1 , the container activation host selection system 30 includes a client 001 , a container activation host selection device 100 and one or more container hosts 200 . The client 001 has a container activation request unit 010 . The container activation host selection device 100 includes a container activation request reception unit 101, a container host control unit 102, an application information determination unit 110, an application information storage unit 111, an application information estimation unit 112, and an application information reception unit 113. , a load information prediction unit 120 , a load information storage unit 121 , and a load information reception unit 122 . The container host 200 includes a container control unit 210 , an application information collection unit 211 , a container load information collection unit 212 and one or more containers 220 .

図2にコンテナホスト200が2台の場合の構成例を示す。以下、この構成例を前提として説明を行う。図2に示すようにコンテナ起動ホスト選択システム30は、クライアント001と、コンテナ起動ホスト選択装置100と、コンテナホスト200a,200bと、を含む。説明の便宜のため、コンテナホスト200aでは1台のコンテナ220aが起動し、コンテナホスト200bでは1台のコンテナ220bが起動しているとする。コンテナホスト200aとコンテナホスト200bが備える機能部は、図1を参照して説明したものと同様である。各機能部はそれぞれ以下の機能を有している。 FIG. 2 shows a configuration example when there are two container hosts 200 . The following description is based on this configuration example. As shown in FIG. 2, the container activation host selection system 30 includes a client 001, a container activation host selection device 100, and container hosts 200a and 200b. For convenience of explanation, it is assumed that one container 220a is running on the container host 200a and one container 220b is running on the container host 200b. The functional units provided in the container host 200a and the container host 200b are the same as those described with reference to FIG. Each functional unit has the following functions.

(クライアント001)
コンテナ起動要求部010は、クライアント001のコンテナの起動要求を、コンテナ起動ホスト選択装置100のコンテナ起動要求受付部101に通知する。
(Client 001)
The container activation request unit 010 notifies the container activation request reception unit 101 of the container activation host selection device 100 of the container activation request of the client 001 .

(コンテナ起動ホスト選択装置100)
コンテナ起動要求受付部101は、コンテナ起動要求部010からのコンテナ起動要求を受け付ける。コンテナ起動要求受付部101は、受け付けたコンテナ起動要求をコンテナホスト制御部102に通知する。
(Container activation host selection device 100)
The container activation request reception unit 101 receives a container activation request from the container activation request unit 010 . The container activation request reception unit 101 notifies the container host control unit 102 of the received container activation request.

コンテナホスト制御部102は、アプリ情報判断部110にコンテナ情報を通知して、当該コンテナで動作するアプリケーションの情報(以下、アプリケーション情報と記載する。)を要求し、アプリケーション情報を取得する。コンテナホスト制御部102は、そのアプリケーション情報を負荷情報予測部120に通知し、負荷予測値を取得する。また、コンテナホスト制御部102は、各コンテナホスト200a,200bで動作するコンテナ220a,220bの識別情報をコンテナ制御部210a,210bから取得し、さらにコンテナ220a,220bで動作するアプリケーション情報を取得する。コンテナホスト制御部102は、それらのアプリケーション情報を負荷情報予測部120に通知し、負荷情報を取得する。そして、コンテナホスト制御部102は、現在稼働仲のコンテナ220a,220bの負荷予測値と、起動要求のあったコンテナの負荷予測値とに基づいて、コンテナを起動するコンテナホストを選択し、コンテナ制御部210a,210bのいずれかにコンテナ起動要求を通知する。 The container host control unit 102 notifies the application information determination unit 110 of the container information, requests information of an application operating in the container (hereinafter referred to as application information), and acquires the application information. The container host control unit 102 notifies the load information prediction unit 120 of the application information and acquires a load prediction value. The container host control unit 102 also acquires identification information of the containers 220a and 220b operating on the respective container hosts 200a and 200b from the container control units 210a and 210b, and further acquires application information operating on the containers 220a and 220b. The container host control unit 102 notifies the load information prediction unit 120 of the application information and acquires the load information. Then, the container host control unit 102 selects a container host to start the container based on the load prediction values of the containers 220a and 220b currently in operation and the load prediction value of the container for which the start request has been made. 210a or 210b is notified of a container activation request.

アプリ情報判断部110は、アプリ情報記憶部111に蓄積されたコンテナ別のアプリケーションの情報に基づいて、コンテナで動作するアプリケーションが何であるかを判断する。また、アプリ情報判断部110は、アプリケーション情報がアプリ情報記憶部111に存在しない場合、アプリ情報推測部112にコンテナ情報を通知し、どのようなアプリケーションが動作しているかの推測結果を得る。アプリ情報判断部110は、コンテナで動作するアプリケーションを示すアプリケーション情報を、コンテナホスト制御部102に通知する。 The application information determining unit 110 determines which application is running in the container based on the application information for each container accumulated in the application information storage unit 111 . Further, when the application information does not exist in the application information storage unit 111, the application information determination unit 110 notifies the application information estimation unit 112 of the container information, and obtains a result of estimation as to what kind of application is running. The application information determination unit 110 notifies the container host control unit 102 of application information indicating applications that operate in the container.

アプリ情報記憶部111は、コンテナ別にそのコンテナで動作するアプリケーションの情報を記憶する。 The application information storage unit 111 stores, for each container, information about applications that operate in the container.

アプリ情報推測部112は、コンテナで動作するアプリケーションが未知の場合(アプリ情報記憶部111にアプリケーション情報が存在しない場合)、コンテナの作成元となるイメージの操作履歴情報から、コンテナで動作するアプリケーションの推測を行う。 When the application that runs in the container is unknown (when the application information does not exist in the application information storage unit 111), the application information estimation unit 112 determines the application that runs in the container from the operation history information of the image that is the source of the container creation. make a guess.

アプリ情報受付部113は、起動中のコンテナ220a,220bで起動しているアプリケーション情報を取得し、アプリ情報記憶部111に格納する。 The application information reception unit 113 acquires application information running in the running containers 220 a and 220 b and stores the information in the application information storage unit 111 .

負荷情報予測部120は、負荷情報記憶部121に蓄積された情報に基づいて、アプリケーションの負荷を予測する。
負荷情報記憶部121は、アプリケーションの負荷予測に用いる情報を記憶する。
The load information prediction unit 120 predicts the application load based on the information accumulated in the load information storage unit 121 .
The load information storage unit 121 stores information used for application load prediction.

負荷情報受付部122は、負荷情報の蓄積を行う。負荷情報受付部122は、コンテナ負荷情報収集部212a,212bから、それぞれコンテナ220a,220bの負荷情報を取得し、アプリ情報判断部110からコンテナに対応するアプリケーション情報を取得した後、負荷情報を負荷情報記憶部121に格納する。 The load information reception unit 122 accumulates load information. The load information receiving unit 122 acquires the load information of the containers 220a and 220b from the container load information collecting units 212a and 212b, respectively, and acquires the application information corresponding to the containers from the application information determining unit 110. Stored in the information storage unit 121 .

(コンテナホスト200a,200b)
コンテナ制御部210aは、コンテナホスト制御部102からの起動指示を受け、コンテナ220aを起動する。また、コンテナ制御部210aは、現在動作中のコンテナ220aの情報をコンテナホスト制御部102に通知する。コンテナ制御部210bについても同様である。
アプリ情報収集部211aは、コンテナ220a内で動作しているアプリケーション情報をアプリ情報受付部113に通知する。アプリ情報収集部211bについても同様である。
コンテナ負荷情報収集部212aは、定期的にコンテナホスト200aで動作しているコンテナの負荷情報を収集し、負荷情報受付部122に通知する。コンテナ負荷情報収集部212bについても同様である。
(Container hosts 200a and 200b)
The container control unit 210a receives an activation instruction from the container host control unit 102 and activates the container 220a. In addition, the container control unit 210a notifies the container host control unit 102 of information on the container 220a currently in operation. The same applies to the container control section 210b.
The application information collection unit 211a notifies the application information reception unit 113 of application information operating in the container 220a. The same applies to the application information collection unit 211b.
The container load information collection unit 212a periodically collects load information of containers operating in the container host 200a and notifies the load information reception unit 122 of the load information. The same applies to the container load information collection unit 212b.

(動作の説明)
以下、コンテナ起動ホスト選択システム30の動作について詳細に説明する。
図3は、本発明の一実施形態による処理の一例を示す第1のフローチャートである。
図3にコンテナ起動ホスト選択システム30の動作の概要を示す。
まず、コンテナ起動要求部010が、コンテナ起動要求受付部101に対し、コンテナ起動要求を通知する(ステップS101)。コンテナ起動要求では、コンテナの作成元となるイメージの識別ID(以降イメージIDと記載する。)が指定される。
次にコンテナホスト制御部102が、アプリ情報判断部110に対し、イメージIDを通知し、アプリ情報判断部110からアプリケーション情報を取得する(ステップS102)。
(Description of operation)
The operation of the container activation host selection system 30 will be described in detail below.
FIG. 3 is a first flowchart illustrating an example of processing according to an embodiment of the invention.
FIG. 3 shows an outline of the operation of the container activation host selection system 30. As shown in FIG.
First, the container activation request unit 010 notifies the container activation request to the container activation request reception unit 101 (step S101). The container activation request specifies an identification ID of an image from which a container is created (hereinafter referred to as an image ID).
Next, the container host control unit 102 notifies the application information determination unit 110 of the image ID, and acquires the application information from the application information determination unit 110 (step S102).

次にコンテナホスト制御部102が、負荷情報予測部120にアプリケーション情報などを通知し、負荷情報予測部120から負荷予測値を取得する(ステップS103)。
次にコンテナホスト制御部102が、コンテナホスト200a,200bの負荷予測値を要求し、それぞれの負荷予測値を取得する(ステップS104)。
Next, the container host control unit 102 notifies the load information prediction unit 120 of application information and the like, and acquires a load prediction value from the load information prediction unit 120 (step S103).
Next, the container host control unit 102 requests the load prediction values of the container hosts 200a and 200b and acquires the respective load prediction values (step S104).

次にコンテナホスト制御部102が、コンテナを起動するコンテナホストの選択を行う(ステップS105)。例えば、コンテナホスト200aの負荷がコンテナホスト200bに比べ小さい場合、コンテナホスト制御部102はコンテナホスト200aを選択する。
次にコンテナホスト制御部102が、選択したコンテナホスト200aのコンテナ制御部210aに対し、コンテナ220aの起動要求を通知し、コンテナ220aを起動する(ステップS106)。コンテナホスト200bが選択されたときも同様である。
Next, the container host control unit 102 selects a container host to start the container (step S105). For example, when the load of the container host 200a is smaller than that of the container host 200b, the container host control unit 102 selects the container host 200a.
Next, the container host control unit 102 notifies the container control unit 210a of the selected container host 200a of a start request for the container 220a, and starts the container 220a (step S106). The same applies when the container host 200b is selected.

次にアプリ情報収集部211が、起動したコンテナ220aで動作するアプリケーションの情報をアプリ情報受付部113に通知する。アプリ情報受付部113は、アプリ情報記憶部111が記憶するコンテナ220aのイメージIDに対するアプリケーション情報を取得した情報で更新する(ステップS107)。 Next, the application information collection unit 211 notifies the application information reception unit 113 of information on the application that operates in the started container 220a. The application information reception unit 113 updates the application information corresponding to the image ID of the container 220a stored in the application information storage unit 111 with the acquired information (step S107).

次にコンテナ負荷情報収集部212a,212bが、負荷情報受付部122に対し、動作中のコンテナ220a、220bの負荷情報を定期的に通知する。負荷情報受付部122は、アプリ情報判断部110に当該コンテナのイメージIDを通知し、コンテナ220a,220bに対応するアプリケーションの情報を得る。そして、負荷情報受付部122は、アプリケーションに対する負荷情報を負荷情報記憶部121に蓄積する。 Next, the container load information collection units 212a and 212b periodically notify the load information reception unit 122 of the load information of the containers 220a and 220b in operation. The load information reception unit 122 notifies the application information determination unit 110 of the image ID of the container, and obtains application information corresponding to the containers 220a and 220b. Then, the load information receiving unit 122 stores load information for the application in the load information storage unit 121 .

次に図4、図5を参照して、ステップS102のイメージIDに対応するアプリケーションを取得する処理について詳細に説明する。
図4は、本発明の一実施形態による処理の一例を示す第2のフローチャートである。
図5は、本発明の一実施形態による処理の一例を示すアプリケーション情報蓄積テーブルの一例を示す図である。
まず、アプリ情報判断部110は、アプリ情報記憶部111に格納されているアプリケーション情報蓄積テーブル400から、イメージIDに対応するアプリケーション情報のレコードを照会する(ステップS201)。図5にアプリケーション情報蓄積テーブル400を例示する。例えば、イメージID「cef95d42a67e」には、このイメージIDが示すコンテナで稼働するアプリケーション「nginx」が対応付けて格納されている。
Next, the process of acquiring the application corresponding to the image ID in step S102 will be described in detail with reference to FIGS. 4 and 5. FIG.
FIG. 4 is a second flowchart illustrating an example of processing according to an embodiment of the invention.
FIG. 5 is a diagram showing an example of an application information accumulation table showing an example of processing according to an embodiment of the present invention.
First, the application information determination unit 110 queries the application information record corresponding to the image ID from the application information accumulation table 400 stored in the application information storage unit 111 (step S201). FIG. 5 illustrates an application information accumulation table 400. As shown in FIG. For example, the image ID "cef95d42a67e" is stored in association with the application "nginx" that runs in the container indicated by this image ID.

次にアプリ情報判断部110は、アプリケーション情報蓄積テーブル400にイメージIDのレコードが存在するかどうかを判断する(ステップS202)。
レコードが存在する場合(ステップS202;Yes)、アプリ情報判断部110は、イメージIDに対応するアプリケーション情報を、アプリケーション情報蓄積テーブル400から読み出して要求元のコンテナホスト制御部102に通知する(ステップS203)。
Next, the application information determination unit 110 determines whether or not there is a record of the image ID in the application information accumulation table 400 (step S202).
If the record exists (step S202; Yes), the application information determination unit 110 reads the application information corresponding to the image ID from the application information accumulation table 400 and notifies it to the requesting container host control unit 102 (step S203). ).

レコードが存在しない場合(ステップS202;No)、アプリ情報判断部110は、アプリ情報推測部112にイメージIDを通知し、アプリケーション情報の推測を要求する。アプリ情報推測部112は、アプリケーション情報の推測を実施する(ステップS204)。次にアプリ情報推測部112は、アプリケーションの推測結果をアプリ情報判断部110へ通知する。アプリ情報判断部110は、イメージIDに対応するアプリケーションの推測情報をコンテナホスト制御部102に通知する(ステップS205)。 If the record does not exist (step S202; No), the application information determination unit 110 notifies the application information estimation unit 112 of the image ID and requests estimation of application information. The application information estimation unit 112 estimates application information (step S204). Next, the application information estimation unit 112 notifies the application information determination unit 110 of the application estimation result. The application information determination unit 110 notifies the container host control unit 102 of the estimated information of the application corresponding to the image ID (step S205).

次に図6、図7を参照して、ステップS204のアプリケーションの推測を実施する処理について詳細に説明する。
図6は、本発明の一実施形態による処理の一例を示す第3のフローチャートである。
図7は、本発明の一実施形態による処理の一例を示すアプリケーション推測情報蓄積テーブルの一例を示す図である。
まず、アプリ情報推測部112は、図7に例示するアプリ情報記憶部111に格納されているアプリケーション推測情報蓄積テーブル500、イメージIDに対応するアプリケーション推測情報のレコードを照会する(ステップS301)。図7にアプリケーション推測情報蓄積テーブル500を例示する。例えば、イメージID「siselksi3l23」には、このイメージIDが示すコンテナで稼働すると推定されるアプリケーション推測情報「httpd」が対応付けて格納されている。
次にアプリ情報推測部112は、レコードが存在するどうかを判断する(ステップS302)。
Next, with reference to FIGS. 6 and 7, the process of estimating the application in step S204 will be described in detail.
FIG. 6 is a third flowchart illustrating an example of processing according to an embodiment of the invention.
FIG. 7 is a diagram showing an example of an application estimation information accumulation table showing an example of processing according to an embodiment of the present invention.
First, the application information estimation unit 112 inquires the application estimation information accumulation table 500 stored in the application information storage unit 111 illustrated in FIG. 7 and the record of the application estimation information corresponding to the image ID (step S301). FIG. 7 illustrates an application estimation information accumulation table 500. As shown in FIG. For example, the image ID "siselksi3l23" is stored in association with application guess information "httpd" that is estimated to run in the container indicated by this image ID.
Next, application information estimation unit 112 determines whether or not a record exists (step S302).

レコードが存在する場合(ステップS302;Yes)、アプリ情報推測部112は、イメージIDに対応するアプリケーション推測情報をアプリケーション推測情報蓄積テーブル500から読み出して、アプリ情報判断部110へ通知する(ステップS303)。 If the record exists (step S302; Yes), the application information estimation unit 112 reads application estimation information corresponding to the image ID from the application estimation information accumulation table 500, and notifies the application information determination unit 110 (step S303). .

レコードが存在しない場合(ステップS302;No)、アプリ情報推測部112は、イメージの操作履歴を取得する。操作履歴は、例えば、dockerが提供するコマンド(「docker history」)を用いて取得することができる。操作履歴には、操作ログ、時刻情報と、当該操作に対応する時点のイメージIDの情報が含まれる。なお、dockerとは、オープンソースで提供されるコンテナ実行基盤ソフトウェアである(ステップS304)。次にアプリ情報推測部112は、操作履歴よりアプリケーションのインストール操作を抽出する(ステップS305)。例えば、アプリ情報推測部112は、操作履歴からパッケージインストールコマンド(yum install、apt-get install)を抽出し、どのようなソフトウェアをインストールしたかの情報を取得する。例として「apt-get install tomcat」という操作履歴が存在した場合には、「tomcat」がインストールされたものと判断する。
アプリ情報推測部112は、インストール操作の履歴が存在するどうかを判断する(ステップS306)。
If the record does not exist (step S302; No), the application information estimation unit 112 acquires the operation history of the image. The operation history can be acquired using, for example, a command provided by docker (“docker history”). The operation history includes an operation log, time information, and image ID information at the time corresponding to the operation. Note that docker is container execution platform software provided as open source (step S304). Next, the application information estimation unit 112 extracts an application installation operation from the operation history (step S305). For example, the application information estimation unit 112 extracts package installation commands (yum install, apt-get install) from the operation history, and obtains information about what software has been installed. For example, if there is an operation history of "apt-get install tomcat", it is determined that "tomcat" has been installed.
The application information estimation unit 112 determines whether there is a history of installation operations (step S306).

履歴が存在する場合(ステップS306;Yes)、アプリ情報推測部112は、インストール対象をアプリケーション推測情報として、イメージIDと対応付けてアプリケーション推測情報蓄積テーブル500に格納する(ステップS307)。
履歴が存在しない場合(ステップS306;No)、アプリ情報推測部112は、アプリケーションが不明である旨、アプリケーション推測情報蓄積テーブル500に格納する(ステップS308)。
アプリ情報推測部112は、アプリケーションの推測結果、あるいは不明である旨をアプリ情報判断部110へ通知する(ステップS309)。
なお本実施例では単純にインストール操作履歴のみを抽出対象としているが、インストール対象がライブラリなど、アプリケーションとは異なるものの場合もある。これを除外するため、事前にアプリケーション一覧のテーブルを用意し、一覧に記載されているもののみを抽出対象としてもよい。また、別途でサンドボックス環境を用意し、隔離した状態でイメージからコンテナを起動し、コンテナで起動したプロセスの一覧を得ることで、イメージIDに対応するアプリケーションを推測してもよい。
If there is a history (step S306; Yes), the application information estimation unit 112 associates the installation target with the image ID as application estimation information and stores it in the application estimation information accumulation table 500 (step S307).
If the history does not exist (step S306; No), the application information estimation unit 112 stores information indicating that the application is unknown in the application estimation information accumulation table 500 (step S308).
The application information estimation unit 112 notifies the application information determination unit 110 of the estimation result of the application or that it is unknown (step S309).
In this embodiment, only the installation operation history is simply extracted, but the installation target may be different from the application, such as a library. To exclude this, an application list table may be prepared in advance, and only the applications listed in the list may be extracted. Alternatively, an application corresponding to the image ID may be guessed by separately preparing a sandbox environment, starting a container from the image in an isolated state, and obtaining a list of processes started in the container.

次に図8を参照して、ステップS107のイメージIDに対応するアプリケーション情報の更新処理について詳細に説明する。
図8は、本発明の一実施形態による処理の一例を示す第4のフローチャートである。
例えば、コンテナホスト200aがコンテナの起動先として選択され、コンテナホスト200aで新たなコンテナ220a2を起動したとする。アプリ情報収集部211aが、コンテナ220a2の名前空間上でプロセス一覧取得コマンドを実行する。プロセス一覧取得コマンドとは、具体的には「nsenter --target <$PID> --pid -ps」等である。アプリ情報収集部211aは、プロセス一覧から取得できたプロセスが、コンテナ220a2で動作するアプリケーションであると特定し、そのプロセスが示すアプリケーションをアプリケーション情報として取得する(ステップS401)。
次にアプリ情報収集部211aが、アプリ情報受付部113に、コンテナ220a2のイメージIDと、ステップS401で取得したアプリケーション情報を通知する(ステップS402)。
次にアプリ情報受付部113が、アプリ情報記憶部111に格納されているアプリケーション情報蓄積テーブル400に対し、イメージIDとアプリケーション情報を対応付けたレコードを追加する(ステップS403)。
Next, referring to FIG. 8, the update processing of the application information corresponding to the image ID in step S107 will be described in detail.
FIG. 8 is a fourth flowchart illustrating an example of processing according to an embodiment of the invention.
For example, assume that the container host 200a is selected as a container startup destination, and a new container 220a2 is started in the container host 200a. The application information collection unit 211a executes the process list acquisition command on the namespace of the container 220a2. The process list acquisition command is specifically "nsenter--target <$PID>--pid-ps". The application information collection unit 211a identifies that the process acquired from the process list is an application running in the container 220a2, and acquires the application indicated by the process as application information (step S401).
Next, the application information collection unit 211a notifies the application information reception unit 113 of the image ID of the container 220a2 and the application information acquired in step S401 (step S402).
Next, the application information reception unit 113 adds a record in which the image ID and the application information are associated with each other to the application information accumulation table 400 stored in the application information storage unit 111 (step S403).

次に図9、図10を参照して、ステップS108のアプリケーションの負荷情報を蓄積する処理について詳細に説明する。
図9は、本発明の一実施形態による処理の一例を示す第5のフローチャートである。
図10は、本発明の一実施形態による処理の一例を示す負荷情報蓄積テーブルの一例を示す図である。
まず、コンテナ負荷情報収集部212aが、定期的にコンテナ220aの性能情報を取得する。例えば、コンテナ負荷情報収集部212aは、コンテナ実行基盤ソフトウェアdockerが提供する「docker status」コマンドを実行し、コンテナ毎にCPU、メモリ、ブロックIO、ネットワークIOの負荷情報を取得する。コンテナホスト200aで、コンテナ220a2が起動された場合、コンテナ負荷情報収集部212aは、同様にして、定期的にコンテナ220a2の各種負荷情報を取得する。また、コンテナ負荷情報収集部212bは、同様にして、定期的にコンテナ220bの性能情報を取得する(ステップS501)。
次にコンテナ負荷情報収集部212a,212bが、負荷情報受付部122に、負荷情報を取得したコンテナ情報(コンテナ220a等のイメージID)と、取得した負荷情報を通知する(ステップS502)。
次に負荷情報受付部122が、アプリ情報判断部110にイメージIDを通知し、イメージIDに対応するアプリケーション情報を取得する(ステップS503)。
次に負荷情報受付部122は、ステップS502、503で受け付けた情報に基づいて、負荷情報記憶部121に対し、アプリケーション情報に対応する負荷情報を格納する。具体的には、負荷情報記憶部121は、図10に例示する負荷情報蓄積テーブル600にコンテナIDとイメージIDとアプリケーション情報と負荷情報とを対応付けた情報を、負荷情報を取得した時刻とともに追加する(ステップS504)。
Next, referring to FIGS. 9 and 10, the process of accumulating application load information in step S108 will be described in detail.
FIG. 9 is a fifth flowchart illustrating an example of processing according to an embodiment of the invention.
FIG. 10 is a diagram showing an example of a load information accumulation table showing an example of processing according to one embodiment of the present invention.
First, the container load information collection unit 212a periodically acquires performance information of the container 220a. For example, the container load information collection unit 212a executes a "docker status" command provided by container execution infrastructure software docker, and acquires load information of CPU, memory, block IO, and network IO for each container. When the container 220a2 is activated in the container host 200a, the container load information collection unit 212a similarly periodically acquires various load information of the container 220a2. Similarly, the container load information collecting unit 212b periodically acquires the performance information of the container 220b (step S501).
Next, the container load information collection units 212a and 212b notify the load information reception unit 122 of the acquired container information (image ID of the container 220a and the like) and the acquired load information (step S502).
Next, the load information reception unit 122 notifies the application information determination unit 110 of the image ID, and acquires application information corresponding to the image ID (step S503).
Next, the load information reception unit 122 stores load information corresponding to the application information in the load information storage unit 121 based on the information received in steps S502 and S503. Specifically, the load information storage unit 121 adds information that associates the container ID, the image ID, the application information, and the load information to the load information accumulation table 600 illustrated in FIG. 10 together with the time when the load information is acquired. (step S504).

次に図11を参照して、ステップS103のアプリケーションの負荷予測値を取得する処理について詳細に説明する。
図11は、本発明の一実施形態による処理の一例を示す第6のフローチャートである。
本実施形態では、アプリケーションの実行元(テナント)が同一であれば、同じアプリケーションは、同程度の周期性の負荷がかかるものと仮定し負荷予測を行う。
本実施形態ではシングルテナント環境を対象としているが、後述するようにマルチテナント環境へも拡張可能である。また、周期性は1週間として予測を行う。周期性の予測については、例えば、特開2013-214171に開示された技術を用いることができる。
まず、負荷情報予測部120が、アプリケーションに対応するCPU、メモリ、ブロックIO、ネットワークIOの予測期間分の負荷情報を、負荷情報記憶部121から取得する(ステップS601)。例えば、負荷情報予測部120は、負荷情報記憶部121が記憶する負荷情報蓄積テーブル600(図10)から1週間分の負荷情報を取得する。対象のアプリケーションについて、複数のコンテナ220から取得したデータが存在する場合、負荷情報予測部120は、その全てを負荷情報蓄積テーブル600から取得する。
負荷情報予測部120が、取得した負荷情報に対し統計処理を行う。例えば、負荷情報予測部120は、CPU、メモリ、ブロックIO、ネットワークIOの各負荷別に平均値を算出する。負荷情報予測部120は、CPU、メモリ、ブロックIO、ネットワークIOの各負荷の平均値を、負荷予測値としてコンテナホスト制御部102に通知する(ステップS602)。
Next, with reference to FIG. 11, the process of acquiring the application load prediction value in step S103 will be described in detail.
FIG. 11 is a sixth flowchart illustrating an example of processing according to an embodiment of the invention.
In this embodiment, if the execution source (tenant) of the application is the same, the load is predicted on the assumption that the same application is subjected to the same periodical load.
Although this embodiment targets a single-tenant environment, it can be extended to a multi-tenant environment as described later. Also, prediction is made with the periodicity of one week. For periodicity prediction, for example, the technique disclosed in Japanese Patent Laid-Open No. 2013-214171 can be used.
First, the load information prediction unit 120 acquires the load information for the prediction period of the CPU, memory, block IO, and network IO corresponding to the application from the load information storage unit 121 (step S601). For example, the load information prediction unit 120 acquires load information for one week from the load information accumulation table 600 ( FIG. 10 ) stored in the load information storage unit 121 . If there is data acquired from a plurality of containers 220 for the target application, the load information prediction unit 120 acquires all of them from the load information accumulation table 600 .
The load information prediction unit 120 performs statistical processing on the acquired load information. For example, the load information prediction unit 120 calculates an average value for each load of CPU, memory, block IO, and network IO. The load information prediction unit 120 notifies the container host control unit 102 of the average value of each load of the CPU, memory, block IO, and network IO as a load prediction value (step S602).

次に図12を参照して、ステップS104の各コンテナホストの負荷予測を取得する処理について詳細に説明する。
図12は、本発明の一実施形態による処理の一例を示す第7のフローチャートである。
まず、コンテナホスト制御部102が、コンテナ制御部210a,210bに対し、各コンテナホストで動作中のコンテナの一覧情報(コンテナIDの一覧)を要求し、取得する(ステップS701)。例えば、図2で例示した構成例であれば、コンテナ制御部210aは,一覧情報としてコンテナ220aの識別情報(コンテナID)を取得する。複数のコンテナ220が動作中の場合には、それら全てのコンテナIDを取得する。コンテナ制御部210bについても同様である。また、コンテナホスト制御部102は、例えば、所定のコマンドを発行することにより、一覧情報に含まれる各コンテナの識別情報からイメージIDを取得する。
次にコンテナホスト制御部102が、アプリ情報判断部110に対し、取得したコンテナのイメージIDを通知し、アプリケーション情報を取得する(ステップS702)。
次にコンテナホスト制御部102は、負荷情報予測部120に対し、各コンテナホスト200a、200bで現在動作中のコンテナについて、コンテナIDとイメージIDとアプリケーション情報を通知し、動作中のアプリケーション全てについて、負荷予測値を要求し、取得する(ステップS703)。負荷情報予測部120は、図10に例示する負荷情報蓄積テーブル600から、例えば、1週間分の負荷情報を取得し、コンテナホスト制御部102へ出力する。コンテナホスト制御部102は、例えば、取得した1週間分の負荷情報(実績値)を1週間分の負荷予測値とする。
次にコンテナホスト制御部102が、S703で取得した負荷予測値をコンテナホスト毎に、全アプリケーションについてのCPU、メモリ、ブロックIO、ネットワークIOの各負荷の予測値を負荷別に合算し、各コンテナホストの負荷予測値を算出する(ステップS704)。
Next, with reference to FIG. 12, the process of acquiring the load prediction of each container host in step S104 will be described in detail.
FIG. 12 is a seventh flowchart illustrating an example of processing according to an embodiment of the invention.
First, the container host control unit 102 requests and acquires list information (list of container IDs) of containers operating in each container host from the container control units 210a and 210b (step S701). For example, in the configuration example illustrated in FIG. 2, the container control unit 210a acquires identification information (container ID) of the container 220a as list information. If multiple containers 220 are in operation, the container IDs of all of them are acquired. The same applies to the container control section 210b. Also, the container host control unit 102 acquires an image ID from the identification information of each container included in the list information, for example, by issuing a predetermined command.
Next, the container host control unit 102 notifies the application information determination unit 110 of the acquired image ID of the container, and acquires application information (step S702).
Next, the container host control unit 102 notifies the load information prediction unit 120 of the container ID, image ID, and application information for the containers currently running on each of the container hosts 200a and 200b. A load prediction value is requested and obtained (step S703). The load information prediction unit 120 acquires, for example, one week's worth of load information from the load information accumulation table 600 illustrated in FIG. The container host control unit 102, for example, uses the acquired load information (actual value) for one week as the predicted load value for one week.
Next, the container host control unit 102 sums the load prediction values acquired in S703 for each container host, and sums the prediction values of each load of CPU, memory, block IO, and network IO for all applications by load, and is calculated (step S704).

次に図13を参照して、ステップS105のコンテナを起動するコンテナホストを選択する処理について詳細に説明する。
図13は、本発明の一実施形態による処理の一例を示す第8のフローチャートである。
まず、コンテナホスト制御部102が、ステップS103で取得したアプリケーションの負荷予測値と、ステップS104で取得した各コンテナホストの負荷予測値とを、CPU、メモリ、ブロックIO、ネットワークIO別に合算する(ステップS801)。つまり、コンテナホスト制御部102は、コンテナホスト200a,200bのそれぞれについて、起動対象のコンテナ220を追加で起動した場合の各種負荷の値を算出する。
次にコンテナホスト制御部102が、ステップS801で算出した各負荷の合算値の何れかが、ある時間帯に閾値を超過しているかどうかを判断する(ステップS802)。閾値を超えていた場合は、当該コンテナホストは選択対象から除外する。ただし全てのコンテナホストで閾値を超過していた場合は、全てのコンテナホストに対し次のステップを実行する。
次にコンテナホスト制御部102が、以下の評価関数Fを用いてコンテナを起動するコンテナホストを選択する(ステップS803)。コンテナホスト制御部102は、評価関数Fが示すコンテナホストを選択する。
Next, referring to FIG. 13, the process of selecting a container host for starting a container in step S105 will be described in detail.
FIG. 13 is an eighth flow chart illustrating an example of processing according to an embodiment of the present invention.
First, the container host control unit 102 adds up the application load prediction value acquired in step S103 and the load prediction value of each container host acquired in step S104 for each CPU, memory, block IO, and network IO (step S801). That is, the container host control unit 102 calculates the values of various loads when additionally starting the container 220 to be started for each of the container hosts 200a and 200b.
Next, the container host control unit 102 determines whether any of the total values of the loads calculated in step S801 exceeds the threshold during a certain period of time (step S802). If the threshold is exceeded, the container host is excluded from selection. However, if the threshold is exceeded for all container hosts, the next step is executed for all container hosts.
Next, the container host control unit 102 selects a container host to start the container using the following evaluation function F (step S803). The container host control unit 102 selects a container host indicated by the evaluation function F. FIG.

Figure 0007331407000001
Figure 0007331407000001

ここで、式(1)のxは、コンテナホスト(図2の構成例ではコンテナホスト200a、200bを示す。yは、負荷の種類(本実施形態ではCPU、メモリ、ブロックIO、ネットワークIO)を示す。Axyは、コンテナホストx,負荷yについての予測期間における予測負荷値の平均値を示す。Byは、全コンテナホスト、負荷yについての予測期間における予測負荷値の平均値を示す。式(1)によって、予測期間におけるCPU、メモリ、ブロックIO、ネットワークIOの各予測負荷値の平均の合計が最も小さな値となるコンテナホスト200が選択される。 Here, x in equation (1) indicates the container host (container host 200a, 200b in the configuration example of FIG. 2. y indicates the type of load (CPU, memory, block IO, network IO in this embodiment). Axy indicates the average value of predicted load values in the prediction period for container host x and load y.By indicates the average value of predicted load values in the prediction period for all container hosts and load y. 1) selects the container host 200 that has the smallest sum of average predicted load values of CPU, memory, block IO, and network IO in the prediction period.

本実施形態によれば、コンテナ220の起動時に、そのコンテナ220動作するアプリケーションを判断し、起動しようとするアプリケーション、およびコンテナホスト200で起動中のアプリケーションが消費するCPU、メモリ、ブロックIO、ネットワークIOの各負荷の大きさを予測し、負荷が低いと予測されたコンテナホスト200を選択し、そのコンテナホスト200でコンテナ220を起動する。これにより、コンテナ220を起動するコンテナホスト200の負荷について、CPU、メモリ、ブロックIO、ネットワークIOの負荷を均等に分散することができる。 According to this embodiment, when the container 220 is started, the application that runs on the container 220 is determined, and the CPU, memory, block IO, and network IO consumed by the application to be started and the application running on the container host 200 are calculated. , the container host 200 predicted to have a low load is selected, and the container 220 is started on that container host 200 . As a result, with respect to the load on the container host 200 that starts the container 220, the load on the CPU, memory, block IO, and network IO can be evenly distributed.

上記の実施形態では、負荷の指標として、コンテナ実行基盤ソフトウェアdockerが提供するコマンド(「docker status」)の実行で得られるCPU、メモリ、ブロックIO、ネットワークIOを用いることとしているが、例えば、CPU負荷やメモリ負荷の代わりに、あるいは、CPU、メモリ、ブロックIO、ネットワークIOに加えてコンテナ220毎のスレッド数やファイルディスクリプタ数を用いたりするなど、他の値を負荷の指標としてもよい。 In the above embodiment, the CPU, memory, block IO, and network IO obtained by executing the command ("docker status") provided by the container execution platform software docker are used as load indicators. Instead of load or memory load, or in addition to CPU, memory, block IO, network IO, other values such as the number of threads and the number of file descriptors per container 220 may be used as indicators of load.

上記の実施形態では、コンテナホスト200を選択するにあたり、CPU、メモリ、ブロックIO、ネットワークIOの負荷を同等の重みづけで扱っているが、各負荷の重みを調整してもよい。 In the above-described embodiment, when selecting the container host 200, the CPU, memory, block IO, and network IO loads are equally weighted, but the weight of each load may be adjusted.

また、例えば、CPU負荷およびメモリ負荷については、それらの値が所定の閾値以下であることをコンテナホスト選択の条件とし、一方、ブロックIO負荷、ネットワークIO負荷については本実施形態の方法で負荷予測を行い、予測される負荷が最小となるコンテナホストを選択するようにしてもよい。 Further, for example, for the CPU load and memory load, the condition for selecting a container host is that these values are equal to or less than a predetermined threshold value, while the block IO load and network IO load are predicted by the method of the present embodiment. to select the container host with the lowest expected load.

上記の実施形態では、シングルテナント環境を対象としているが、負荷情報を区別するアプリケーション情報に対し、テナントを識別するID(以下、テナントIDと記載する。)をさらに対応付けて管理するようにすることで、マルチテナント環境を対象とすることも可能である。その場合は、コンテナ起動要求通知、負荷情報通知、負荷情報蓄積テーブル600の列項目にテナントIDを追加し、テナントID、アプリケーション情報に応じた負荷情報を記録し、予測に用いるようにする。 In the above embodiment, a single tenant environment is targeted, but an ID that identifies a tenant (hereinafter referred to as a tenant ID) is further associated with application information that distinguishes load information and managed. By doing so, it is also possible to target a multi-tenant environment. In that case, the tenant ID is added to the column items of the container activation request notification, the load information notification, and the load information accumulation table 600, and the load information corresponding to the tenant ID and application information is recorded and used for prediction.

図14は、本発明の一実施形態によるコンテナ起動ホスト選択装置の最小構成を示す図である。
図14に示すようにコンテナ起動ホスト選択装置100は、少なくともコンテナホスト制御部102を備える。
コンテナホスト制御部102は、複数のコンテナホストのそれぞれについて、各コンテナホストで動作中のコンテナで稼働するアプリケーションによる複数種類の負荷の予測値と、起動対象のコンテナである起動コンテナで稼働するアプリケーションによる複数種類の負荷の予測値とに基づいて、複数のコンテナホストそれぞれで起動コンテナを起動した場合の複数種類の負荷を予測し、複数種類の負荷が最も小さいコンテナホストで、起動コンテナを起動すると決定する。複数種類の負荷には、ブロックIO(ディスクIO)又はネットワークIOが含まれていてもよい。
FIG. 14 is a diagram showing the minimum configuration of a container activation host selection device according to one embodiment of the present invention.
As shown in FIG. 14, the container activation host selection device 100 comprises at least a container host controller 102 .
For each of a plurality of container hosts, the container host control unit 102 predicts a plurality of types of load based on the application running in the container running on each container host, and the application running in the startup container that is the container to be started. Based on the predicted values of multiple types of loads, predict multiple types of loads when launching a startup container on each of multiple container hosts, and decide to launch the startup container on the container host with the lowest load among multiple types. do. Multiple types of load may include block IO (disk IO) or network IO.

図15は、本発明の一実施形態におけるコンテナ起動ホスト選択システムのハードウェア構成の一例を示す図である。
コンピュータ900は、CPU901、主記憶装置902、補助記憶装置903、入出力インタフェース904、通信インタフェース905を備える。上述のコンテナ起動ホスト選択装置100、コンテナホスト200は、コンピュータ900に実装される。そして、上述した各機能部の動作は、プログラムの形式で補助記憶装置903に記憶されている。CPU901は、プログラムを補助記憶装置903から読み出して主記憶装置902に展開し、当該プログラムに従って上記処理を実行する。また、CPU901は、プログラムに従って、記憶領域を主記憶装置902に確保する。また、CPU901は、プログラムに従って、処理中のデータを記憶する記憶領域を補助記憶装置903に確保する。
FIG. 15 is a diagram showing an example of the hardware configuration of a container activation host selection system according to one embodiment of the present invention.
A computer 900 includes a CPU 901 , a main memory device 902 , an auxiliary memory device 903 , an input/output interface 904 and a communication interface 905 . The container activation host selection device 100 and the container host 200 described above are implemented in the computer 900 . The operation of each functional unit described above is stored in the auxiliary storage device 903 in the form of a program. The CPU 901 reads out the program from the auxiliary storage device 903, develops it in the main storage device 902, and executes the above processing according to the program. Also, the CPU 901 secures a storage area in the main storage device 902 according to the program. In addition, the CPU 901 secures a storage area for storing data being processed in the auxiliary storage device 903 according to the program.

なお、少なくとも1つの実施形態において、補助記憶装置903は、一時的でない有形の媒体の一例である。一時的でない有形の媒体の他の例としては、入出力インタフェース904を介して接続される磁気ディスク、光磁気ディスク、CD-ROM、DVD-ROM、半導体メモリ等が挙げられる。また、このプログラムが通信回線によってコンピュータ900に配信される場合、配信を受けたコンピュータ900が当該プログラムを主記憶装置902に展開し、上記処理を実行しても良い。また、当該プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、当該プログラムは、前述した機能を補助記憶装置903に既に記憶されている他のプログラムとの組み合わせで実現するもの、いわゆる差分ファイル(差分プログラム)であっても良い。 It should be noted that, in at least one embodiment, secondary storage device 903 is an example of non-transitory tangible media. Other examples of non-transitory tangible media include magnetic disks, magneto-optical disks, CD-ROMs, DVD-ROMs, semiconductor memories, etc. that are connected via the input/output interface 904 . Moreover, when this program is delivered to the computer 900 via a communication line, the computer 900 receiving the delivery may develop the program in the main storage device 902 and execute the above process. Also, the program may be for realizing part of the functions described above. Furthermore, the program may be a so-called difference file (difference program) that implements the above-described functions in combination with another program already stored in the auxiliary storage device 903 .

その他、本発明の趣旨を逸脱しない範囲で、上記した実施の形態における構成要素を周知の構成要素に置き換えることは適宜可能である。また、この発明の技術範囲は上記の実施形態に限られるものではなく、本発明の趣旨を逸脱しない範囲において種々の変更を加えることが可能である。 In addition, it is possible to appropriately replace the components in the above-described embodiments with well-known components without departing from the scope of the present invention. Moreover, the technical scope of the present invention is not limited to the above-described embodiments, and various modifications can be made without departing from the scope of the present invention.

30・・・コンテナ起動ホスト選択システム
001・・・クライアント
010・・・コンテナ起動要求部
100・・・コンテナ起動ホスト選択装置
101・・・コンテナ起動要求受付部
102・・・コンテナホスト制御部
110・・・アプリ情報判断部
111・・・アプリ情報記憶部
112・・・アプリ情報推測部
113・・・アプリ情報受付部
120・・・負荷情報予測部
121・・・負荷情報記憶部
122・・・負荷情報受付部
200、200a、200b・・・コンテナホスト
210、210a、210b・・・コンテナ制御部
211、211a、211b・・・アプリ情報収集部
212、212a、212b・・・コンテナ負荷情報収集部
220、220a、220b・・・コンテナ
900・・・コンピュータ
901・・・CPU
902・・・主記憶装置
903・・・補助記憶装置
904・・・入出力インタフェース
905・・・通信インタフェース
30 Container activation host selection system 001 Client 010 Container activation request unit 100 Container activation host selection device 101 Container activation request reception unit 102 Container host control unit 110 Application information determination unit 111 Application information storage unit 112 Application information estimation unit 113 Application information reception unit 120 Load information prediction unit 121 Load information storage unit 122 Load information reception units 200, 200a, 200b Container hosts 210, 210a, 210b Container control units 211, 211a, 211b Application information collection units 212, 212a, 212b Container load information collection units 220, 220a, 220b Container 900 Computer 901 CPU
902 Main storage device 903 Auxiliary storage device 904 Input/output interface 905 Communication interface

Claims (10)

複数のコンテナホストのそれぞれで動作中のコンテナにて稼働するアプリケーションによる複数種類の負荷の予測値と、起動対象のコンテナである起動コンテナにて稼働するアプリケーションによる複数種類の前記負荷の予測値とに基づいて、前記コンテナホストのそれぞれについて前記起動コンテナを起動した場合の複数種類の前記負荷を予測し、複数種類の前記負荷の合計が最も小さい前記コンテナホストを選択し、選択した前記コンテナホストで前記起動コンテナを起動すると決定するコンテナホスト制御部と、
前記起動コンテナの作成元となるイメージの識別情報と、イメージの識別情報とアプリケーションの情報とを対応付けて記憶するテーブルと、に基づいて、前記起動コンテナで稼働するアプリケーションを特定し、前記コンテナの作成元となるイメージの識別情報と、前記テーブルと、に基づいて、前記コンテナで稼働するアプリケーションを特定するアプリ情報判断部と、
前記コンテナホストで動作した前記コンテナで稼働したアプリケーションによる前記複数種類の負荷の実績値に基づいて、前記起動コンテナで稼働するアプリケーションおよび動作中の前記コンテナで稼働するアプリケーションによる複数種類の前記負荷の予測を行う負荷情報予測部と、
を備え
前記起動コンテナに対する起動要求があると、
前記アプリ情報判断部は、前記起動コンテナで稼働するアプリケーションを特定するとともに、前記複数のコンテナホストのそれぞれで動作中のコンテナにて稼働するアプリケーションを特定し、
前記負荷情報予測部は、特定された前記起動コンテナで稼働するアプリケーションの前記複数種類の負荷と、特定された前記複数のコンテナホストのそれぞれで動作中のコンテナにて稼働するアプリケーションの前記複数種類の負荷とを予測し、
前記コンテナホスト制御部は、前記複数のコンテナホスト別に前記コンテナホストで動作中の全てのコンテナにて稼働するアプリケーションの前記複数種類の負荷の予測値を前記複数種類別に合計し、さらにその合計した値に前記複数のコンテナホスト別に前記起動コンテナで稼働するアプリケーションの前記複数種類別の負荷を加算して、加算後の前記複数種類別の負荷の合計が最も小さい前記コンテナホストで前記起動コンテナを起動すると決定する、コンテナ起動ホスト選択装置。
Predicted values of multiple types of loads by applications running in containers running on each of a plurality of container hosts and predicted values of multiple types of loads by applications running in startup containers that are containers to be started based on the container host, predict a plurality of types of the load when the startup container is started for each of the container hosts, select the container host with the smallest total of the plurality of types of the load, and a container host control unit that decides to start the startup container ;
The application running in the boot container is specified based on the identification information of the image from which the boot container is created and the table storing the identification information of the image and the information of the application in association with each other. an application information determination unit that identifies an application running in the container based on the identification information of the image to be created and the table;
Prediction of the plurality of types of load by the application running in the startup container and the application running in the running container based on the actual values of the plurality of types of load by the application running in the container running in the container host a load information prediction unit that performs
with
When there is an activation request for the activation container,
The application information determination unit identifies an application running in the startup container and identifies an application running in a container running in each of the plurality of container hosts,
The load information prediction unit predicts the plurality of types of loads of the applications running on the identified start-up containers and the plurality of types of applications running on the containers running on each of the plurality of identified container hosts. predict the load and
The container host control unit sums the predicted values of the plurality of types of loads of the applications running in all the containers running on the container hosts for each of the plurality of container hosts, and further sums the predicted values for each of the plurality of types. by adding the loads of the plurality of types of the applications running in the startup container for each of the plurality of container hosts to , and starting the startup container on the container host with the smallest sum of the loads of the plurality of types after addition Determining container launch host selection device.
前記複数種類の負荷には、ディスクIOの負荷が含まれている、
請求項1に記載のコンテナ起動ホスト選択装置。
The multiple types of loads include disk IO loads.
2. The container activation host selection device according to claim 1.
前記複数種類の負荷には、ネットワークIOの負荷が含まれている、
請求項1または請求項2に記載のコンテナ起動ホスト選択装置。
The plurality of types of loads include network IO loads.
3. The container activation host selection device according to claim 1 or 2.
前記コンテナホスト制御部は、加算後の前記複数種類別の負荷のうちの何れか1つ又は複数を所定の閾値と比較して、前記閾値を超える負荷が存在する場合には、そのコンテナホストを、記起動コンテナを起動する対象から除外する、The container host control unit compares one or more of the added loads of the plurality of types with a predetermined threshold value, and if there is a load exceeding the threshold value, the container host is , Exclude the starting container from being started,
請求項1から請求項3の何れか1項に記載のコンテナ起動ホスト選択装置。The container activation host selection device according to any one of claims 1 to 3.
前記コンテナホストから、当該コンテナホストで動作したコンテナで稼働したアプリケーションによる複数の前記負荷の実績値を取得して、前記アプリケーションごとに前記負荷の実績値を記憶部に格納する負荷情報受付部、
をさらに備える請求項1から請求項4の何れか1項に記載のコンテナ起動ホスト選択装置。
a load information receiving unit that acquires from the container host a plurality of actual load values of the applications running in the containers running in the container host, and stores the actual load values for each of the applications in a storage unit;
The container activation host selection device according to any one of claims 1 to 4, further comprising:
前記コンテナホスト制御部は、加算後の前記複数種類別の負荷のそれぞれについて、全ての前記コンテナホストの平均値を算出し、前記コンテナホストごとに加算後の前記複数種類別の負荷のそれぞれから同じ種類の負荷に係る前記平均値を減算し、さらに減算した値を前記平均値で除算して第1評価値を算出し、全ての前記複数種類の負荷について前記第1評価値の加重和を計算した値が最も小さい前記コンテナホストで前記起動コンテナを起動すると決定する、The container host control unit calculates an average value of all the container hosts for each of the plurality of types of loads after addition, and calculates the same average value from each of the plurality of types of loads after addition for each container host. subtracting the average value associated with the type of load, dividing the subtracted value by the average value to calculate a first evaluation value, and calculating a weighted sum of the first evaluation values for all of the plurality of types of loads; determining to launch the launch container on the container host with the lowest
請求項1から請求項5の何れか1項に記載のコンテナ起動ホスト選択装置。The container activation host selection device according to any one of claims 1 to 5.
前記起動コンテナで稼働するアプリケーションについて前記テーブルが前記アプリケーションの情報を記憶していない場合、前記起動コンテナの作成元となるイメージに対するアプリケーションのインストール履歴に基づいて、前記起動コンテナで稼働するアプリケーションを推定するアプリ情報推測部、
をさらに備え
前記負荷情報予測部は、推定された前記アプリケーションの前記複数種類の負荷を予測する、
請求項1から請求項6の何れか1項に記載のコンテナ起動ホスト選択装置。
If the table does not store the application information about the application running in the boot container , the application running in the boot container is estimated based on the installation history of the application for the image from which the boot container is created. application information guessing unit,
further comprising
The load information prediction unit predicts the estimated plurality of types of loads of the application.
The container activation host selection device according to any one of claims 1 to 6 .
請求項1から請求項6の何れか1項に記載のコンテナ起動ホスト選択装置と、
自機で動作中のコンテナで稼働するアプリケーションによる複数種類の前記負荷を取得して、前記コンテナ起動ホスト選択装置へ通知するコンテナ負荷情報収集部、を備える1又は複数のコンテナホストと、
を含むコンテナ起動ホスト選択システム。
a container activation host selection device according to any one of claims 1 to 6;
one or a plurality of container hosts comprising a container load information collection unit that acquires a plurality of types of the loads by applications running in the containers running on the own device and notifies the container activation host selection device;
A container launch host selection system including.
コンピュータによって実行されるコンテナ起動ホスト選択方法であって、
複数のコンテナホストのそれぞれで動作中のコンテナにて稼働するアプリケーションによる複数種類の負荷の予測値と、起動対象のコンテナである起動コンテナにて稼働するアプリケーションによる複数種類の前記負荷の予測値とに基づいて、前記コンテナホストのそれぞれについて前記起動コンテナを起動した場合の複数種類の前記負荷を予測し、複数種類の前記負荷の合計が最も小さい前記コンテナホストを選択し、選択した前記コンテナホストで前記起動コンテナを起動すると決定するステップと、
前記起動コンテナの作成元となるイメージの識別情報と、イメージの識別情報とアプリケーションの情報とを対応付けて記憶するテーブルと、に基づいて、前記起動コンテナで稼働するアプリケーションを特定し、前記コンテナの作成元となるイメージの識別情報と、前記テーブルと、に基づいて、前記コンテナで稼働するアプリケーションを特定するステップと、
前記コンテナホストで動作した前記コンテナで稼働したアプリケーションによる複数種類の前記負荷の実績値に基づいて、前記起動コンテナで稼働するアプリケーションおよび動作中の前記コンテナで稼働するアプリケーションによる複数種類の前記負荷の予測を行うステップと、を有し、
前記起動コンテナに対する起動要求があると、
前記アプリケーションを特定するステップにて、前記起動コンテナで稼働するアプリケーションを特定するとともに、前記複数のコンテナホストのそれぞれで動作中のコンテナにて稼働するアプリケーションを特定し、
前記予測を行うステップにて、特定された前記起動コンテナで稼働するアプリケーションの前記複数種類の負荷と、特定された前記複数のコンテナホストのそれぞれで動作中のコンテナにて稼働するアプリケーションの前記複数種類の負荷とを予測し、
前記決定するステップにて、前記複数のコンテナホスト別に前記コンテナホストで動作中の全てのコンテナにて稼働するアプリケーションの前記複数種類の負荷の予測値を前記複数種類別に合計し、さらにその合計した値に前記複数のコンテナホスト別に前記起動コンテナで稼働するアプリケーションの前記複数種類別の負荷を加算して、加算後の前記複数種類別の負荷の合計が最も小さい前記コンテナホストで前記起動コンテナを起動すると決定する、コンテナ起動ホスト選択方法。
A computer-implemented container launch host selection method comprising:
Predicted values of multiple types of loads by applications running in containers running on each of a plurality of container hosts and predicted values of multiple types of loads by applications running in startup containers that are containers to be started based on the container host, predict a plurality of types of the load when the startup container is started for each of the container hosts, select the container host with the smallest total of the plurality of types of the load, and determining to launch the launch container ;
The application running in the boot container is specified based on the identification information of the image from which the boot container is created and the table storing the identification information of the image and the information of the application in association with each other. identifying an application running in the container based on the identification information of the image to be created and the table;
Prediction of the plurality of types of load by the application running in the startup container and the application running in the running container based on the actual values of the multiple types of load by the application running in the container running in the container host. and
When there is an activation request for the activation container,
In the step of identifying the application, identifying the application running in the startup container and identifying the application running in the container running in each of the plurality of container hosts;
In the step of predicting, the plurality of types of loads of applications running on the identified startup containers and the plurality of types of applications running on containers running on each of the plurality of identified container hosts. and predict the load of
In the determining step, for each of the plurality of container hosts, the predicted values of the plurality of types of loads of the applications running in all the containers running on the container hosts are totaled for each of the plurality of types, and the totaled value is obtained. by adding the loads of the plurality of types of the applications running in the startup container for each of the plurality of container hosts to , and starting the startup container on the container host with the smallest sum of the loads of the plurality of types after addition Determines how the container launch host is selected.
コンピュータに、
複数のコンテナホストのそれぞれで動作中のコンテナにて稼働するアプリケーションによる複数種類の負荷の予測値と、起動対象のコンテナである起動コンテナにて稼働するアプリケーションによる複数種類の前記負荷の予測値とに基づいて、前記コンテナホストのそれぞれについて前記起動コンテナを起動した場合の複数種類の前記負荷を予測し、複数種類の前記負荷の合計が最も小さい前記コンテナホストを選択し、選択した前記コンテナホストで前記起動コンテナを起動すると決定するステップと、
前記起動コンテナの作成元となるイメージの識別情報と、イメージの識別情報とアプリケーションの情報とを対応付けて記憶するテーブルと、に基づいて、前記起動コンテナで稼働するアプリケーションを特定し、前記コンテナの作成元となるイメージの識別情報と、前記テーブルと、に基づいて、前記コンテナで稼働するアプリケーションを特定するステップと、
前記コンテナホストで動作した前記コンテナで稼働したアプリケーションによる複数種類の前記負荷の実績値に基づいて、前記起動コンテナで稼働するアプリケーションおよび動作中の前記コンテナで稼働するアプリケーションによる複数種類の前記負荷の予測を行うステップと、を有し、
前記起動コンテナに対する起動要求があると、
前記アプリケーションを特定するステップにて、前記起動コンテナで稼働するアプリケーションを特定するとともに、前記複数のコンテナホストのそれぞれで動作中のコンテナにて稼働するアプリケーションを特定し、
前記予測を行うステップにて、特定された前記起動コンテナで稼働するアプリケーションの前記複数種類の負荷と、特定された前記複数のコンテナホストのそれぞれで動作中のコンテナにて稼働するアプリケーションの前記複数種類の負荷とを予測し、
前記決定するステップにて、前記複数のコンテナホスト別に前記コンテナホストで動作中の全てのコンテナにて稼働するアプリケーションの前記複数種類の負荷の予測値を前記複数種類別に合計し、さらにその合計した値に前記複数のコンテナホスト別に前記起動コンテナで稼働するアプリケーションの前記複数種類別の負荷を加算して、加算後の前記複数種類別の負荷の合計が最も小さい前記コンテナホストで前記起動コンテナを起動すると決定する処理、を実行させるプログラム。
to the computer,
Predicted values of multiple types of loads by applications running in containers running on each of a plurality of container hosts and predicted values of multiple types of loads by applications running in startup containers that are containers to be started based on the container host, predict a plurality of types of the load when the startup container is started for each of the container hosts, select the container host with the smallest total of the plurality of types of the load, and determining to launch the launch container ;
The application running in the boot container is specified based on the identification information of the image from which the boot container is created and the table storing the identification information of the image and the information of the application in association with each other. identifying an application running in the container based on the identification information of the image to be created and the table;
Prediction of the plurality of types of load by the application running in the startup container and the application running in the running container based on the actual values of the multiple types of load by the application running in the container running in the container host. and
When there is an activation request for the activation container,
In the step of identifying the application, identifying the application running in the startup container and identifying the application running in the container running in each of the plurality of container hosts;
In the step of predicting, the plurality of types of loads of applications running on the identified startup containers and the plurality of types of applications running on containers running on each of the plurality of identified container hosts. and predict the load of
In the determining step, for each of the plurality of container hosts, the predicted values of the plurality of types of loads of the applications running in all the containers running on the container hosts are totaled for each of the plurality of types, and the totaled value is obtained. by adding the loads of the plurality of types of the applications running in the startup container for each of the plurality of container hosts to , and starting the startup container on the container host with the smallest sum of the loads of the plurality of types after addition A program that executes a decision process .
JP2019059250A 2019-03-26 2019-03-26 Container activation host selection device, container activation host selection system, container activation host selection method and program Active JP7331407B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019059250A JP7331407B2 (en) 2019-03-26 2019-03-26 Container activation host selection device, container activation host selection system, container activation host selection method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019059250A JP7331407B2 (en) 2019-03-26 2019-03-26 Container activation host selection device, container activation host selection system, container activation host selection method and program

Publications (2)

Publication Number Publication Date
JP2020160775A JP2020160775A (en) 2020-10-01
JP7331407B2 true JP7331407B2 (en) 2023-08-23

Family

ID=72643482

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019059250A Active JP7331407B2 (en) 2019-03-26 2019-03-26 Container activation host selection device, container activation host selection system, container activation host selection method and program

Country Status (1)

Country Link
JP (1) JP7331407B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102438916B1 (en) * 2020-11-18 2022-09-01 (주)글루시스 Virtualization system based on container and method for expanding resource of container in virtualization system
JP7399427B2 (en) * 2021-03-05 2023-12-18 ソフトバンク株式会社 Server and container systems
WO2023218664A1 (en) * 2022-05-13 2023-11-16 楽天モバイル株式会社 Replacement system and replacement method
WO2023218663A1 (en) * 2022-05-13 2023-11-16 楽天モバイル株式会社 Execution platform determination system and execution platform determination method

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018003031A1 (en) 2016-06-29 2018-01-04 富士通株式会社 Virtualization management program, virtualization management device, and virtualization management method

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6455035B2 (en) * 2014-09-10 2019-01-23 富士通株式会社 Load balancing management device, control method, and program

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018003031A1 (en) 2016-06-29 2018-01-04 富士通株式会社 Virtualization management program, virtualization management device, and virtualization management method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
叶如絵ほか,コンテナ型仮想化環境向き負荷予測システム「Tetris」の開発,情報処理学会第78回(平成28年)全国大会講演論文集(1) コンピュータシステム ソフトウェア科学・工学 データとウェブ,日本,一般社団法人情報処理学会,2016年03月10日,1-11~1-12ページ

Also Published As

Publication number Publication date
JP2020160775A (en) 2020-10-01

Similar Documents

Publication Publication Date Title
JP7331407B2 (en) Container activation host selection device, container activation host selection system, container activation host selection method and program
US11032359B2 (en) Multi-priority service instance allocation within cloud computing platforms
US9378056B2 (en) Management server, and virtual machine move control method
EP2437168B1 (en) Method and device for balancing load of multiprocessor system
JP4293011B2 (en) Server determination method in case of failure
JP5664098B2 (en) Composite event distribution apparatus, composite event distribution method, and composite event distribution program
US8700752B2 (en) Optimized efficient LPAR capacity consolidation
JP6075226B2 (en) Program, virtual machine management method, and information processing apparatus
JP2011118525A (en) Server management apparatus, server management method, and server management program
JP6233413B2 (en) Task assignment determination device, control method, and program
JP5484601B2 (en) Data transfer control method for parallel distributed processing system, parallel distributed processing system, and storage medium
US10193973B2 (en) Optimal allocation of dynamically instantiated services among computation resources
US9792142B2 (en) Information processing device and resource allocation method
US10496430B2 (en) Information processing system, autoscaling association apparatus, and non-transitory computer readable medium for determining a necessary number of virtual machines
US20170262196A1 (en) Load monitoring method and information processing apparatus
US20100251248A1 (en) Job processing method, computer-readable recording medium having stored job processing program and job processing system
US10684901B2 (en) Data store device and data management method
WO2013171944A1 (en) Virtual machine management system, virtual machine management method, and program
US20100057967A1 (en) Recording medium with load distribution program recorded therein and load distribution apparatus
US20170262310A1 (en) Method for executing and managing distributed processing, and control apparatus
US20210019160A1 (en) Quality of service scheduling with workload profiles
JP6963465B2 (en) Computer system and data processing control method
US11893417B2 (en) Process request management apparatus, process request management method and program
US20160224378A1 (en) Method to control deployment of a program across a cluster of machines
JP6960444B2 (en) Computer system and resource management method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230316

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230711

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230724

R151 Written notification of patent or utility model registration

Ref document number: 7331407

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151