Kubernetes에 있는 CPU Manager 기능을 설명하는 글입니다. 비슷한 시기에 정보를 얻어서 그런지 CPU Manager 기능은 알고 있었는데 비교적 최근에 알게 되어서 그런가 최근에 정식으로 나온 cgroup v2와 연관된 기능으로만 생각하고 있다가 이번 글을 읽으면서 cgroup v2와는 결개 기능이란 것을 알게 되었습니다.


Kubernetes에서는 CPU 스케쥴링에 리눅스의 CFS(Completely Fair Scheduler)를 사용하고 있습니다. 그래서 1.10에서 베타로 도입되고 1.26에서 Stable이 된 CPU Manager의 기본 정책은 none이고 이때는 원래처럼 CFS가 사용됩니다.


CPU Manager를 static으로 설정하면 CFS 대신 CPUSets를 사용하게 됩니다. CPUSets를 사용하면 특정 CPU에 독점적으로 할당할 수 있기 때문에 CPU를 공유 풀로 사용하지 않아서 컨텍스트 스위칭 비용을 줄일 수 있습니다.


팟은 Guaranteed QoS 클래스로 설정하고 CPU가 정수(코어수라는게 정수니까)로 설정했을 때만 적용이 되고 설정한 만큼의 코어는 해당 팟이 독점적으로 사용합니다 4개 코어가 있는 노드에서 2개 CPU를 할당받은 Pod이 있다면 CPU 2개는 해당 팟만 독점적으로 사용하고 나머지 팟은 남은 2개의 팟을 돌려서 쓰게 됩니다. 참고로 CPU Manager를 쓸 때 kubernetes 컴포넌트 등 시스템 데몬에도 자동 적용 되는 것은 아니므로 필요하다면 시스템 데몬에도 CPU를 따로 할당해야 합니다.


static 정책은 컨텍스트 전환에 민감한 워크로드에 유용하지만 일부 CPU를 독점적으로 사용하므로 다른 컨테이너 성능에도 영향을 줄 수 있습니다.


https://www.datadoghq.com/blog/kubernetes-cpu-requests-limits/

A deep dive into CPU requests and limits in Kubernetes

Datadog

A deep dive into CPU requests and limits in Kubernetes

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 12월 29일 오전 3:34

댓글 0

    함께 읽은 게시물

    내가 가본 우리나라 - 지도 색칠 사이트

    ... 더 보기

    요구사항 변화에 따른 프로젝트 구조 확장 ⛏

    ... 더 보기

    요구사항 변화에 따른 프로젝트 구조 확장_Bradley 멘토님

    F-Lab : 상위 1% 개발자들의 멘토링

    요구사항 변화에 따른 프로젝트 구조 확장_Bradley 멘토님

     • 

    저장 34 • 조회 3,465


    자바 25를 사용해야 하는 이유

    ... 더 보기

    곧 출시될 자바 25는 가능한 빨리 도입하세요

    kr.linkedin.com

    곧 출시될 자바 25는 가능한 빨리 도입하세요

     • 

    저장 18 • 조회 2,341


    < 모든 선택지를 검토하다 아무것도 못 하는 당신에게 >

    1

    ... 더 보기

     • 

    댓글 1 • 저장 3 • 조회 632


    제가 쓰고 있는 책의 표지가 나왔어요!

    ... 더 보기

     • 

    댓글 2 • 조회 1,743


    저의 강의가 패스트캠퍼스 이벤트에 포함되어서 홍보합니다.

    ... 더 보기

    2025 상반기 창고대개방 이벤트 | 패스트캠퍼스

    패스트캠퍼스

    2025 상반기 창고대개방 이벤트 | 패스트캠퍼스