17.8. 메모리 페이지 크기 구성
메모리 페이지 크기를 구성하면 시스템 관리자는 작업 부하 요구 사항에 맞게 특정 노드에서 보다 효율적인 메모리 관리를 구현할 수 있습니다. 노드 튜닝 연산자는 성능 프로필을 사용하여 대규모 페이지와 커널 페이지 크기를 구성하는 방법을 제공합니다.
17.8.1. 커널 페이지 크기 구성 링크 복사링크가 클립보드에 복사되었습니다!
성능 프로필에서 kernelPageSize 사양을 사용하여 특정 노드의 커널 페이지 크기를 구성합니다. 메모리를 많이 사용하는 고성능 작업 부하의 경우 더 큰 커널 페이지 크기를 지정하세요.
x86_64 또는 AMD64 아키텍처를 사용하는 노드의 경우 kernelPageSize 사양에 대해 4k 만 지정할 수 있습니다. AArch64 아키텍처를 사용하는 노드의 경우 kernelPageSize 사양에 4k 또는 64k를 지정할 수 있습니다. 64k 옵션을 사용하려면 실시간 커널을 비활성화해야 합니다. 기본값은 1h 입니다.
사전 요구 사항
-
cluster-admin역할을 가진 사용자로 클러스터에 액세스합니다. -
OpenShift CLI(
oc)를 설치합니다.
프로세스
PerformanceProfile리소스를 정의하는 YAML 파일을 만들어 커널 페이지 크기를 구성하려는 대상 노드에 대한 성능 프로필을 만듭니다.pp-kernel-pages.yaml파일 예시apiVersion: performance.openshift.io/v2 kind: PerformanceProfile metadata: name: example-performance-profile #... spec: kernelPageSize: "64k"1 realTimeKernel: enabled: false2 nodeSelector: node-role.kubernetes.io/worker: ""3 클러스터에 성능 프로필을 적용합니다.
$ oc create -f pp-kernel-pages.yaml출력 예
performanceprofile.performance.openshift.io/example-performance-profile created
검증
다음 명령을 실행하여 성능 프로필을 적용한 노드에서 디버그 세션을 시작합니다.
$ oc debug node/<node_name>1 - 1
<node_name>을성능 프로필이 적용된 노드의 이름으로 바꿉니다.
다음 명령을 실행하여 커널 페이지 크기가 성능 프로필에 지정한 값으로 설정되었는지 확인하세요.
$ getconf PAGESIZE출력 예
65536
17.8.2. 대규모 페이지 구성 링크 복사링크가 클립보드에 복사되었습니다!
노드는 OpenShift Container Platform 클러스터에서 사용되는 대규모 페이지를 사전 할당해야 합니다. 노드 튜닝 연산자를 사용하여 특정 노드에 대용량 페이지를 할당합니다.
OpenShift Container Platform에서는 대규모 페이지를 생성하고 할당하는 방법을 제공합니다. 노드 튜닝 연산자는 성능 프로필을 사용하여 이를 수행하는 더 쉬운 방법을 제공합니다.
예를 들어 성능 프로필의 hugepages pages 섹션에서 size, count 및 node(선택사항)로 된 여러 블록을 지정할 수 있습니다.
hugepages:
defaultHugepagesSize: "1G"
pages:
- size: "1G"
count: 4
node: 0
- 1
node는 대규모 페이지가 할당된 NUMA 노드입니다.node를 생략하면 페이지가 모든 NUMA 노드에 균등하게 분산됩니다.
관련 머신 구성 풀 상태에 업데이트가 완료된 것으로 나타날 때까지 기다립니다.
대규모 페이지를 할당하기 위해 수행해야 하는 구성 단계는 이것이 전부입니다.
검증
구성을 검증하려면 노드의
/proc/meminfo파일을 참조하십시오.$ oc debug node/ip-10-0-141-105.ec2.internal# grep -i huge /proc/meminfo출력 예
AnonHugePages: ###### ## ShmemHugePages: 0 kB HugePages_Total: 2 HugePages_Free: 2 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: #### ## Hugetlb: #### ##oc describe를 사용하여 새 크기를 보고합니다.$ oc describe node worker-0.ocp4poc.example.com | grep -i huge출력 예
hugepages-1g=true hugepages-###: ### hugepages-###: ###
17.8.3. 여러 대규모 페이지 크기 할당 링크 복사링크가 클립보드에 복사되었습니다!
동일한 컨테이너에서 다양한 크기의 대규모 페이지를 요청할 수 있습니다. 이 경우 다양한 대규모 페이지 크기 요구사항이 있는 컨테이너로 구성된 더 복잡한 Pod를 정의할 수 있습니다.
예를 들어, 1G 와 2M 크기를 정의하면 노드 튜닝 운영자가 다음과 같이 노드에서 두 크기를 모두 구성합니다.
spec:
hugepages:
defaultHugepagesSize: 1G
pages:
- count: 1024
node: 0
size: 2M
- count: 4
node: 1
size: 1G