13.4. 짧은 대기 시간 노드 튜닝 상태 디버깅
PerformanceProfile
CR(사용자 정의 리소스) 상태 필드를 사용하여 튜닝 상태를 보고하고 클러스터 노드에서 대기 시간 문제를 디버깅합니다.
13.4.1. 짧은 대기 시간 CNF 튜닝 상태 디버깅
PerformanceProfile
CR(사용자 정의 리소스)에는 튜닝 상태를 보고하고 대기 시간 성능 저하 문제를 디버깅하기 위한 상태 필드가 있습니다. 이러한 필드는 상태를 보고하여 Operator 조정 기능의 상태에 대해 설명합니다.
일반적으로 성능 프로필에 연결된 머신 구성 풀의 상태가 성능 저하 상태이면 PerformanceProfile
이 성능 저하 상태가 되는 문제가 발생할 수 있습니다. 이 경우 머신 구성 풀에서 실패 메시지를 발행합니다.
Node Tuning Operator에는 performanceProfile.spec.status.Conditions
상태 필드가 포함되어 있습니다.
Status: Conditions: Last Heartbeat Time: 2020-06-02T10:01:24Z Last Transition Time: 2020-06-02T10:01:24Z Status: True Type: Available Last Heartbeat Time: 2020-06-02T10:01:24Z Last Transition Time: 2020-06-02T10:01:24Z Status: True Type: Upgradeable Last Heartbeat Time: 2020-06-02T10:01:24Z Last Transition Time: 2020-06-02T10:01:24Z Status: False Type: Progressing Last Heartbeat Time: 2020-06-02T10:01:24Z Last Transition Time: 2020-06-02T10:01:24Z Status: False Type: Degraded
Status
필드에는 성능 프로필의 상태를 나타내는 Type
값을 지정하는 Conditions
가 포함되어 있습니다.
Available
- 모든 머신 구성 및 Tuned 프로필이 성공적으로 생성되었으며 구성 요소에서 처리해야 하는 클러스터에 사용할 수 있습니다(NTO, MCO, Kubelet).
Upgradeable
- Operator에서 유지보수하는 리소스가 업그레이드하기에 안전한 상태인지를 나타냅니다.
Progressing
- 성능 프로필의 배포 프로세스가 시작되었음을 나타냅니다.
Degraded
다음과 같은 경우 오류를 표시합니다.
- 성능 프로필 검증에 실패했습니다.
- 모든 관련 구성 요소 생성이 성공적으로 완료되지 않았습니다.
이러한 각 유형에는 다음 필드가 포함되어 있습니다.
상태
-
특정 유형의 상태(
true
또는false
)입니다. Timestamp
- 트랜잭션 타임스탬프입니다.
Reason string
- 머신에서 읽을 수 있는 이유입니다.
Message string
- 상태 및 오류 세부 정보(있는 경우)를 설명하는 사람이 읽을 수 있는 이유입니다.
13.4.1.1. 머신 구성 풀
성능 프로필 및 생성된 제품은 연관 MCP(머신 구성 풀)에 따라 노드에 적용됩니다. MCP에는 rt-kernel의 커널 인수, kube 구성, 대규모 페이지 할당 및 배포를 포함하는 성능 프로필로 생성된 머신 구성 적용 진행에 대한 중요한 정보가 있습니다. Performance Profile 컨트롤러는 MCP의 변경 사항을 모니터링하고 그에 따라 성능 프로필 상태를 업데이트합니다.
MCP가 성능 프로필 상태로 반환하는 유일한 조건은 MCP가 Degraded
인 경우이며, 이로 인해 performanceProfile.status.condition.Degraded = true
입니다.
예제
다음은 생성된 연관 머신 구성 풀(worker-cnf
)이 있는 성능 프로필의 예입니다.
연관 머신 구성 풀이 성능 저하 상태입니다.
# oc get mcp
출력 예
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE master rendered-master-2ee57a93fa6c9181b546ca46e1571d2d True False False 3 3 3 0 2d21h worker rendered-worker-d6b2bdc07d9f5a59a6b68950acf25e5f True False False 2 2 2 0 2d21h worker-cnf rendered-worker-cnf-6c838641b8a08fff08dbd8b02fb63f7c False True True 2 1 1 1 2d20h
MCP의
describe
섹션은 이유를 보여줍니다.# oc describe mcp worker-cnf
출력 예
Message: Node node-worker-cnf is reporting: "prepping update: machineconfig.machineconfiguration.openshift.io \"rendered-worker-cnf-40b9996919c08e335f3ff230ce1d170\" not found" Reason: 1 nodes are reporting degraded status on sync
degraded = true
로 표시된 성능 프로필status
필드 아래에도 성능 저하 상태가 표시되어야 합니다.# oc describe performanceprofiles performance
출력 예
Message: Machine config pool worker-cnf Degraded Reason: 1 nodes are reporting degraded status on sync. Machine config pool worker-cnf Degraded Message: Node yquinn-q8s5v-w-b-z5lqn.c.openshift-gce-devel.internal is reporting: "prepping update: machineconfig.machineconfiguration.openshift.io \"rendered-worker-cnf-40b9996919c08e335f3ff230ce1d170\" not found". Reason: MCPDegraded Status: True Type: Degraded
13.4.2. Red Hat 지원을 받기 위한 짧은 대기 시간 튜닝 디버깅 데이터 수집
지원 사례를 여는 경우 클러스터에 대한 디버깅 정보를 Red Hat 지원에 제공하면 도움이 됩니다.
must-gather
툴을 사용하면 노드 튜닝과 NUMA 토폴로지, 짧은 대기 시간 설정으로 인한 문제를 디버깅하는 데 필요한 다른 정보를 비롯하여 OpenShift Container Platform 클러스터에 대한 진단 정보를 수집할 수 있습니다.
즉각 지원을 받을 수 있도록 OpenShift Container Platform 및 짧은 대기 시간 튜닝 둘 다에 대한 진단 정보를 제공하십시오.
13.4.2.1. must-gather 툴 정보
oc adm must-gather
CLI 명령은 다음과 같이 문제를 디버깅하는 데 필요할 가능성이 높은 클러스터 정보를 수집합니다.
- 리소스 정의
- 감사 로그
- 서비스 로그
--image
인수를 포함하여 명령을 실행하는 경우 이미지를 하나 이상 지정할 수 있습니다. 이미지를 지정하면 툴에서 해당 기능 또는 제품과 관련된 데이터를 수집합니다. oc adm must-gather
를 실행하면 클러스터에 새 Pod가 생성됩니다. 해당 Pod에 대한 데이터가 수집되어 must-gather.local
로 시작하는 새 디렉터리에 저장됩니다. 이 디렉터리는 현재 작업 디렉터리에 생성됩니다.
13.4.2.2. 짧은 대기 시간 튜닝 데이터 수집
oc adm must-gather
CLI 명령을 사용하여 다음과 같은 짧은 대기 시간 튜닝과 연관된 기능 및 오브젝트를 포함한 클러스터 정보를 수집합니다.
- Node Tuning Operator 네임스페이스 및 하위 오브젝트입니다.
-
MachineConfigPool
및 연관MachineConfig
오브젝트. - Node Tuning Operator 및 연관 Tuned 오브젝트.
- Linux 커널 명령줄 옵션.
- CPU 및 NUMA 토폴로지.
- 기본 PCI 장치 정보 및 NUMA 위치.
사전 요구 사항
-
cluster-admin
역할을 가진 사용자로 클러스터에 액세스합니다. - OpenShift Container Platform CLI(oc)가 설치되어 있어야 합니다.
프로세스
-
must-gather
데이터를 저장하려는 디렉터리로 이동합니다. 다음 명령을 실행하여 디버깅 정보를 수집합니다.
$ oc adm must-gather
출력 예
[must-gather ] OUT Using must-gather plug-in image: quay.io/openshift-release When opening a support case, bugzilla, or issue please include the following summary data along with any other requested information: ClusterID: 829er0fa-1ad8-4e59-a46e-2644921b7eb6 ClusterVersion: Stable at "<cluster_version>" ClusterOperators: All healthy and stable [must-gather ] OUT namespace/openshift-must-gather-8fh4x created [must-gather ] OUT clusterrolebinding.rbac.authorization.k8s.io/must-gather-rhlgc created [must-gather-5564g] POD 2023-07-17T10:17:37.610340849Z Gathering data for ns/openshift-cluster-version... [must-gather-5564g] POD 2023-07-17T10:17:38.786591298Z Gathering data for ns/default... [must-gather-5564g] POD 2023-07-17T10:17:39.117418660Z Gathering data for ns/openshift... [must-gather-5564g] POD 2023-07-17T10:17:39.447592859Z Gathering data for ns/kube-system... [must-gather-5564g] POD 2023-07-17T10:17:39.803381143Z Gathering data for ns/openshift-etcd... ... Reprinting Cluster State: When opening a support case, bugzilla, or issue please include the following summary data along with any other requested information: ClusterID: 829er0fa-1ad8-4e59-a46e-2644921b7eb6 ClusterVersion: Stable at "<cluster_version>" ClusterOperators: All healthy and stable
작업 디렉터리에 생성된
must-gather
디렉터리의 압축 파일을 생성합니다. 예를 들어 Linux 운영 체제를 사용하는 컴퓨터에서 다음 명령을 실행합니다.$ tar cvaf must-gather.tar.gz must-gather-local.54213423446277122891
- 1
must-gather-local.5421342344627712289//
를must-gather
툴에서 생성한 디렉터리 이름으로 교체합니다.
참고데이터를 지원 케이스에 첨부하거나 성능 프로파일을 생성할 때 Performance Profile Creator 래퍼 스크립트와 함께 사용할 압축 파일을 만듭니다.
- Red Hat Customer Portal에서 해당 지원 사례에 압축 파일을 첨부합니다.