병목 상태 식별

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

공유 리소스에 동시에 액세스하면 병목 현상이 발생합니다. 일반적으로 병목 현상은 모든 소프트웨어 시스템에 존재하며 불가피합니다. 공유 리소스에 대한 과도한 요구는 응답 시간을 현저히 늦추는 원인이므로 반드시 확인하고 적절하게 튜닝해야 합니다.

병목 현상의 원인은 다음과 같습니다.

  • 리소스가 부족하여 구성 요소 추가나 업그레이드가 필요한 경우

  • 워크로드가 균등하게 분산되지 않는 동일한 유형의 리소스 예를 들어 하나의 디스크가 독점되고 있습니다.

  • 리소스가 잘못 동작하는 경우

  • 잘못 구성된 리소스입니다.

병목 상태 분석

다양한 이벤트에 대한 과도한 기간은 튜닝할 수 있는 병목 상태의 지표입니다.

예:

  • 일부 다른 구성 요소는 부하가 이 구성 요소에 도달하지 못하게 하여 로드를 완료하는 시간을 늘릴 수 있습니다.

  • 네트워크 정체로 인해 클라이언트 요청이 더 오래 걸릴 수 있습니다.

다음은 서버 성능을 추적하고 병목 상태를 확인할 때 모니터링하는 5개의 중요 영역입니다.

가능한 병목 상태 영역 서버에 미치는 영향
메모리 사용량 Microsoft SQL Server에 할당되거나 사용할 수 있는 메모리가 부족하여 성능이 저하됩니다. 이 경우 데이터를 데이터 캐시에서 직접 읽지 못하고 디스크에서 읽어야 합니다. Microsoft Windows 운영 체제는 페이지가 필요할 때 디스크와 데이터를 교환하여 과도한 페이징을 수행합니다.
CPU 사용률 만성적으로 높은 CPU 사용률은 Transact-SQL 쿼리를 조정해야 하거나 CPU 업그레이드가 필요하다는 것을 나타낼 수 있습니다.
디스크 입력/출력(I/O) 불필요한 I/O를 줄이기 위해 Transact-SQL 쿼리를 조정할 수 있습니다. 예를 들어 인덱스를 사용하는 경우입니다.
사용자 연결 너무 많은 사용자가 동시에 서버에 액세스하는 경우 성능이 저하될 수 있습니다.
차단 잠금 잘못 디자인된 애플리케이션은 잠금을 유발하고 동시성을 방해하여 응답 시간이 길어지고 트랜잭션 처리량이 낮아질 수 있습니다.

참고 항목

CPU 사용량 모니터링
디스크 사용량 모니터링
메모리 사용량 모니터링
SQL Server, 일반 통계 개체
SQL Server, Locks 개체