KR20200077115A - Method of ensuring process time by minimizing performance interference in container virtualization environment - Google Patents

Method of ensuring process time by minimizing performance interference in container virtualization environment Download PDF

Info

Publication number
KR20200077115A
KR20200077115A KR1020180166315A KR20180166315A KR20200077115A KR 20200077115 A KR20200077115 A KR 20200077115A KR 1020180166315 A KR1020180166315 A KR 1020180166315A KR 20180166315 A KR20180166315 A KR 20180166315A KR 20200077115 A KR20200077115 A KR 20200077115A
Authority
KR
South Korea
Prior art keywords
container
performance interference
execution time
time
server
Prior art date
Application number
KR1020180166315A
Other languages
Korean (ko)
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 KR1020180166315A priority Critical patent/KR20200077115A/en
Publication of KR20200077115A publication Critical patent/KR20200077115A/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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

According to an embodiment of the present invention, a method for ensuring optimal processing time by minimizing performance interference in a container virtualization environment comprises: a step of measuring a performance interference value; and a container request placement step.

Description

컨테이너 가상화 환경에서의 성능 간섭 최소화를 통한 최적의 처리 시간 보장 방법{Method of ensuring process time by minimizing performance interference in container virtualization environment}Method of ensuring process time by minimizing performance interference in container virtualization environment}

본 발명은 컨테이너 가상화 환경에서의 성능 간섭 최소화를 통한 최적의 처리 시간 보장방법에 관한 것이다. The present invention relates to a method for ensuring optimal processing time through minimizing performance interference in a container virtualization environment.

서버 클러스터에서 수행되는 기존의 컨테이너 배치 방법은 대부분 서버 가용 자원, CPU 및 저장 장치 등의 하드웨어 종류, 컨테이너 애플리케이션의 종류 친화성 등을 기준으로 수행된다. 그러나 여러 개의 컨테이너들은 커널 등과 같은 호스트의 자원들을 공유해 사용하며, 이로 인해 컨테이너 간의 간섭이 발생해 성능이 저하될 수 있고, 컨테이너 애플리케이션의 처리 시간이 늘어날 수 있다는 문제점이 존재한다. 호스트의 공유 자원에 대한 격리는 컨테이너 가상화 기술에서 지원되지 않을 뿐만 아니라, 성능 간섭에 해당되는 공유 자원의 종류가 많고 다양해 이에 종합적으로 대응하기 어렵고, 다양한 컨테이너 애플리케이션 간의 성능 간섭 정도가 각각 상이하기 때문에, 이를 보완하기 위한 방법이 요구된다.Most of the existing container arrangement methods performed in the server cluster are performed based on server available resources, CPU and storage device hardware types, and container application type affinity. However, several containers share resources of a host, such as a kernel, and this causes interference between containers, which may degrade performance and increase processing time of container applications. Isolation of the shared resource of the host is not supported in container virtualization technology, and since there are many and various types of shared resources corresponding to performance interference, it is difficult to comprehensively respond to it, and the degree of performance interference between various container applications is different. A method for supplementing this is required.

본 발명은, 컨테이너 가상화를 사용하는 클라우드 환경에서, 단일 호스트 내에서 발생하는 복수 컨테이너 간 성능 간섭을 최소화해, 주어진 환경에서 최적의 처리 시간을 수행할 수 있도록 하는 기술을 제안한다. The present invention proposes a technique for minimizing performance interference between multiple containers occurring in a single host in a cloud environment using container virtualization, and performing optimal processing time in a given environment.

본 방법은 컨테이너의 처리 시간을 최소화하기 위해, 주어진 컨테이너 애플리케이션 간의 성능 간섭 수치를 측정하고, 이를 기반으로 각 컨테이너의 예상 수행 시간을 계산함으로써 성능 간섭으로 인한 처리 시간 증가 현상을 최소화한다. 이를 위해 본 방법은 총 두 단계로 구성되며, 이는 각각 (1) 다양한 컨테이너 애플리케이션 조합으로 인한 성능 간섭 수치를 측정하는 단계, (2) 이를 활용해 주어진 서버 클러스터 중 현재 요청된 컨테이너의 처리 시간이 최소화되거나, 전체 컨테이너 처리 시간이 최소화될 것으로 예상되는 서버를 선택해 요청을 할당하는 단계로 구성된다. 두 번째 단계에서는, 현재 요청된 컨테이너 애플리케이션의 종류와, 각 서버에서 기존에 실행 중인 컨테이너 애플리케이션의 종류를 서로 비교함으로써, 현재 요청된 컨테이너의 예상 수행 시간 및 기존에 실행 중인 컨테이너의 추가 수행 시간을 예측한다.In order to minimize the processing time of a container, the method measures a performance interference number between a given container application and calculates an estimated execution time of each container based on this, thereby minimizing the increase in processing time due to performance interference. To this end, the method consists of a total of two stages, each of which is (1) measuring the performance interference due to various container application combinations, and (2) utilizing it to minimize the processing time of the currently requested container among the given server clusters. Or, selecting a server that is expected to minimize overall container processing time and allocating requests. In the second step, the estimated execution time of the currently requested container and the additional execution time of the existing running container are predicted by comparing the type of the currently requested container application with the type of the container application currently running on each server. do.

본 방법은 처리 시간에 민감한 서비스를 컨테이너 기반의 클라우드에서 연속적으로 요청 및 할당해 사용해야 할 때, 컨테이너 간 성능 간섭으로 인한 추가 수행 시간을 최소화함으로써 원래의 성능과 최대한 비슷한 수준의 성능을 제공할 수 있고, 이를 통해 주어진 처리 시간 내에 애플리케이션이 수행될 수 있도록 한다. 응답 시간에 민감한 V2X, 5G, 자동화 공정, IoT 환경 등에서 컨테이너 수준의 가상화를 차용해 사용할 때 본 방법을 적용할 수 있으며, 컨테이너 간의 성능 간섭을 최소화해 추가적인 처리 시간을 감소시킴으로써 서비스의 응답시간을 줄일 수 있을 것으로 예상된다.This method can provide a level of performance that is as close to the original performance as possible by minimizing the additional execution time due to performance interference between containers when a service-sensitive service needs to be continuously requested and allocated in a container-based cloud. In this way, the application can be executed within a given processing time. This method can be applied when using container-level virtualization in V2X, 5G, automation process, IoT environment, etc., which is sensitive to response time, and it can reduce service response time by reducing additional processing time by minimizing performance interference between containers. It is expected to be.

도 1은 CPU에서 실행되는 컨테이너 애플리케이션의 타임라인이다.
도 2는 성능 간섭치 계산방법이다.
도 3은 컨테이너 애플리케이션의 예상 수행시간 계산방법이다.
도 4는 기존에 실행중인 컨테이너의 수행시간 갱신결과이다.
도 5는 컨테이너 요청의 배치 전략의 적용예시 개념도이다.
1 is a timeline of a container application running on a CPU.
2 is a method for calculating a performance interference value.
3 is a method of calculating an expected execution time of a container application.
4 is a result of updating the execution time of an existing running container.
5 is a conceptual diagram illustrating an application example of a container request placement strategy.

상술한 본 발명의 특징 및 효과는 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. The above-described features and effects of the present invention will become more apparent through the following detailed description in connection with the accompanying drawings, and accordingly, those skilled in the art to which the present invention pertains can easily implement the technical spirit of the present invention. Will be able to.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 구체적으로 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.The present invention can be variously changed and can have various embodiments, and specific embodiments will be illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the present invention to specific embodiments, and should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention.

각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다.In describing each drawing, similar reference numerals are used for similar components.

제1, 제2등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.Terms such as first and second may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from other components.

예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.For example, the first component may be referred to as a second component without departing from the scope of the present invention, and similarly, the second component may be referred to as a first component. The term and/or includes a combination of a plurality of related described items or any one of a plurality of related described items.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미가 있다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by a person skilled in the art to which the present invention pertains.

일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않아야 한다.Terms such as those defined in a commonly used dictionary should be interpreted as having meanings consistent with meanings in the context of related technologies, and should not be interpreted as ideal or excessively formal meanings unless explicitly defined in the present application. Should not.

이하의 설명에서 사용되는 구성요소에 대한 접미사 모듈, 블록 및 부는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. The suffix modules, blocks, and parts for components used in the following description are given or mixed only considering the ease of writing the specification, and do not have a meaning or a role that is distinguished from each other.

이하, 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 당해 분야에 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 설명한다. 하기에서 본 발명의 실시 예를 설명함에 있어, 관련된 공지의 기능 또는 공지의 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. Hereinafter, with reference to the accompanying drawings, preferred embodiments of the present invention will be described so that those skilled in the art can easily carry out. In the following description of embodiments of the present invention, when it is determined that detailed descriptions of related well-known functions or well-known configurations may unnecessarily obscure the subject matter of the present invention, detailed descriptions thereof will be omitted.

이하에서는, 본 발명에 따른 컨테이너 가상화 환경에서의 성능 간섭 최소화를 통한 최적의 처리 시간 보장 방법에 대해 살펴보기로 한다. Hereinafter, a method of guaranteeing an optimal processing time through minimizing performance interference in a container virtualization environment according to the present invention will be described.

컨테이너는 OS 레벨의 가상화를 적용함으로써 경량화된 가상 공간을 생성하는 가상화 기술이다. 컨테이너는 기존의 가상화 기술인 가상 머신과 달리 완벽한 운영 체제를 갖추지 않으며, 호스트 머신과 커널을 공유해 사용하고, 프로그램 실행에 필요한 라이브러리만을 갖춘 가상 공간을 사용한다. Container is a virtualization technology that creates a lightweight virtual space by applying OS-level virtualization. The container does not have a complete operating system, unlike a virtual machine, which is a conventional virtualization technology. It uses a shared kernel with a host machine and uses a virtual space equipped with only the libraries necessary for program execution.

컨테이너, 예를 들어 Docker (도커) 와 같은 오픈소스 프로젝트는 멀티 테넌시를 제공하기 위해 호스트의 자원을 가상화해 컨테이너 별로 할당한다. 이 때 cgroup과 같은 리눅스 커널에 내장된 자원 분리 기술을 컨테이너 기술에 적용할 수 있다. cgroup는 메모리, CPU Block I/O 등의 자원을 각 컨테이너에게 독립적으로 할당하는 기능을 제공한다.Containers, for example, open source projects such as Docker (Virtual Docker) virtualize the resources of the host to provide multi-tenancy and allocate them per container. At this time, resource separation technology built into the Linux kernel such as cgroup can be applied to container technology. cgroup provides the function to allocate resources such as memory and CPU Block I/O to each container independently.

cgroup 기반의 자원 가상화는 가상 머신에서 사용되는 하이퍼바이저와 달리, 커널에 내장되어 있는 자원 격리 기술이다. cgroup에서 제어되지 않는 호스트 자원, 예를 들어 CPU의 캐시 (L1, L2, LLC 등), 메모리 대역폭, I/O 장치 등은 모든 컨테이너가 공유해 사용하며, 특정 컨테이너가 공유 자원을 과도하게 사용하거나 점유할 경우, 해당 공유 자원을 사용하는 다른 컨테이너의 성능이 낮아지는 현상이 발생할 수 있다. 이로 인해 컨테이너 애플리케이션의 처리 속도가 낮아짐에 따라 서비스 요청의 응답시간 또한 증가하고, 전체적인 서비스의 품질이 낮아질 수 있다.Unlike virtualization used in virtual machines, cgroup-based resource virtualization is a resource isolation technology built into the kernel. Host resources that are not controlled by the cgroup, such as the CPU's cache (L1, L2, LLC, etc.), memory bandwidth, and I/O devices are shared and used by all containers, and a specific container excessively uses or occupies shared resources. If you do, the performance of other containers using the shared resource may be lowered. As a result, as the processing speed of the container application decreases, the response time of the service request also increases, and the overall quality of the service may decrease.

이를 해결하기 위해, 본 방법은 주어진 컨테이너 애플리케이션 간의 성능 간섭 수치를 측정하고, 해당 수치 값들을 기반으로 컨테이너 요청을 최적의 서버에 할당하는 스케줄링을 진행함으로써 컨테이너의 처리 시간을 최적화하는 방법을 제안한다.To solve this, the method proposes a method of optimizing the processing time of a container by measuring the performance interference number between the given container applications and scheduling the allocation of the container request to the optimal server based on the numerical values.

본 방법에서는, 컨테이너 애플리케이션의 종류가 N개로 주어졌다고 가정하며, 각 컨테이너의 공유 자원 사용 정도는 컨테이너의 실행 시간 (요청 처리 시간) 동안 동일하다고 가정한다. 또한, 컨테이너 성능 간섭의 주요 원인으로 지목되는 CPU 캐시 미스 공유(메모리 대역폭)을 최소화하기 위해, 각 컨테이너는 cgroup을 통해 배타적으로 할당된 1개의 CPU Affinity를 사용함을 가정한다. 또한, 하나의 컨테이너는 하나의 애플리케이션만을 배타적으로 실행한다.In this method, it is assumed that N kinds of container applications are given, and it is assumed that the degree of use of shared resources of each container is the same during the execution time (request processing time) of the container. In addition, in order to minimize CPU cache miss sharing (memory bandwidth), which is a major cause of container performance interference, it is assumed that each container uses one CPU affinity allocated exclusively through a cgroup. Also, one container exclusively executes one application.

이하 본 발명의 실시예에 따른 컨테이너 가상화 환경에서의 성능 간섭 최소화를 통한 최적의 처리 시간 보장 방법을 도면을 이용하여 상세히 설명한다.Hereinafter, a method for ensuring optimal processing time through minimizing performance interference in a container virtualization environment according to an embodiment of the present invention will be described in detail with reference to the drawings.

도 1은 CPU에서 실행되는 컨테이너 애플리케이션의 타임라인이다.1 is a timeline of a container application running on a CPU.

도 2는 성능 간섭치 계산방법이다.2 is a method for calculating a performance interference value.

<1단계 - 성능간섭 수치 측정단계><Step 1-Performance Interference Numeric Measurement Step>

성능 간섭을 계산하기 위해, 복수 개의 컨테이너 애플리케이션을 동시에 실행해 추가로 실행된 시간을 계산한 뒤, 해당 시간 값을 성능 간섭을 받지 않은 실행 시간으로 나누어 계산한다. 도 1, 도 2는 두 종류의 컨테이너 애플리케이션을 동시에 실행한 뒤, 성능 감소치를 계산하는 방법을 나타낸다.In order to calculate the performance interference, a plurality of container applications are simultaneously executed to calculate the additional execution time, and the time value is divided by the execution time without performance interference. 1 and 2 show a method of calculating performance reduction values after simultaneously executing two types of container applications.

도 2의 '컨테이너 애플리케이션 당 기준 소요 시간' 은 해당 컨테이너가 성능 간섭 없이 실행될 때의 원래 처리 시간을 의미한다. 이 때, 도 1과 같이 A, B를 컨테이너로서 동시에 실행했을 때 각 컨테이너에서 추가로 실행 된 시간 만큼을 계산하고, 해당 시간 만큼을 원래의 실행 시간으로 나누어 성능 간섭치를 계산한다. 예를 들어 A의 원래 수행 시간이 2초이고, A와 B를 동시에 실행했을 때 2.2초가 소요되었다면 0.2 / 2 = 0.1, 즉 10%의 성능 간섭이 발생하였으며, 성능 간섭 수치는 0.1로 계산된다. 이 때, 성능 간섭이 일어난 구간은 두 컨테이너가 동시에 실행된 시간에 한정되므로, 각 컨테이너 애플리케이션 중 최소의 실행시간: minTime 값을 구해 함께 저장하며, 성능 간섭이 발생하지 않은 구간에 대해서는 고려하지 않는다. 이와 같은 값들을 통해, 아래와 같은 성능 간섭 레코드를 생성한다.'Reference time per container application' in FIG. 2 means the original processing time when the corresponding container is executed without performance interference. At this time, when A and B are simultaneously executed as containers as shown in FIG. 1, the amount of time additionally executed in each container is calculated, and the corresponding time is divided by the original execution time to calculate the performance interference value. For example, if the original execution time of A is 2 seconds, and 2.2 seconds were taken when A and B were executed simultaneously, 0.2 / 2 = 0.1, that is, 10% of performance interference occurred, and the performance interference value is calculated as 0.1. At this time, since the section where the performance interference occurred is limited to the time when the two containers were executed simultaneously, the minimum execution time of each container application: minTime value is obtained and stored together, and the section where the performance interference does not occur is not considered. Through these values, the following performance interference record is generated.

레코드 형식 : {[애플리케이션 종류의 조합], 타겟 애플리케이션 종류, minTime, 성능 간섭 수치} Record format: {[application type combination], target application type, minTime, performance interference number }

데이터 예시 : {[A,B], A, 2.0, 0.1 } Data example: {[A,B], A, 2.0, 0.1}

- 위 예시의 값은 각각 아래의 뜻을 의미한다.-The values in the above examples mean the following respectively.

(1) A와 B가 동시에 실행되었을 때 : [A,B], (1) When A and B are executed simultaneously: [A,B],

(2) A 애플리케이션에 대해서 : A, (2) For application A : A,

(3) 2.0초 동안 (minTime) : 2.0 (3) For 2.0 seconds (minTime): 2.0

(4) 0.1 (10%) 만큼의 성능 간섭을 받았다 : 0.1 (4) 0.1 (10%) of performance interference: 0.1

- 단, 여러 종류의 애플리케이션이 동시에 실행될 경우 각 애플리케이션 종류에 대한 성능 간섭의 정도는 모두 다르기 때문에 위의 예시 중 (2)에서 특정 애플리케이션에 대한 타겟을 나타내었다. 이와 같은 방법으로, 도 2에서 타겟 애플리케이션이 B인 경우에 대해서도 아래와 같이 나타낼 수 있다.-However, when several types of applications are executed at the same time, the degree of performance interference for each type of application is different, so the target for a specific application is shown in (2) above. In this way, the case in which the target application is B in FIG. 2 can be represented as follows.

데이터 예시 : {[A,B], B, 2.0, 0.05 } Data example: {[A,B], B, 2.0, 0.05}

- 위 예시의 값은 각각 아래의 뜻을 의미한다.-The values in the above examples mean the following respectively.

(1) A와 B가 동시에 실행되었을 때 : [A,B], (1) When A and B are executed simultaneously: [A,B],

(2) B 애플리케이션에 대해서 : B, (2) For B application: B,

(3) 2.0초 동안 (minTime) : 2.0 (3) For 2.0 seconds (minTime): 2.0

(4) 0.05 (5%)만큼의 성능 간섭을 받았다 : 0.05 (4) 0.05 (5%) of performance interference: 0.05

- 이러한 방식을 통해, 주어진 모든 컨테이너 애플리케이션 조합에 대해 성능 간섭치를 계산해 데이터로서 저장한다. 예를 들어, 네 종류의 컨테이너 애플리케이션이 주어졌을 때, 출력되는 성능 간섭치의 경우는, 중복 조합인 H(4,2): 10, + H(4,3): 20, + H(4,4): 35 = 65가지의 레코드가 출력된다. 이 레코드에는, (1) 어떠한 애플리케이션 조합이 함께 실행되었을 때, (2) 특정 애플리케이션에 (3) 몇 초 동안 (4) 얼마나 성능 간섭이 발생했는지에 대한 정보가 담겨 있다.In this way, performance interference values are calculated and stored as data for all given container application combinations. For example, given four types of container applications, for output performance interference values, the redundant combination H(4,2): 10, + H(4,3): 20, + H(4,4 ): 35 = 65 records are output. This record contains information about (1) when any combination of applications was run together, (2) how many times (3) how many seconds (4) performance interference occurred in a particular application.

- 각 중복 조합: H(n,r) 은 N개의 컨테이너 애플리케이션 종류가 주어졌을 때, r개의 컨테이너 애플리케이션이 동시에 실행 될 경우의 레코드 개수를 나타낸다. 각 경우의 예시는 아래와 같다.-Each duplicate combination: H(n,r) indicates the number of records when r container applications are executed simultaneously when N container application types are given. Examples of each case are as follows.

- H(4,2) 의 경우에 대한 레코드 예시는 {[A,B], B, 2.0, 0.05 } 와 같다.-Examples of records for the case of H(4,2) are {[A,B], B, 2.0, 0.05 }.

- H(4,3) 의 경우에 대한 레코드 예시는 {[A,B,C], B, 2.0, 0.15 } 와 같다.-Examples of records for the case of H(4,3) are {[A,B,C], B, 2.0, 0.15 }.

- H(4,4) 의 경우에 대한 레코드 예시는 {[B,B,B,C], C, 2.0, 0.25} 와 같다. -An example of a record for the case of H(4,4) is {[B,B,B,C], C, 2.0, 0.25}.

<2단계 - 컨테이너 요청 배치 단계><Step 2-Container request placement step>

도 3은 컨테이너 애플리케이션의 예상 수행시간 계산방법이다.3 is a method of calculating an expected execution time of a container application.

도 4는 기존에 실행중인 컨테이너의 수행시간 갱신결과이다.4 is a result of updating the execution time of an existing running container.

도 5는 컨테이너 요청의 배치 전략의 적용예시 개념도이다.5 is a conceptual diagram illustrating an application example of a container request placement strategy.

본 발명의 실시예에 따른 컨테이너 요청 배치단계는 모든 경우에 대해 성능 간섭 수치를 얻은 뒤, 컨테이너 요청에 대한 배치 스케줄링을 진행할 수 있다. 컨테이너 요청이 들어올 경우, 서버 클러스터 내에서 각 서버에 대한 성능 간섭률 (예상 수행 시간, 또는 추가 수행 시간)을 계산한 뒤, 특정 전략을 사용해 컨테이너 요청을 할당한다.In the container request placement step according to an embodiment of the present invention, after obtaining the performance interference value for all cases, batch scheduling for the container request may be performed. When a container request comes in, the performance interference rate (expected execution time, or additional execution time) for each server in the server cluster is calculated, and then the container request is allocated using a specific strategy.

2-2- 1과정Course 1 : 새로 요청된 컨테이너의 수행시간 예측 : Estimated execution time of newly requested containers

클러스터 내의 모든 서버에 대해 새로 요청된 컨테이너의 예상 요청 시간을 계산한다. 새로 요청된 컨테이너의 예상 수행 시간을 계산하기 위해, 첫 번째 단계에서 출력된 성능 간섭 수치 데이터: 특정 조합의 컨테이너 애플리케이션이 함께 수행될 때의 성능 간섭 수치를 사용하며, 이에 대한 예시는 도 3과 같다. Calculate the estimated request time for newly requested containers for all servers in the cluster. In order to calculate the expected execution time of the newly requested container, performance interference figure data output in the first step: performance interference figure when a specific combination of container applications are performed is used, an example of which is illustrated in FIG. 3. .

2-2- 2과정Course 2 : 각 서버에서 기존에 실행중인 컨테이너의 예측 수행시간 갱신 : Update the estimated execution time of the existing container running on each server

새로운 컨테이너 요청이 특정 서버에 할당될 경우, 새로운 컨테이너의 실행으로 인해 기존에 실행 중이던 컨테이너 또한 성능 저하가 발생한다. 따라서 새로 요청된 컨테이너의 예상 수행 시간을 각 서버에 대해 계산함과 동시에, 해당 서버에서 기존에 이미 실행 중인 컨테이너의 연장되는 추가 수행 시간을 함께 예측해 갱신한다. 새로운 컨테이너 요청 시, 기존에 이미 실행 중인 컨테이너의 연장되는 수행 시간의 예시는 도 4와 같다.When a new container request is allocated to a specific server, the performance of the container that was previously running is also degraded due to the execution of the new container. Therefore, the estimated execution time of the newly requested container is calculated for each server, and at the same time, the additional execution time of the container already running on the server is predicted and updated together. When requesting a new container, an example of an extended execution time of a container that is already running is illustrated in FIG. 4.

2-2- 3과정3 courses : 컨테이너 요청의 배치전략 : Deployment strategy for container requests

- 즉, 새로운 컨테이너에 대한 요청이 도착할 경우, 클러스터 내의 모든 서버에 대해 두 가지 값을 미리 계산할 수 있으며, 해당 값은 아래와 같다.-That is, when a request for a new container arrives, two values can be calculated in advance for all servers in the cluster, and the values are as follows.

[예상 수행 시간 A] : 새로운 컨테이너 요청이 해당 서버에 할당될 경우, 해당 컨테이너의 예상 수행 시간 [Expected execution time A]: When a new container request is allocated to the server, the expected execution time of the container

[예상 수행 시간 B] : 새로운 컨테이너 요청이 해당 서버에 할당될 경우, 해당 서버에서 기존에 실행 중인 컨테이너들에 미치는 성능 간섭 정도 (추가 수행 시간) [Expected execution time B]: When a new container request is assigned to the server, the degree of performance interference on the existing containers running on the server (additional execution time)

- 위의 두 값을 이용하여, 컨테이너 워크로드에 대한 배치 전략을 구상할 수 있다. 본 방법에서 제안하는 전략은 두 가지로, 이는 아래와 같이 구성된다.-Using these two values, you can devise a deployment strategy for container workloads. There are two strategies proposed in this method, which are composed as follows.

[전략 1] : 연속된 컨테이너 요청에서 전체 처리 시간을 최소화 하는 전략 [Strategy 1] : Strategy to minimize the total processing time in consecutive container requests

- 일련의 컨테이너 요청이 연속적으로 도착할 때, [예상 수행 시간 A][예상 수행 시간 B]의 합이 가장 최소가 되는 서버를 선택한다. 특정 서버에서 계산된 [예상 수행 시간 A] 의 값이 크더라도, [예상 수행 시간 B] 의 값이 작다면 해당 서버가 선택될 수 있다. 이는 전체적인 컨테이너 수행 시간을 최소화할 수 있지만, 현재 요청 받은 컨테이너의 수행 시간이 최소화되지는 않을 수 있다.-When a series of container requests arrive in succession, select the server whose sum of [Estimated execution time A] and [Estimated execution time B] is the smallest. Even if the value of [expected execution time A] calculated by a specific server is large, if the value of [expected execution time B] is small, the corresponding server may be selected. This can minimize the overall container execution time, but may not minimize the execution time of the currently requested container.

[전략 2] : 현재 요청 받은 컨테이너의 수행 시간을 최소화하는 전략 [Strategy 2] : Strategy that minimizes the execution time of the currently requested container

- 이전에 요청 받은 컨테이너 요청들로 인해 각 서버에 이미 컨테이너가 실행 중일 때, 현재 요청 받은 컨테이너에 대한 [예상 수행 시간 A]이 값이 최소가 되는 서버를 선택한다. 결과적으로, 현재 도착한 컨테이너 요청을 빠르게 수행할 수는 있지만, 다른 컨테이너에 가해지는 추가적인 성능 간섭을 고려하지 않기에, 전체적인 컨테이너 수행 시간의 합은 증가할 수 있다.-When a container is already running on each server due to previously requested container requests, select the server whose value is the [estimated execution time A] for the currently requested container. As a result, it is possible to quickly perform a request for a currently arrived container, but since the additional performance interference to other containers is not taken into account, the total sum of container execution times can be increased.

- 도 5는 위 두개의 전략을 적용한 예시를 나타낸다. 새로운 컨테이너의 요청이 발생했을 때, 각 서버에 대해 예상 수행 시간을 계산한다. 전체 컨테이너 처리 시간을 최소화하는 [전략 1]는, [새롭게 요청된 컨테이너의 수행 시간 + 기존에 실행 중인 컨테이너의 추가 수행 시간]의 합이 최소: 6.5초가 되는 서버 1을 선택한다. 현재 요청된 컨테이너의 수행 시간을 최소화하는 [전략 2]은, 두 개의 서버 중 4.0초가 소요되는 서버 2을 선택한다. 이 때, [전략 2]는 컨테이너 간 성능 간섭의 정도가 높아짐에 따라 전체적인 수행 시간이 증가할 수도 있지만, 현재 요청된 컨테이너의 수행 시간은 짧아질 수 있다.-Figure 5 shows an example of applying the above two strategies. When a request for a new container occurs, the estimated execution time is calculated for each server. [Strategy 1] , which minimizes the total container processing time, selects the server 1 whose sum of [the execution time of the newly requested container + the additional execution time of the existing running container] is minimum: 6.5 seconds. [Strategy 2] , which minimizes the execution time of the currently requested container, selects Server 2 , which takes 4.0 seconds, among the two servers. At this time, [Strategy 2] may increase the overall execution time as the degree of performance interference between containers increases, but the execution time of the currently requested container may be shortened.

Claims (1)

컨테이너 가상화 환경에서의 성능 간섭 최소화를 통한 최적의 처리 시간 보장 방법으로서,
성능간섭수치를 측정하는 단계; 및
컨테이너 요청 배치단계를 포함하는 것을 특징으로 하는 컨테이너 가상화 환경에서의 상능 간섭 최소화를 통한 최적의 처리 시간 보장방법.
As a method for ensuring optimal processing time through minimizing performance interference in a container virtualization environment,
Measuring a performance interference value; And
A method for guaranteeing an optimal processing time through minimizing mutual interference in a container virtualization environment characterized by including a container request placement step.
KR1020180166315A 2018-12-20 2018-12-20 Method of ensuring process time by minimizing performance interference in container virtualization environment KR20200077115A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180166315A KR20200077115A (en) 2018-12-20 2018-12-20 Method of ensuring process time by minimizing performance interference in container virtualization environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180166315A KR20200077115A (en) 2018-12-20 2018-12-20 Method of ensuring process time by minimizing performance interference in container virtualization environment

Publications (1)

Publication Number Publication Date
KR20200077115A true KR20200077115A (en) 2020-06-30

Family

ID=71121168

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180166315A KR20200077115A (en) 2018-12-20 2018-12-20 Method of ensuring process time by minimizing performance interference in container virtualization environment

Country Status (1)

Country Link
KR (1) KR20200077115A (en)

Similar Documents

Publication Publication Date Title
CN106776005B (en) Resource management system and method for containerized application
CN110764901B (en) Data processing method based on GPU (graphics processing Unit) resources, electronic equipment and system
US9286001B2 (en) Effective range partition splitting in scalable storage
US9934073B2 (en) Extension of resource constraints for service-defined containers
US7945913B2 (en) Method, system and computer program product for optimizing allocation of resources on partitions of a data processing system
US10222985B2 (en) Autonomous dynamic optimization of platform resources
US8347297B2 (en) System and method of determining an optimal distribution of source servers in target servers
JP3807916B2 (en) Method and system for managing a group of partitions in a computer environment
US20130007755A1 (en) Methods, computer systems, and physical computer storage media for managing resources of a storage server
US20100332658A1 (en) Selecting a host from a host cluster to run a virtual machine
WO2016173488A1 (en) Application driven and adaptive unified resource management for data centers with multi-resource schedulable unit (mrsu)
JP2001147824A (en) Method and system for managing logical processor of computer environment and program product
US8352702B2 (en) Data processing system memory allocation
US10936377B2 (en) Distributed database system and resource management method for distributed database system
US10203988B2 (en) Adaptive parallelism of task execution on machines with accelerators
US11561843B2 (en) Automated performance tuning using workload profiling in a distributed computing environment
WO2021095943A1 (en) Method for placing container in consideration of service profile
US20120042322A1 (en) Hybrid Program Balancing
KR20200077115A (en) Method of ensuring process time by minimizing performance interference in container virtualization environment
KR102413924B1 (en) Process group management method and system for high performance cloud service system using multiple computing nodes
US11182183B2 (en) Workload placement using conflict cost
KR101952221B1 (en) Efficient Multitasking GPU with Latency Minimization and Cache boosting
KR20170094899A (en) System and method for managing computing resources
Nikulchev et al. QoS-based computing resources partitioning between virtual machines in the cloud architecture
CN117311910B (en) High-performance virtual password machine operation method