본문 바로가기

기록

[Docker] compose.yaml - services - <서비스이름> - cpuset

cpuset은 도커에서 사용되는 CPU 집합을 지정하는 옵션이다. 이를 통해 컨테이너가 실행될 때 사용 가능한 CPU 코어를 제한하거나 특정 CPU 코어에 컨테이너를 바인딩할 수 있다. 주로 다음과 같은 경우에 사용된다.

  • 성능 분리: 여러 개의 컨테이너가 호스트에서 실행될 때 CPU 리소스가 충분히 분배되지 않고 간섭이 발생하는 경우, cpuset을 사용하여 CPU 리소스를 분리하여 각 컨테이너가 독립적으로 실행되도록 할 수 있다.
  • CPU 바인딩: 특정 컨테이너가 특정 CPU 코어에 바인딩되어야 할 때, 예를 들어 실시간 응용 프로그램이나 고성능 응용 프로그램의 경우 특정 CPU 코어에 고정적으로 할당되어야 한다. 이 경우 cpuset을 사용하여 컨테이너가 특정 CPU 코어에 바인딩될 수 있다.
version: '3.8'

services:
  myservice:
    image: myimage
    cpuset: "0-3,6"

 

만약 호스트 시스템에서 사용 가능한 CPU 코어의 수가 8개라고 가정하면, 위의 설정은 CPU 코어 0부터 3까지와 CPU 코어 6을 컨테이너에 할당한다. 이렇게 하면 컨테이너가 시스템의 특정 CPU 코어에 고정적으로 바인딩되어 실행된다.

 

이러한 설정을 사용하면 특정 CPU 코어에서만 실행되는 컨테이너를 구성할 수 있으며, 이를 통해 컨테이너의 CPU 리소스 사용을 효율적으로 제어할 수 있다.