다음을 통해 공유


성능 진단(PerfInsights)을 사용하여 Linux 가상 머신 성능 문제 해결

적용 대상: ✔️ Linux VM

참고 항목

이 문서에서 참조하는 CentOS는 Linux 배포이며 EOL(수명 종료)에 도달합니다. 사용 및 계획을 적절하게 고려하세요. 자세한 내용은 CentOS 수명 종료 지침을 참조 하세요.

PerfInsights Linux 는 진단 데이터를 수집 및 분석하고 Azure에서 Linux 가상 머신 성능 문제를 해결하는 데 도움이 되는 보고서를 제공하는 자가 진단 도구입니다. PerfInsights는 지원되는 가상 머신에서 독립 실행형 도구로 실행하거나 Azure 가상 머신에 대한 성능 진단을 사용하여 포털에서 직접 실행할 수 있습니다.

가상 머신에 성능 문제가 발생하는 경우 지원에 문의하기 전에 이 도구를 실행합니다.

참고 항목

연속 진단(미리 보기) 은 현재 Windows에서만 지원됩니다.

지원되는 문제 해결 시나리오

PerfInsights는 여러 종류의 정보를 수집하고 분석할 수 있습니다. 다음 섹션에서는 일반적인 시나리오를 다룹니다.

빠른 성능 분석

이 시나리오에서는 가상 머신의 스토리지 및 하드웨어 구성과 같은 기본 정보, 다음을 비롯한 다양한 로그를 수집합니다.

  • 운영 체제 정보

  • PCI 디바이스 정보

  • 일반 게스트 OS 로그

  • 구성 파일

  • 스토리지 정보

  • Azure Virtual Machine 구성(Azure Instance Metadata Service를 사용하여 수집됨)

  • 실행 중인 프로세스 목록, 디스크, 메모리 및 CPU 사용량

  • 네트워킹 정보

시스템에 영향을 주지 않아야 하는 정보의 수동 컬렉션입니다.

참고 항목

빠른 성능 분석 시나리오는 다음 각 시나리오에 자동으로 포함됩니다.

성능 분석

이 시나리오는 빠른 성능 분석과 유사하지만 더 긴 기간 동안 진단 정보를 캡처할 수 있습니다.

HPC 성능 분석

이 시나리오는 HPC 크기 VM의 문제 해결을 위한 것입니다. 즉, H 시리즈 및 N 시리즈입니다. Azure HPC Platform 팀에서 테스트하고 권장하는 내용에 대해 VM 구성을 확인합니다. 또한 다음을 포함하여 해당 VM에서 사용할 수 있는 특수 하드웨어의 상태 및 구성과 관련된 로그 및 진단을 수집합니다.

  • GPU 드라이버 정보

  • GPU 하드웨어 진단

  • InfiniBand 드라이버 정보 및 구성

  • InfiniBand 디바이스 진단

  • 네트워크 구성 파일

  • 성능 튜닝 정보

참고 항목

HPC 성능 분석 시나리오에서 사용되는 일부 도구(예: 디바이스 드라이버와 함께 패키지된 cli 명령)는 일부 VM에 없습니다. 이러한 경우 분석의 해당 부분은 건너뜁니다. 이 시나리오를 실행해도 VM에 소프트웨어를 설치하거나 다른 영구 변경은 수행하지 않습니다.

참고 항목

현재 Azure Portal에서 직접 HPC 시나리오를 실행하는 것은 지원되지 않으므로 이를 사용하려면 명령줄에서 PerfInsights를 다운로드하고 실행해야 합니다.

PerfInsights에서 수집되는 정보 종류

Linux 가상 머신, 운영 체제, 블록 디바이스, 높은 리소스 소비자, 구성 및 다양한 로그에 대한 정보가 수집됩니다. 자세한 내용은 다음과 같습니다.

  • 운영 체제

    • Linux 배포 및 버전
    • 커널 정보
    • 드라이버 정보
    • Azure HPC 드라이버 VM 확장 로그*
    • SELinux 구성*
  • 하드웨어

    • PCI 디바이스 [*]
    • lscpu의 출력*
    • 시스템 관리 BIOS 테이블 덤프*
  • 프로세스 및 메모리

    • 프로세스 목록(작업 이름, 사용된 메모리, 열린 파일)
    • 총, 사용 가능 및 사용 가능한 실제 메모리
    • 총, 사용 가능 및 사용 가능한 스왑 메모리
    • CPU 프로파일링 캡처 및 5초 간격으로 CPU 사용량 처리
    • 5초 간격으로 프로세스 메모리 사용량 프로파일링 캡처
    • 메모리 액세스에 대한 사용자 제한*
    • NUMA 구성*
  • GPU

    • Nvidia SMI 출력*
    • Nvidia DCGM 진단*
    • Nvidia 디버그 덤프*
  • 네트워킹

    • 어댑터 통계가 있는 네트워크 어댑터 목록
    • 네트워크 라우팅 테이블
    • 열린 포트 및 상태
    • InfiniBand 파티션 키*
    • ibstat의 출력*
  • 스토리지

    • 차단 디바이스 목록
    • 파티션 목록
    • 탑재 지점 목록
    • MDADM 볼륨 정보
    • LVM 볼륨 정보
    • 5초 간격으로 모든 디스크에 대한 프로파일링 캡처
  • 로그

    • /var/log/messages
    • /var/log/syslog
    • /var/log/kern.log
    • /var/log/cron.log
    • /var/log/boot.log
    • /var/log/yum.log
    • /var/log/dpkg.log
    • /var/log/sysstat 또는 /var/log/sa [**]
    • /var/log/cloud-init.log
    • /var/log/cloud-init-output.log
    • /var/log/gpu-manager.log
    • /var/log/waagent.log
    • /var/log/azure/[extension folder]/*log*
    • /var/opt/microsoft/omsconfig/omsconfig.log
    • /var/opt/microsoft/omsagent/log/omsagent.log
    • /etc/waagent.config
    • 지난 5일 동안의 journalctl 출력
  • Azure 가상 머신 인스턴스 메타데이터

* HPC 시나리오에서만

성능 진단 추적

백그라운드에서 규칙 기반 엔진을 실행하여 데이터를 수집하고 지속적인 성능 문제를 진단합니다. 범주 -> 찾기 탭 아래의 보고서에 규칙이 표시됩니다.

각 규칙은 다음으로 구성됩니다.

  • 찾기: 찾기에 대한 설명입니다.
  • 권장 사항: 검색을 위해 수행할 수 있는 작업에 대한 권장 사항입니다. 찾기 및/또는 권장 사항에 대한 자세한 정보를 제공하는 설명서에 대한 참조 링크도 있습니다.
  • 영향 수준: 성능에 영향을 미칠 가능성을 나타냅니다.

현재 지원되는 규칙 범주는 다음과 같습니다.

  • 높은 리소스 사용량:

    • 높은 CPU 사용량: 높은 CPU 사용 기간을 검색하고 해당 기간 동안 상위 CPU 사용량 소비자를 표시합니다.
    • 높은 메모리 사용량: 높은 메모리 사용 기간을 검색하고 해당 기간 동안 상위 메모리 사용량 소비자를 표시합니다.
    • 높은 디스크 사용량: 실제 디스크에서 높은 디스크 사용 기간을 검색하고 해당 기간 동안 상위 디스크 사용 소비자를 표시합니다.
  • 스토리지: 특정 스토리지 구성을 검색합니다.

  • 메모리: 특정 메모리 구성을 검색합니다.

  • GPU: 특정 GPU 구성을 검색합니다.

  • 네트워크: 특정 네트워크 설정을 검색합니다.

  • 시스템: 특정 시스템 설정을 검색합니다.

참고 항목

[*] PCI 정보는 Debian 및 SLES 배포판에서 아직 수집되지 않았습니다.

[**] /var/log/sysstat 또는 /var/log/sa에는 sysstat 패키지에서 수집한 SAR(시스템 활동 보고서) 파일이 포함되어 있습니다. sysstat 패키지가 VM에 설치되지 않은 경우 PerfInsights 도구는 설치하는 권장 사항을 제공합니다.

VM에서 PerfInsights Linux 실행

도구를 실행하기 전에 알아야 할 사항

도구 요구 사항:

  • 이 도구는 성능 문제가 있는 VM에서 실행해야 합니다.

  • Python 3.6 이상 버전은 VM에 설치해야 합니다.

    참고 항목

    Python 2는 더 이상 PSF(Python Software Foundation)에서 지원되지 않습니다. VM에 Python 2.7이 설치되어 있으면 PerfInsights를 설치할 수 있습니다. 그러나 Python 2.7을 지원하기 위해 PerfInsights에서는 변경 또는 버그 수정이 이루어지지 않습니다. 자세한 내용은 Sunsetting Python 2를 참조하세요.

  • 현재 지원되는 배포는 다음과 같습니다.

    참고 항목

    Microsoft는 테이블에 나열된 버전만 테스트했습니다. 테이블에 버전이 나열되지 않은 경우 Microsoft에서 명시적으로 테스트하지는 않지만 버전이 여전히 작동할 수 있습니다.

    배포 버전
    Oracle Linux Server 6.10 [*], 7.3, 7.5, 7.6, 7.7, 7.8, 7.9
    CentOS 6.5 [*], 7.6, 7.7, 7.8, 7.9
    RHEL 7.2, 7.5, 8.0 [*], 8.1, 8.2, 8.6, 8.8
    Ubuntu 14.04, 16.04, 18.04, 20.04, 22.04
    Debian 8, 9, 10, 11 [*]
    SLES 12 SP4 [*], 12 SP5 [*], 15 [*], 15 SP1 [*], 15 SP2 [*], 15 SP4 [*]
    AlmaLinux 8.4, 8.5
    Azure Linux 2.0

참고 항목

[*] 을 참조하세요. 알려진 문제 섹션

참고 항목

[*] HPC 시나리오는 다음을 사용합니다 .HPCDiag 도구를 사용하므로 지원되는 VM 크기 및 OS에 대한 지원 매트릭스를 확인합니다. 특히 NDv4 크기 VM은 아직 지원되지 않으며 해당 VM에 대한 보고서는 불필요한 결과를 표시할 수 있습니다.

알려진 문제

  • RHEL 8에는 기본적으로 Python이 설치되어 있지 않습니다. PerfInsights Linux를 실행하려면 먼저 Python 3.6 이상 버전을 설치해야 합니다.

  • CentOS 6.x에서는 게스트 에이전트 정보 수집이 실패할 수 있습니다.

  • PCI 디바이스 정보는 Debian 기반 배포판에서 수집되지 않습니다.

  • LVM 정보는 일부 배포에서 부분적으로 수집됩니다.

PerfInsights 실행 어떻게 할까요?

Azure Portal에서 Azure Performance Diagnostics를 설치하여 가상 머신에서 PerfInsights를 실행할 수 있습니다. 독립 실행형 도구로 실행할 수도 있습니다.

참고 항목

PerfInsights는 단순히 데이터를 수집하고 분석합니다. 시스템을 수정하지 않습니다.

Azure Portal에서 PerfInsights 설치 및 실행

이 옵션에 대한 자세한 내용은 Azure Performance Diagnostics를 참조 하세요.

독립 실행형 모드에서 PerfInsights 실행

PerfInsights 도구를 실행하려면 다음 단계를 수행합니다.

  1. 가상 머신의 폴더에 PerfInsights.tar.gz 다운로드하고 터미널에서 아래 명령을 사용하여 콘텐츠를 추출합니다.

    wget https://download.microsoft.com/download/9/F/8/9F80419C-D60D-45F1-8A98-718855F25722/PerfInsights.tar.gz
    
    tar xzvf PerfInsights.tar.gz
    
  2. 파일이 포함된 perfinsights.py 폴더로 이동한 다음 실행 perfinsights.py 하여 사용 가능한 명령줄 매개 변수를 확인합니다.

    cd <the path of PerfInsights folder>
    sudo python perfinsights.py
    

    PerfInsights Linux 명령줄 출력의 스크린샷.

    PerfInsights 시나리오를 실행하기 위한 기본 구문은 다음과 같습니다.

    sudo python perfinsights.py -r <ScenarioName> -d [duration]<H | M | S> [AdditionalOptions]
    

    아래 예제를 사용하여 1분 동안 빠른 성능 분석 시나리오를 실행하고 /tmp/output 폴더에 결과를 만들 수 있습니다.

    sudo python perfinsights.py -r quick -d 1M -a -o /tmp/output
    

    아래 예제를 사용하여 5분 동안 성능 분석 시나리오를 실행하고 결과(TAR 파일에 저장됨)를 스토리지 계정에 업로드할 수 있습니다.

    sudo python perfinsights.py -r vmslow -d 300S -a -t <StorageAccountName> -k <StorageAccountKey> -i <full resource Uri of the current VM>
    

    아래 예제를 사용하여 1분 동안 HPC 성능 분석 시나리오를 실행하고 결과 TAR 파일을 스토리지 계정에 업로드할 수 있습니다.

    sudo python perfinsights.py -r hpc -d 60S -a -t <StorageAccountName> -k <StorageAccountKey> -i <full resource Uri of the current VM>
    

    참고 항목

    시나리오를 실행하기 전에 PerfInsights는 사용자에게 진단 정보를 공유하고 EULA에 동의하는 데 동의하라는 메시지를 표시합니다. -a 또는 --accept-disclaimer-and-share-diagnostics 옵션을 사용하여 이러한 프롬프트를 건너뜁니다.

    Microsoft에 활성 지원 티켓이 있고 작업 중인 지원 엔지니어의 요청에 따라 PerfInsights를 실행하는 경우 -s 또는 --support-request 옵션을 사용하여 지원 티켓 번호를 제공해야 합니다.

실행이 완료되면 출력 폴더를 지정하지 않는 한 PerfInsights와 동일한 폴더에 새 tar 파일이 나타납니다. 파일 이름이 PerformanceDiagnostics_yyyy-MM-dd_hh-mm-ss-fff.tar.gz. 분석을 위해 이 파일을 지원 에이전트로 보내거나 파일 내에서 보고서를 열어 결과 및 권장 사항을 검토할 수 있습니다.

진단 보고서 검토

PerformanceDiagnostics_yyyy-MM-dd_hh-mm-ss-fff.tar.gz 파일 내에서 PerfInsights의 결과를 자세히 알아보는 HTML 보고서를 찾을 수 있습니다. 보고서를 검토하려면 PerformanceDiagnostics_yyyy-MM-dd_hh-mm-ss-fff.tar.gz 파일을 확장다음 PerfInsights Report.html 파일을 엽니다.

개요 탭

개요 탭은 기본 실행 세부 정보 및 가상 머신 정보를 제공합니다. 결과 탭에는 PerfInsights 보고서의 모든 다른 섹션의 권장 사항에 대한 요약이 표시됩니다.

PerfInsights 보고서의 개요 탭 스크린샷

PerfInsights 보고서의 결과 탭 스크린샷

참고 항목

높음으로 분류된 검색 결과는 성능 문제를 일으킬 수 있는 알려진 문제입니다. 매체로 분류된 결과는 반드시 성능 문제를 일으키지 않는 최적이 아닌 구성을 나타냅니다. 낮음으로 분류되는 검색 결과는 정보만 제공합니다.

모든 상위 및 중간 결과에 대한 권장 사항 및 링크를 검토합니다. 성능에 영향을 줄 수 있는 방법과 성능 최적화 구성에 대한 모범 사례에 대해 알아봅니다.

CPU 탭

CPU 탭은 PerfInsights를 실행하는 동안 시스템 전체 CPU 사용량에 대한 정보를 제공합니다. 높은 CPU 사용 기간 및 상위 장기 실행 CPU 소비자에 대한 정보는 높은 CPU 관련 문제를 해결하는 데 도움이 될 것입니다.

PerfInsights 보고서 CPU 탭의 스크린샷

GPU 탭

GPU 탭은 GPU 관련 문제 해결에 도움이 될 결과 정보를 제공합니다.

PerfInsights 보고서 GPU 탭의 스크린샷

네트워크 탭

네트워크 탭은 네트워크 구성 및 상태에 대한 정보를 제공합니다. HPC 시나리오에서 InfiniBand 문제를 비롯한 네트워크 관련 결과에 대한 정보는 여기에서 찾을 수 있습니다.

네트워크 탭의 스크린샷.

스토리지 탭

결과 섹션에는 스토리지와 관련된 다양한 결과 및 권장 사항이 표시됩니다.

블록 디바이스 및 파티션, LVM 및 MDADM 탭과 같은 기타 관련 섹션에서는 블록 디바이스가 구성되고 서로 관련되는 방법을 설명합니다.

스토리지 탭의 스크린샷.

MDADM 탭의 스크린샷

Linux 탭

Linux 탭에는 하드웨어 및 VM에서 실행되는 운영 체제에 대한 정보가 포함되어 있습니다. 세부 정보에는 게스트 에이전트, PCI, CPU, GPU, 드라이버 및 LIS 드라이버에 대한 실행 중인 프로세스 목록과 정보가 포함됩니다.

Linux 탭 및 세부 정보의 스크린샷.

또는 GPU 사용 VM에서 다음을 수행합니다.

Linux 탭 아래의 GPU 탭 및 세부 정보 스크린샷

다음 단계

추가 검토를 위해 진단 로그 및 보고서를 Microsoft 지원 업로드할 수 있습니다. Microsoft 지원 직원과 함께 작업하는 경우 문제 해결 프로세스를 지원하기 위해 PerfInsights에서 생성된 출력을 전송하도록 요청할 수 있습니다.

다음 스크린샷과 유사한 메시지가 표시됩니다.

Microsoft 지원。의 샘플 메시지 스크린샷

메시지의 지침에 따라 파일 전송 작업 영역에 액세스합니다. 추가 보안을 위해 처음 사용할 때 암호를 변경해야 합니다.

로그인하면 PerfInsights에서 수집한 PerformanceDiagnostics_yyyy-MM-dd_hh-mm-ss-fff.tar.gz 파일을 업로드하는 대화 상자가 표시됩니다.

도움을 요청하십시오.

질문이 있거나 도움이 필요한 경우 지원 요청을 생성하거나Azure 커뮤니티 지원에 문의하세요. Azure 피드백 커뮤니티에 제품 피드백을 제출할 수도 있습니다.