기준 메트릭 설정
기준은 애플리케이션 또는 서버 성능의 정상적인 "안정 상태"를 이해하는 데 도움이 되는 데이터 측정값 컬렉션입니다. 시간이 지남에 따라 데이터를 수집하면 정상 상태에서 변경된 내용을 식별할 수 있습니다. 기준은 시간 경과에 따른 CPU 사용률 차트처럼 간단하거나 특정 애플리케이션 호출에서 세분화된 수준의 성능 데이터를 제공하는 복잡한 메트릭 집계일 수 있습니다. 기준의 세분성은 데이터베이스 및 애플리케이션 성능의 중요도에 따라 달라집니다.
모든 유형의 애플리케이션 워크로드에 대해 작업 기준을 설정하는 것이 중요합니다. 기준을 사용하면 정상 매개 변수에서 진행 중인 문제를 고려해야 하는지 아니면 지정된 임계값을 초과했는지 식별하는 데 도움이 됩니다. 기준이 없으면 발생하는 모든 문제가 정상으로 간주될 수 있으므로 추가 개입이 필요하지 않습니다.
SQL Server 및 운영 체제 성능의 상관 관계
Azure 가상 머신에 SQL Server를 배포할 때 SQL Server의 성능을 기본 운영 체제의 성능과 연관시키는 것이 중요합니다. Linux를 운영 체제로 사용하는 경우 Windows Performance Monitor와 유사한 데이터를 캡처하려면 InfluxDB, Collectd 및 Grafana를 설치해야 합니다. 이 서비스는 SQL Server에서 데이터를 수집하고 데이터를 검토하는 그래픽 인터페이스를 제공합니다. Linux에서 해당 도구를 사용하거나 Windows에서 성능 모니터를 사용하면 SQL Server 대기 통계와 같은 SQL Server 고유 데이터를 함께 살펴볼 수 있습니다. 이 도구를 함께 사용하면 하드웨어 또는 코드에서 병목 상태를 식별할 수 있습니다. 다음 성능 모니터 카운터는 유용한 Windows 메트릭의 샘플이며 SQL Server 워크로드에 대한 좋은 기준을 캡처하는 데 사용할 수 있습니다.
Processor(_Total)% Processor Time - 이 카운터는 서버에 있는 모든 프로세서의 CPU 사용률을 측정합니다. 이 카운터는 전체 워크로드를 나타내는 좋은 지표이며 다른 카운터와 함께 사용하여 쿼리 성능 문제를 식별할 수 있습니다.
Paging File(_Total)% Usage - 제대로 구성된 SQL Server에서 메모리는 디스크의 페이징 파일로 페이징되지 않아야 합니다. 그러나 일부 구성에서는 시스템 메모리를 소비하는 다른 서비스가 실행 중이므로 운영 체제에서 메모리를 디스크에 페이징하여 성능이 저하될 수 있습니다.
PhysicalDisk(_Total)\Avg. Disk sec/Read 및 Avg. Disk sec/Write - 이 카운터는 스토리지 하위 시스템이 작동하는 방식에 대한 좋은 메트릭을 제공합니다. 대부분의 경우 대기 시간 값은 20ms를 초과하지 않아야 하며 Premium Storage를 사용하면 10ms 미만의 값이 표시되어야 합니다.
System\Processor Queue Length - 이 숫자는 프로세서의 시간을 대기하는 스레드 수를 나타냅니다. 0보다 크면 CPU 부하를 나타내며 워크로드에서 더 많은 CPU를 이용할 수 있음을 나타냅니다.
SQLServer:Buffer Manager\Page life expectancy - 페이지 예상 수명은 SQL Server가 메모리에서 페이지가 유지될 것으로 예상하는 기간을 나타냅니다. 이 설정에 적절한 값은 없습니다. 이전 설명서에서는 300초가 적절하다고 했지만, 이 설명서는 서버의 RAM이 훨씬 적은 32비트 시대에 작성되었습니다. 시간 경과에 따라 이 값을 모니터링하고 급작스러운 저하를 평가해야 합니다. 카운터 값이 급작스럽게 저하되면 불량한 쿼리 패턴, 외부 메모리 부족(예: 대규모 SSIS 패키지를 실행하는 서버)을 나타내거나 대규모 데이터베이스에서 일관성 검사를 실행하는 것과 같은 정상적인 시스템 처리일 수 있습니다.
SQLServer:SQL Statistics\Batch Requests/sec - 이 카운터는 SQL Server가 시간이 지남에 따라 얼마나 일관되게 사용되는지 평가하는 데 유용합니다. 다시 한 번 좋은 값이나 나쁜 값은 없지만 이 카운터를 % 프로세서 시간과 함께 사용하면 워크로드와 기준을 이해하는 데 도움이 됩니다.
SQLServer:SQL Statistics\SQL Compilations/sec and SQL Re-Compilations/sec - 이 카운터는 계획 캐시에 기존 계획이 없거나 변경으로 인해 계획이 무효화되어 SQL Server가 쿼리에 대한 실행 계획을 컴파일하거나 다시 컴파일해야 할 때 업데이트됩니다. 다시 컴파일은 다시 컴파일 쿼리 힌트를 사용하여 T-SQL을 나타내거나 많은 임시 쿼리 또는 단순 메모리 부족으로 인한 계획 캐시의 메모리 부족을 나타낼 수 있습니다.
이 카운터는 사용할 수 있는 성능 모니터 카운터의 샘플일 뿐입니다. 위의 카운터는 뛰어난 성능 기준을 제공하지만 특정 성능 문제를 식별하려면 더 많은 카운터를 검사해야 할 수도 있습니다.
대기 통계
스레드가 실행 중이고 사용할 수 없는 리소스를 기다려야 하는 경우 SQL Server는 이 메트릭을 추적합니다. 이 정보는 DMV(동적 관리 뷰) sys.dm_os_wait_stats
를 통해 쉽게 식별할 수 있습니다. 이 정보는 데이터베이스의 기준 성능을 이해하는 데 중요하며 쿼리 실행 및 하드웨어 제한과 관련된 특정 성능 문제를 식별하는 데 도움이 될 수 있습니다. 성능 문제를 해결하려면 적절한 대기 유형 및 해당 해결 방법을 확인하는 것이 중요합니다. 대기 통계는 Azure SQL 플랫폼에서 사용할 수 있습니다.