KR102381185B1 - Method to set up a core for low-latency services in Kubernetes - Google Patents

Method to set up a core for low-latency services in Kubernetes Download PDF

Info

Publication number
KR102381185B1
KR102381185B1 KR1020200161887A KR20200161887A KR102381185B1 KR 102381185 B1 KR102381185 B1 KR 102381185B1 KR 1020200161887 A KR1020200161887 A KR 1020200161887A KR 20200161887 A KR20200161887 A KR 20200161887A KR 102381185 B1 KR102381185 B1 KR 102381185B1
Authority
KR
South Korea
Prior art keywords
cpu
list
low
isolcpus
kubernetes
Prior art date
Application number
KR1020200161887A
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 KR1020200161887A priority Critical patent/KR102381185B1/en
Application granted granted Critical
Publication of KR102381185B1 publication Critical patent/KR102381185B1/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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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/45562Creating, deleting, cloning virtual machine instances
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

According to an embodiment of the present invention, a method to set up a core for low-latency services in kubernetes, by a kubernetes system for setting up a dedicated core for low-latency services in kubernetes, includes the steps of: separating an isolcpus list and general CPU list from an entire CPU list through an isolcpus filter and generating the same; determining whether a CPU resource allocation request of a Pod corresponds to the low-latency Pod; and allocating CPU resources from the isolcpus list, if the result is a low-delay Pod according to a result of judgment. Therefore, the low-delay services are not interrupted by other services.

Description

쿠버네티스에서 저지연 서비스용 전담코어 설정 방법{Method to set up a core for low-latency services in Kubernetes}{Method to set up a core for low-latency services in Kubernetes}

본 발명은 쿠버네티스에서 저지연 서비스용 전담코어 설정 방법에 대한 것이다.The present invention relates to a method for setting a dedicated core for a low-latency service in Kubernetes.

쿠버네티스(Kubernetes)는 컨테이너 가상화와 클러스터 구성을 효율적으로 관리할 수 있는 오픈소스 플랫폼이다. 최근 하드웨어의 성능이 높아지면서 빠른 응답속도를 요구하는 저지연 서비스의 수요가 늘고 있다.Kubernetes is an open source platform that can efficiently manage container virtualization and cluster configuration. Recently, as the performance of hardware has increased, the demand for low-latency services that require fast response speed is increasing.

저지연 서비스가 빠른 응답속도를 달성하기 위해서는 하드웨어 성능만이 아닌 소프트웨어의 지원도 함께 이루어져야 한다. In order for the low-latency service to achieve fast response speed, not only hardware performance but also software support must be implemented.

리눅스에서는 저지연 서비스를 수행하고 있는 CPU를 다른 서비스가 사용하지 못하게 막는 기능인 isolcpus를 제공하고 있으나 쿠버네티스에서는 저지연 서비스를 위한 기능을 지원하지 않으므로 위 기능을 효과적으로 사용할 수 없다.Linux provides isolcpus, a function that prevents other services from using the CPU running the low-latency service, but Kubernetes does not support the function for the low-latency service, so the above function cannot be used effectively.

본 발명이 해결하고자 하는 과제는 저지연 서비스를 쿠버네티스에서 원활히 서비스하도록 하는 쿠버네티스에서 저지연 서비스용 전담코어 설정 방법을 제공하려는 것이다.The problem to be solved by the present invention is to provide a method for setting a dedicated core for a low-latency service in Kubernetes that allows the low-latency service to be smoothly serviced in Kubernetes.

본 발명의 실시예에 따른 쿠버네티스에서 저지연 서비스용 전담코어 설정 방법은 쿠버네티스에서 저지연 서비스용 전담코어 설정을 위한 쿠버네티스 시스템이, Isolcpus 필터를 통해, 전체 CPU 리스트에서 Isolcpus 리스트 및 일반 CPU 리스트를 분리해 생성하는 단계; Pod의 CPU 자원 할당 요청시 저지연 Pod에 해당하는지를 판단하는 단계; 및 판단결과, 저지연 Pod에 해당하는 경우에 상기 Isolcpus 리스트에서 CPU 자원을 할당하는 단계;를 포함할 수 있다.In the method for setting a dedicated core for a low-latency service in Kubernetes according to an embodiment of the present invention, the Kubernetes system for setting a dedicated core for a low-latency service in Kubernetes through the Isolcpus filter, Isolcpus list in the entire CPU list and generating a separate list of general CPUs; Determining whether the CPU resource allocation request of the Pod corresponds to the low-latency Pod; And as a result of the determination, allocating CPU resources from the Isolcpus list in the case that corresponds to the low-delay Pod; may include.

또한 상기 CPU 자원을 할당하는 단계는, 1개 이상의 할당 필요 CPU 자원에 대해 상기 Isolcpus 리스트에서 우선하여 할당하는 단계에 해당하고, 상기 CPU 자원을 할당하는 단계 이후에, 상기 1개 이상의 할당 필요 CPU 자원이 전부 할당되지 않은 경우라면 추가적으로 부족한 CPU 자원을 상기 일반 CPU 리스트에서 할당하는 단계;를 더 포함할 수 있다.In addition, the step of allocating the CPU resource corresponds to a step of preferentially allocating one or more CPU resources required to be allocated in the Isolcpus list, and after allocating the CPU resource, the one or more CPU resources required to be allocated If all of these are not allocated, allocating additionally insufficient CPU resources from the general CPU list; may further include.

또한 상기 저지연 Pod에 해당하는지를 판단하는 단계 이후에, 판단결과, 저지연 Pod에 해당하지 않는 경우에 상기 일반 CPU 리스트에서 CPU 자원을 할당하는 단계;를 포함할 수 있다.In addition, after the step of determining whether the low-delay corresponds to the Pod, the determination result, when not corresponding to the low-delay Pod, allocating CPU resources from the general CPU list; may include.

또한 상기 Isolcpus 리스트 및 일반 CPU 리스트를 분리해 생성하는 단계는, (a) CPU 풀 초기화시 isolcpus에 해당하는 CPU를 분리한 Isolcpus 리스트 및 일반 CPU 리스트를 생성하는 단계; (b) 상기 전체 CPU 리스트 중 첫번째 CPU 번호를 체크하는 단계; (c) 특정파일을 확인하고 상기 첫번째 CPU 번호가 특정파일에 명시된 번호에 포함되는지를 확인하는 단계; 및 (d) 확인결과, 포함된다면 상기 Isolcpus 리스트에 추가하고, 포함되지 않는다면 상기 일반 CPU 리스트에 추가하는 단계;를 포함할 수 있다.In addition, the step of generating the separate Isolcpus list and the general CPU list comprises the steps of: (a) generating an Isolcpus list and a general CPU list in which a CPU corresponding to isolcpus is separated when the CPU pool is initialized; (b) checking the first CPU number among the entire CPU list; (c) checking a specific file and checking whether the first CPU number is included in a number specified in the specific file; and (d) adding to the Isolcpus list if included as a result of the check, and adding to the general CPU list if not included.

또한 상기 특정파일은 /sys/devices/system/cpu/isolated 파일에 해당할 수 있다.In addition, the specific file may correspond to /sys/devices/system/cpu/isolated file.

또한 상기 (d) 단계 이후에, 모든 CPU 번호를 확인할 때까지 상기 (b) 내지 (d) 단계를 반복하는 단계를 더 포함할 수 있다.Also, after step (d), the method may further include repeating steps (b) to (d) until all CPU numbers are confirmed.

본 발명에 의하면 쿠버네티스가 cpu pool을 관리할 때, 저지연 서비스에는 리눅스에서 지원하는 cpu 차폐(shielding)가 적용된 isolcpus를 할당해주는 것으로, 저지연 서비스가 다른 서비스에 의한 방해를 받지 않게 되며, 따라서 저지연 서비스가 원활히 서비스를 제공하는 효과가 있다.According to the present invention, when Kubernetes manages the cpu pool, isolcpus with CPU shielding supported by Linux is allocated to the low-latency service, so that the low-latency service is not interrupted by other services, Therefore, the low-delay service has the effect of providing the service smoothly.

도 1은 본 발명의 일 실시예에 따른 쿠버네티스에서 저지연 서비스용 전담코어 설정을 위한 쿠버네티스 시스템을 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른 Isolcpus 필터 동작 과정을 설명하기 위한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 쿠버네티스 CPU 할당 방법을 설명하기 위한 도면이다.
1 is a diagram illustrating a Kubernetes system for setting a dedicated core for a low-latency service in Kubernetes according to an embodiment of the present invention.
2 is a flowchart illustrating an Isolcpus filter operation process according to an embodiment of the present invention.
3 is a diagram for explaining a Kubernetes CPU allocation method according to an embodiment of the present invention.

이하, 첨부된 도면을 참조하여, 본 발명에 대하여 보다 구체적으로 설명하기로 한다.Hereinafter, with reference to the accompanying drawings, the present invention will be described in more detail.

이하의 설명에서 본 발명에 대한 이해를 명확히 하기 위하여, 본 발명의 특징에 대한 공지의 기술에 대한 설명은 생략하기로 한다. 이하의 실시 예는 본 발명의 이해를 돕기 위한 상세한 설명이며, 본 발명의 권리 범위를 제한하는 것이 아님은 당연할 것이다. 따라서, 본 발명과 동일한 기능을 수행하는 균등한 발명 역시 본 발명의 권리 범위에 속할 것이다.In the following description, in order to clarify the understanding of the present invention, descriptions of well-known techniques for the features of the present invention will be omitted. The following examples are detailed descriptions to help the understanding of the present invention, and it will be of course not to limit the scope of the present invention. Accordingly, equivalent inventions performing the same functions as the present invention will also fall within the scope of the present invention.

이하의 설명에서 동일한 식별 기호는 동일한 구성을 의미하며, 불필요한 중복적인 설명 및 공지 기술에 대한 설명은 생략하기로 한다.In the following description, the same identification symbols mean the same configuration, and unnecessary redundant descriptions and descriptions of well-known technologies will be omitted.

본 발명의 실시 예에서 '통신', '통신망' 및 '네트워크'는 동일한 의미로 사용될 수 있다. 상기 세 용어들은, 파일을 사용자 단말, 다른 사용자들의 단말 및 다운로드 서버 사이에서 송수신할 수 있는 유무선의 근거리 및 광역 데이터 송수신망을 의미한다.In an embodiment of the present invention, 'communication', 'communication network' and 'network' may be used as the same meaning. The above three terms refer to a wired/wireless short-distance and wide-area data transmission/reception network capable of transmitting and receiving files between a user terminal, terminals of other users, and a download server.

도 1은 본 발명의 일 실시예에 따른 쿠버네티스에서 저지연 서비스용 전담코어 설정을 위한 쿠버네티스 시스템을 나타내는 도면이다.1 is a diagram illustrating a Kubernetes system for setting a dedicated core for a low-latency service in Kubernetes according to an embodiment of the present invention.

도 1을 참고하면, 상기 쿠버네티스 시스템(10)은 CPU 풀 초기화 시 전체 CPU 리스트(100)를 생성하여 자체적으로 관리한다. 상기 전체 CPU 리스트는 컨테이너가 생성될 때 컨테이너에게 CPU 자원을 분배하기 위해 사용된다.Referring to FIG. 1 , the Kubernetes system 10 creates and manages the entire CPU list 100 when initializing the CPU pool. The entire CPU list is used to allocate CPU resources to containers when containers are created.

상기 쿠버네티스 시스템(10)의 Isolcpus 필터(200)는 쿠버네티스의 코드를 수정하여 상기 전체 CPU 리스트(100)를 생성할 때 isolcpus에 해당하는 CPU를 분리한 Isolcpus 리스트(110)와 일반 CPU 리스트(130)로 구분한다.The Isolcpus filter 200 of the Kubernetes system 10 modifies the Kubernetes code to When the entire CPU list 100 is generated, the CPU corresponding to isolcpus is divided into an Isolcpus list 110 and a general CPU list 130 .

이와 같은 Isolcpus 필터(200)를 적용하여 저지연 서비스가 사용할 CPU를 확보할 수 있다.By applying such an Isolcpus filter 200, it is possible to secure the CPU to be used by the low-delay service.

도 2는 본 발명의 일 실시예에 따른 Isolcpus 필터 동작 과정을 설명하기 위한 흐름도이다. 상기 과정은 도 1에 도시된 시스템(10)의 Isolcpus 필터(200)에서 수행될 수 있다.2 is a flowchart illustrating an Isolcpus filter operation process according to an embodiment of the present invention. The above process may be performed in the Isolcpus filter 200 of the system 10 shown in FIG. 1 .

도 2를 참고하면, CPU 풀 초기화시 isolcpus에 해당하는 CPU를 분리한 Isolcpus 리스트(110)와 일반 CPU 리스트(130)를 생성한다(S10). 다음으로, 전체 CPU 리스트(100) 중 첫번째 CPU 번호를 확인한다(S20).Referring to FIG. 2 , when the CPU pool is initialized, an Isolcpus list 110 and a general CPU list 130 in which CPUs corresponding to isolcpus are separated are generated (S10). Next, the first CPU number of the entire CPU list 100 is checked (S20).

특정파일(예컨대, /sys/devices/system/cpu/isolated 파일)을 확인하고 상기 첫번째 CPU 번호가 특정파일에 명시된 번호에 포함되는지를 확인하고(S30), 확인결과, 포함된다면 Isolcpus 리스트(110)에 추가하고, 포함되지 않는다면 일반 CPU 리스트(130)에 추가한다(S40).Check a specific file (eg, /sys/devices/system/cpu/isolated file) and check whether the first CPU number is included in the number specified in the specific file (S30), and if included, the Isolcpus list 110 and if not included, it is added to the general CPU list 130 (S40).

다음으로, 전체 CPU 리스트(100) 중 다음에 해당하는 두번째 CPU 번호를 확인하고(S50), 상기 두번째 CPU 번호 역시 S30 내지 S40의 절차를 수행한다.Next, a second CPU number corresponding to the following among the entire CPU list 100 is checked (S50), and the second CPU number also performs the procedures of S30 to S40.

마찬가지로 다음 CPU 번호부터 모두 확인할 때까지 S20 내지 S40의 절차를 반복한다(S60).Similarly, the procedure of S20 to S40 is repeated from the next CPU number until all confirmations (S60).

도 3은 본 발명의 일 실시예에 따른 쿠버네티스 CPU 할당 방법을 설명하기 위한 도면으로, 쿠버네티스에서 신규 컨테이너가 생성될 때 컨테이너에 CPU 자원을 할당하는 방법을 설명한다. 상기 방법은 도 1에 도시된 시스템(10)에서 수행될 수 있다.3 is a diagram for explaining a Kubernetes CPU allocation method according to an embodiment of the present invention, and describes a method of allocating CPU resources to a container when a new container is created in Kubernetes. The method may be performed in the system 10 shown in FIG. 1 .

도 3을 참고하면, Pod의 CPU 자원 할당 요청(S100) 시, 저지연 Pod에 해당하는 것인지를 판단한다(S200). 여기서 파드(Pod)는 쿠버네티스에서 생성하고 관리할 수 있는 배포 가능한 컴퓨팅 단위로 하나 이상의 컨테이너를 포함한다. Referring to Figure 3, when requesting CPU resource allocation of the Pod (S100), it is determined whether it corresponds to the low-delay Pod (S200). Here, a Pod is a deployable compute unit that can be created and managed by Kubernetes and contains one or more containers.

판단결과 저지연 Pod인 경우 상기 Isolcpus 리스트(110)에서 CPU 자원을 최대한 할당한다(S300). 저지연 Pod가 아니면 일반 CPU 리스트에서만 CPU 자원을 할당한다(S500).If the determination result is a low-delay Pod, allocate CPU resources as much as possible in the Isolcpus list 110 (S300). If it is not a low-latency Pod, CPU resources are allocated only from the general CPU list (S500).

할당이 필요한 CPU 자원은 1개 이상일 수 있으며 Isolcpus 리스트(110)에서 CPU 자원을 최대한 할당하고자 했으나 판단결과(S400), 전부 할당되지 않고 요청 대비 부족한 CPU 자원이 있으면 일반 CPU 리스트(130)에서 나머지 CPU 자원을 할당한다(S500). 이후 요청 CPU 자원이 모두 할당되면 CPU 할당 정보를 반환한다(S600).There may be one or more CPU resources that need to be allocated, and an attempt was made to allocate the maximum CPU resources in the Isolcpus list 110, but as a result of the determination (S400), all of the CPU resources are not allocated and there are insufficient CPU resources compared to the request, the remaining CPUs in the general CPU list 130 Allocate resources (S500). Thereafter, when all requested CPU resources are allocated, CPU allocation information is returned (S600).

이와 같이, 본 발명의 각 실시예에 따른 방법을 실행시키기 위하여, 전술한 프로그램은 컴퓨터의 프로세서(CPU)가 읽힐 수 있는 C, C++, JAVA, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다.In this way, in order to execute the method according to each embodiment of the present invention, the above-described program is coded in a computer language such as C, C++, JAVA, and machine language that can be read by the processor (CPU) of the computer. may include

이러한 코드는 전술한 기능들을 정의한 함수 등과 관련된 기능적인 코드(Function Code)를 포함할 수 있고, 전술한 기능들을 컴퓨터의 프로세서가 소정의 절차대로 실행시키는데 필요한 실행 절차 관련 제어 코드를 포함할 수도 있다.Such codes may include function codes related to functions defining the above-mentioned functions, etc., and may include control codes related to an execution procedure necessary for the processor of the computer to execute the above-mentioned functions according to a predetermined procedure.

또한, 이러한 코드는 전술한 기능들을 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조 되어야 하는지에 대한 메모리 참조 관련 코드를 더 포함할 수 있다.In addition, this code may further include additional information necessary for the processor of the computer to execute the above functions or code related to memory reference for which location (address address) in the internal or external memory of the computer to be referenced. .

또한, 컴퓨터의 프로세서가 전술한 기능들을 실행시키기 위하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 통신이 필요한 경우, 코드는 컴퓨터의 프로세서가 컴퓨터의 통신 모듈(예: 유선 및/또는 무선 통신 모듈)을 이용하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 어떻게 통신해야만 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수도 있다.In addition, when the computer's processor needs to communicate with any other computer or server in a remote location to execute the functions described above, the code is transmitted to the computer's communication module (eg, wired and/or wireless communication module). ) may be used to further include communication-related codes for how to communicate with any other computer or server in the remote, and what information or media to transmit/receive during communication.

그리고, 본 발명을 구현하기 위한 기능적인(Functional) 프로그램과 이와 관련된 코드 및 코드 세그먼트 등은, 기록매체를 읽어서 프로그램을 실행시키는 컴퓨터의 시스템 환경 등을 고려하여, 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론되거나 변경될 수도 있다.In addition, in consideration of the system environment of a computer that reads a recording medium and executes a program by reading a recording medium, a functional program for implementing the present invention and related codes and code segments, programmers in the technical field to which the present invention belongs may be easily inferred or changed by

이상에서 전술한 바와 같은 프로그램을 기록한 컴퓨터로 읽힐 수 있는 기록매체는, 일 예로, ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 미디어 저장장치 등이 있다.The computer-readable recording medium in which the program as described above is recorded includes, for example, a ROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, an optical media storage device, and the like.

또한 전술한 바와 같은 프로그램을 기록한 컴퓨터로 읽힐 수 있는 기록매체는 네트워크로 커넥션된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 이 경우, 다수의 분산된 컴퓨터 중 어느 적어도 하나의 컴퓨터는 상기에 제시된 기능들 중 일부를 실행하고, 그 결과를 다른 분산된 컴퓨터들 중 적어도 하나에 그 실행 결과를 전송할 수 있으며, 그 결과를 전송받은 컴퓨터 역시 상기에 제시된 기능들 중 일부를 실행하여, 그 결과를 역시 다른 분산된 컴퓨터들에 제공할 수 있다.In addition, the computer-readable recording medium in which the program as described above is recorded is distributed in a computer system connected by a network, so that the computer-readable code can be stored and executed in a distributed manner. In this case, at least one of the plurality of distributed computers may execute some of the functions presented above, and transmit the result to at least one of the other distributed computers, and transmit the result The receiving computer may also execute some of the functions presented above, and provide the result to other distributed computers as well.

특히, 본 발명의 각 실시예에 따른 방법을 실행시키기 위한 프로그램인 애플리케이션을 기록한 컴퓨터로 읽을 수 있는 기록매체는, 애플리케이션 스토어 서버(Application Store Server), 애플리케이션 또는 해당 서비스와 관련된 웹 서버 등의 애플리케이션 제공 서버(Application Provider Server)에 포함된 저장매체(예: 하드디스크 등)이거나, 애플리케이션 제공 서버 그 자체일 수도 있다.In particular, the computer-readable recording medium recording an application, which is a program for executing the method according to each embodiment of the present invention, provides an application such as an application store server, an application or a web server related to the corresponding service. It may be a storage medium (eg, hard disk, etc.) included in the server (Application Provider Server) or the application providing server itself.

본 발명의 각 실시예에 따른 방법을 실행시키기 위한 프로그램인 애플리케이션을 기록한 기록매체를 읽을 수 있는 컴퓨터는, 일반적인 데스크 탑이나 노트북 등의 일반 PC 뿐만 아니라, 스마트 폰, 태블릿 PC, PDA(Personal Digital Assistants) 및 이동통신 단말기 등의 모바일 단말기를 포함할 수 있으며, 이뿐만 아니라, 컴퓨팅(Computing) 가능한 모든 기기로 해석되어야 할 것이다.A computer capable of reading a recording medium recording an application, which is a program for executing the method according to each embodiment of the present invention, is not only a general PC such as a general desktop or notebook computer, but also a smart phone, a tablet PC, and a personal digital assistant (PDA). ) and mobile terminals such as mobile communication terminals, and should be interpreted as all devices capable of computing as well as this.

또한, 본 발명의 실시예에 따른 방법을 실행시키기 위한 프로그램인 애플리케이션을 기록한 기록매체를 읽을 수 있는 컴퓨터가 스마트 폰, 태블릿 PC, PDA(Personal Digital Assistants) 및 이동통신 단말기 등의 모바일 단말기인 경우, 애플리케이션은 애플리케이션 제공 서버에서 일반 PC로 다운로드 되어 동기화 프로그램을 통해 모바일 단말기에 설치될 수도 있다.In addition, if the computer that can read the recording medium recording the application, which is a program for executing the method according to the embodiment of the present invention, is a mobile terminal such as a smart phone, a tablet PC, a personal digital assistant (PDA) and a mobile communication terminal, The application may be downloaded from the application providing server to a general PC and installed in the mobile terminal through a synchronization program.

이상에서, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 적어도 하나로 선택적으로 결합하여 동작할 수도 있다.In the above, even though all the components constituting the embodiment of the present invention are described as being combined or operated in combination, the present invention is not necessarily limited to this embodiment. That is, within the scope of the object of the present invention, all the components may operate by selectively combining at least one.

또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다.In addition, although all of the components may be implemented as one independent hardware, some or all of the components are selectively combined to perform some or all of the functions of one or a plurality of hardware programs module It may be implemented as a computer program having Codes and code segments constituting the computer program can be easily deduced by those skilled in the art of the present invention.

이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 등이 포함될 수 있다.Such a computer program is stored in a computer readable storage medium (Computer Readable Media), read and executed by the computer, thereby implementing the embodiment of the present invention. The storage medium of the computer program may include a magnetic recording medium, an optical recording medium, and the like.

또한, 이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재될 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다.In addition, terms such as "comprises", "comprises" or "have" described above mean that the corresponding component may be embedded, unless otherwise specified, excluding other components. Rather, it should be construed as being able to further include other components.

기술적이거나 과학적인 용어를 포함한 모든 용어들은, 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥 상의 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.All terms, including technical and scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which the present invention belongs, unless otherwise defined. Terms commonly used, such as those defined in the dictionary, should be interpreted as being consistent with the meaning of the context of the related art, and are not interpreted in an ideal or excessively formal meaning unless explicitly defined in the present invention.

이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다.The above description is merely illustrative of the technical spirit of the present invention, and various modifications and variations will be possible without departing from the essential characteristics of the present invention by those skilled in the art to which the present invention pertains.

따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.Accordingly, the embodiments disclosed in the present invention are not intended to limit the technical spirit of the present invention, but to explain, and the scope of the technical spirit of the present invention is not limited by these embodiments. The protection scope of the present invention should be construed by the following claims, and all technical ideas within the scope equivalent thereto should be construed as being included in the scope of the present invention.

Claims (6)

삭제delete 쿠버네티스에서 저지연 서비스용 전담코어 설정을 위한 쿠버네티스 시스템이,
Isolcpus 필터를 통해, 전체 CPU 리스트에서 Isolcpus 리스트 및 일반 CPU 리스트를 분리해 생성하는 단계;
Pod의 CPU 자원 할당 요청시 저지연 Pod에 해당하는지를 판단하는 단계; 및
판단결과, 저지연 Pod에 해당하는 경우에 상기 Isolcpus 리스트에서 CPU 자원을 할당하는 단계;를 포함하고,
상기 CPU 자원을 할당하는 단계는,
1개 이상의 할당 필요 CPU 자원에 대해 상기 Isolcpus 리스트에서 우선하여 할당하는 단계에 해당하고,
상기 CPU 자원을 할당하는 단계 이후에,
상기 1개 이상의 할당 필요 CPU 자원이 전부 할당되지 않은 경우라면 추가적으로 부족한 CPU 자원을 상기 일반 CPU 리스트에서 할당하는 단계;를 더 포함하는 것을 특징으로 하는 쿠버네티스에서 저지연 서비스용 전담코어 설정 방법
A Kubernetes system for setting a dedicated core for low-latency services in Kubernetes,
Separating and generating an Isolcpus list and a general CPU list from the entire CPU list through the Isolcpus filter;
Determining whether the CPU resource allocation request of the Pod corresponds to the low-latency Pod; and
As a result of the determination, allocating CPU resources from the Isolcpus list if it corresponds to a low-delay Pod;
Allocating the CPU resource comprises:
Corresponds to the step of preferentially allocating in the Isolcpus list for one or more allocation-required CPU resources,
After allocating the CPU resources,
If all of the one or more required allocation CPU resources are not allocated, allocating additional insufficient CPU resources from the general CPU list; Dedicated core setting method for low-delay service in Kubernetes, characterized in that it further comprises a
제2항에 있어서,
상기 저지연 Pod에 해당하는지를 판단하는 단계 이후에,
판단결과, 저지연 Pod에 해당하지 않는 경우에 상기 일반 CPU 리스트에서 CPU 자원을 할당하는 단계;를 포함하는 것을 특징으로 하는 쿠버네티스에서 저지연 서비스용 전담코어 설정 방법
3. The method of claim 2,
After the step of determining whether it corresponds to the low-delay Pod,
Dedicated core setting method for low-delay service in Kubernetes comprising a;
쿠버네티스에서 저지연 서비스용 전담코어 설정을 위한 쿠버네티스 시스템이,
Isolcpus 필터를 통해, 전체 CPU 리스트에서 Isolcpus 리스트 및 일반 CPU 리스트를 분리해 생성하는 단계;
Pod의 CPU 자원 할당 요청시 저지연 Pod에 해당하는지를 판단하는 단계; 및
판단결과, 저지연 Pod에 해당하는 경우에 상기 Isolcpus 리스트에서 CPU 자원을 할당하는 단계;를 포함하고,
상기 Isolcpus 리스트 및 일반 CPU 리스트를 분리해 생성하는 단계는,
(a) CPU 풀 초기화시 isolcpus에 해당하는 CPU를 분리한 Isolcpus 리스트 및 일반 CPU 리스트를 생성하는 단계;
(b) 상기 전체 CPU 리스트 중 첫번째 CPU 번호를 체크하는 단계;
(c) 특정파일을 확인하고 상기 첫번째 CPU 번호가 특정파일에 명시된 번호에 포함되는지를 확인하는 단계; 및
(d) 확인결과, 포함된다면 상기 Isolcpus 리스트에 추가하고, 포함되지 않는다면 상기 일반 CPU 리스트에 추가하는 단계;를 포함하는 것을 특징으로 하는 쿠버네티스에서 저지연 서비스용 전담코어 설정 방법
A Kubernetes system for setting a dedicated core for low-latency services in Kubernetes,
Separating and generating an Isolcpus list and a general CPU list from the entire CPU list through the Isolcpus filter;
Determining whether the CPU resource allocation request of the Pod corresponds to the low-latency Pod; and
As a result of the determination, allocating CPU resources from the Isolcpus list if it corresponds to a low-delay Pod;
The step of generating separately the Isolcpus list and the general CPU list is,
(a) generating an Isolcpus list and a general CPU list in which CPUs corresponding to isolcpus are separated when the CPU pool is initialized;
(b) checking the first CPU number among the entire CPU list;
(c) checking a specific file and checking whether the first CPU number is included in a number specified in the specific file; and
(d) as a result of checking, if included, adding to the Isolcpus list, if not included, adding to the general CPU list; Dedicated core setting method for low-latency service in Kubernetes, comprising:
제4항에 있어서,
상기 특정파일은 /sys/devices/system/cpu/isolated 파일에 해당하는 것을 특징으로 하는 쿠버네티스에서 저지연 서비스용 전담코어 설정 방법
5. The method of claim 4,
Dedicated core setting method for low-latency service in Kubernetes, characterized in that the specific file corresponds to the /sys/devices/system/cpu/isolated file
제4항에 있어서,
상기 (d) 단계 이후에,
모든 CPU 번호를 확인할 때까지 상기 (b) 내지 (d) 단계를 반복하는 단계를 더 포함하는 쿠버네티스에서 저지연 서비스용 전담코어 설정 방법
5. The method of claim 4,
After step (d),
Dedicated core setting method for low-latency service in Kubernetes further comprising repeating steps (b) to (d) until all CPU numbers are confirmed
KR1020200161887A 2020-11-27 2020-11-27 Method to set up a core for low-latency services in Kubernetes KR102381185B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200161887A KR102381185B1 (en) 2020-11-27 2020-11-27 Method to set up a core for low-latency services in Kubernetes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200161887A KR102381185B1 (en) 2020-11-27 2020-11-27 Method to set up a core for low-latency services in Kubernetes

Publications (1)

Publication Number Publication Date
KR102381185B1 true KR102381185B1 (en) 2022-03-31

Family

ID=80934728

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200161887A KR102381185B1 (en) 2020-11-27 2020-11-27 Method to set up a core for low-latency services in Kubernetes

Country Status (1)

Country Link
KR (1) KR102381185B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100118357A (en) * 2009-04-28 2010-11-05 인하대학교 산학협력단 Semantic computing-based dynamic job scheduling system for distributed processing
US20200267212A1 (en) * 2019-02-15 2020-08-20 International Business Machines Corporation Method for managing and allocating resources in a clustered computing environment
US20200334065A1 (en) * 2017-10-31 2020-10-22 Nokia Solutions And Networks Oy A method, apparatus and system for real-time virtual network function orchestration
KR102230901B1 (en) * 2020-11-06 2021-03-22 건국대학교 산학협력단 Quality of service support method and apparatus for cloud resource management

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100118357A (en) * 2009-04-28 2010-11-05 인하대학교 산학협력단 Semantic computing-based dynamic job scheduling system for distributed processing
US20200334065A1 (en) * 2017-10-31 2020-10-22 Nokia Solutions And Networks Oy A method, apparatus and system for real-time virtual network function orchestration
US20200267212A1 (en) * 2019-02-15 2020-08-20 International Business Machines Corporation Method for managing and allocating resources in a clustered computing environment
KR102230901B1 (en) * 2020-11-06 2021-03-22 건국대학교 산학협력단 Quality of service support method and apparatus for cloud resource management

Similar Documents

Publication Publication Date Title
CN108170503B (en) Method, terminal and storage medium for cross-system android application running
US9614931B2 (en) Identifying a resource set require for a requested application and launching the resource set in a container for execution in a host operating system
KR101456489B1 (en) Method and apparatus for managing access privileges in a CLDC OSGi environment
US8055874B2 (en) System and method for providing application program interface program for mobile terminal
US11556348B2 (en) Bootstrapping profile-guided compilation and verification
CN110389936B (en) Method, equipment and computer storage medium for starting small program
US9038085B2 (en) System, method and program product for cost-aware selection of stored virtual machine images for subsequent use
WO2013040943A1 (en) Virtual machine placement within server farm
CN102193824A (en) Virtual machine homogenization to enable migration across heterogeneous computers
US8918776B2 (en) Self-adapting software system
CN102667714B (en) Support the method and system that the function provided by the resource outside operating system environment is provided
KR102235556B1 (en) Device and method for constructing secure containers executable by android applications, and computer-readable record medium storing program therefor
CN114816707A (en) Method and device for creating sandbox environment for plug-in operation and computing equipment
CN113010265A (en) Pod scheduling method, scheduler, memory plug-in and system
CN113986402A (en) Function calling method and device, electronic equipment and storage medium
CN114610337A (en) Multi-system installation method, computing equipment and storage medium
CN107329798B (en) Data replication method and device and virtualization system
CN116249962A (en) Pool management for in-vehicle device application launch
CN105677481A (en) Method and system for processing data and electronic equipment
KR102381185B1 (en) Method to set up a core for low-latency services in Kubernetes
CA2878759C (en) Methods and systems for providing software applications
US20200042331A1 (en) Dynamic-link library usage based on memory size
CN115129250A (en) Object storage method and device and readable storage medium
CN113504936B (en) Software version release method, computer device and storage medium
CN111209056B (en) Method and device for loading function, readable storage medium and electronic equipment

Legal Events

Date Code Title Description
GRNT Written decision to grant