5.2. 성능 병목 현상 확인
VDO 성능에서 병목 현상을 식별하는 것은 시스템 효율성을 최적화하는 데 중요합니다. 수행할 수 있는 기본 단계 중 하나는 병목 현상이 CPU, 메모리 또는 백업 스토리지 속도에 있는지 확인하는 것입니다. 가장 느린 구성 요소를 정확하게 파악한 후 성능 향상을 위한 전략을 개발할 수 있습니다.
낮은 성능의 근본 원인이 하드웨어 문제가 되지 않도록 하려면 스토리지 스택에서 VDO를 사용하여 테스트를 실행합니다.
VDO의 journalQ
스레드는 특히 VDO 볼륨에서 쓰기 작업을 처리할 때 자연적인 병목 현상입니다. 다른 스레드 유형에 journalQ
스레드보다 사용률이 높으면 해당 유형의 스레드를 추가하여 이 문제를 해결할 수 있습니다.
5.2.1. top을 사용하여 VDO 성능 분석
top
유틸리티를 사용하여 VDO 스레드의 성능을 검사할 수 있습니다.
top
과 같은 툴은 캐시 또는 메모리 지연으로 인해 생산적인 CPU 사이클과 사이클을 구분할 수 없습니다. 이러한 툴은 캐시 경합 및 메모리 액세스를 실제 작업으로 해석합니다. 노드 간에 스레드를 이동하는 것은 CPU 사용률 감소와 같이 표시될 수 있으며 초당 작업을 늘릴 수 있습니다.
절차
개별 스레드를 표시합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow top -H
$ top -H
- f 키를 눌러 필드 관리자를 표시합니다.
-
( Cryostat) 키를 사용하여
P = Last Used Cpu (SMP)
필드로 이동합니다. -
스페이스바를 눌러
P = Last Used Cpu (SMP)
필드를 선택합니다. -
q 키를 눌러 필드 관리자를 종료합니다. 이제
top
유틸리티에서 개별 코어의 CPU 부하를 표시하고 각 프로세스 또는 스레드마다 최근에 사용된 CPU를 나타냅니다. 1 를 눌러 CPU별 통계로 전환할 수 있습니다.
추가 리소스
-
시스템의
top(1)
도움말 페이지 -
주요
결과 해석
5.2.2. 주요
결과 해석
VDO 스레드의 성능을 분석하는 동안 다음 표를 사용하여 top
유틸리티의 결과를 해석합니다.
값 | 설명 | 제안 |
---|---|---|
스레드 또는 CPU 사용량이 70%를 초과했습니다. | 스레드 또는 CPU가 과부하됩니다. 사용량이 높은 경우 실제 작업이 없는 CPU에 예약된 VDO 스레드가 발생할 수 있습니다. 이는 과도한 하드웨어 중단, 메모리 충돌 또는 리소스 경쟁으로 인해 발생할 수 있습니다. | 이 코어를 실행하는 유형의 스레드 수를 늘립니다. |
낮은 | 핵심은 적극적으로 작업을 처리하는 것입니다. | 작업이 필요하지 않습니다. |
낮은 | 핵심은 표준 처리 작업을 수행하는 것입니다. | 성능을 개선하기 위해 코어를 더 추가합니다. NUMA 충돌을 방지합니다. |
| 코어는 과도하게 배출됩니다. | 커널 스레드 및 장치 인터럽트 처리를 다른 코어에 다시 할당합니다. |
| VDO는 I/O 요청으로 스토리지 시스템을 지속적으로 사용하고 있습니다. [b] | CPU 사용률이 매우 낮은 경우 I/O 제출 스레드 수를 줄입니다. |
|
VDO에는 필요한 것보다 더 많은 |
|
I/O 요청당 CPU 사용률이 높습니다. | I/O 요청당 CPU 사용률이 더 많은 스레드로 증가합니다. | CPU, 메모리 또는 잠금 경합을 확인합니다. |
[a]
몇 % 이상
[b]
이는 스토리지 시스템이 여러 요청을 처리할 수 있거나 요청 처리가 효율적인 경우 유용합니다.
|
5.2.3. perf로 VDO 성능 분석
perf
유틸리티를 사용하여 VDO의 CPU 성능을 확인할 수 있습니다.
사전 요구 사항
-
perf
패키지가 설치되어 있습니다.
절차
성능 프로필을 표시합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow perf top
# perf top
perf
결과를 해석하여 CPU 성능을 분석합니다.표 5.2. perf 결과 해석 값 설명 제안 kvdo:bioQ
스레드는 과도한 사이클 수집 회전 잠금VDO 아래의 장치 드라이버에서 너무 많은 경합이 발생할 수 있습니다.
kvdo:bioQ
스레드 수 감소높은 CPU 사용량
NUMA 노드 간 연결.
프로세서에서 지원하는 경우
stalled-cycles-backend
,cache-misses
,node-load-misses
와 같은 카운터를 확인합니다. 누락 속도가 높으면 가능한 경합을 나타내는 다른 툴에서 CPU 사용량이 높은 CPU 사용량을 다시 조합한 stalls가 발생할 수 있습니다.VDO 커널 스레드에 대한 CPU 선호도 또는 인터럽트 처리기의 IRQ 선호도를 구현하여 처리를 단일 노드로 제한합니다.
추가 리소스
-
시스템의
perf-top(1)
도움말 페이지
5.2.4. sar를 사용하여 VDO 성능 분석
sar
유틸리티를 사용하여 VDO 성능에 대한 주기적인 보고서를 생성할 수 있습니다.
모든 블록 장치 드라이버가 sar
유틸리티에 필요한 데이터를 제공할 수 있는 것은 아닙니다. 예를 들어 MD RAID와 같은 장치는 %util
값을 보고하지 않습니다.
사전 요구 사항
Cryo
stat 유틸리티
를 설치합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow dnf install sysstat
# dnf install sysstat
절차
1초 간격으로 디스크 I/O 통계를 표시합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sar -d 1
$ sar -d 1
sar
결과를 해석하여 VDO 성능을 분석합니다.표 5.3. sar 결과 해석 값 설명 제안 -
기본 스토리지 장치의
%util
값은 100% 미만입니다. - VDO는 100 %로 비어 있습니다.
-
bioQ
스레드는 많은 CPU 시간을 사용하고 있습니다.
VDO에는 빠른 장치를 위한
bioQ
스레드가 너무 적습니다.bioQ
스레드를 더 추가합니다.스핀 잠금 경합으로 인해
bioQ
스레드를 추가할 때 특정 스토리지 드라이버가 느려질 수 있습니다.-
기본 스토리지 장치의
추가 리소스
-
시스템의
SAR(1)
도움말 페이지