병목 상태 식별Identify Bottlenecks

공유 리소스를 동시에 액세스하는 경우 병목 상태가 발생합니다.Simultaneous access to shared resources causes bottlenecks. 일반적으로 병목 상태는 모든 소프트웨어 시스템에서 필연적으로 나타나지만In general, bottlenecks are present in every software system and are inevitable. 공유 리소스에 대한 과도한 요구는 응답 시간을 현저히 늦추는 원인이므로 반드시 확인하고 적절하게 튜닝해야 합니다.However, excessive demands on shared resources cause poor response time and must be identified and tuned.

병목 상태의 원인은 다음과 같습니다.Causes of bottlenecks include:

  • 리소스가 부족하여 구성 요소 추가나 업그레이드가 필요한 경우Insufficient resources, requiring additional or upgraded components.

  • 같은 유형의 리소스에 작업이 골고루 분산되지 않은 경우 (예를 들어 하나의 디스크가 독점된 경우)Resources of the same type among which workloads are not distributed evenly; for example, one disk is being monopolized.

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

  • 리소스가 잘못 구성된 경우Incorrectly configured resources.

병목 상태 분석Analyzing Bottlenecks

다양한 이벤트에서 과도하게 시간이 소요되면 튜닝할 수 있는 병목 상태가 있음을 의미합니다.Excessive durations for various events are indicators of bottlenecks that can be tuned.

예를 들어For example:

  • 다른 구성 요소로 인해 이 구성 요소에 로드가 도달하지 못해 로드를 완료하기까지의 시간이 길어지는 경우Some other component may prevent the load from reaching this component thereby increasing the time to complete the load.

  • 네트워크 정체로 인해 클라이언트 요청에 소요되는 시간이 길어지는 경우Client requests may take longer due to network congestion.

    다음은 서버 성능을 추적하고 병목 상태를 확인할 때 모니터링하는 5개의 중요 영역입니다.Following are five key areas to monitor when tracking server performance to identify bottlenecks.

병목 상태가 발생할 수 있는 영역Possible bottleneck area 서버에 미치는 영향Effects on the server
메모리 사용Memory usage Microsoft SQL ServerSQL Server 에 할당된 메모리나 사용할 수 있는 메모리가 부족하면 성능이 저하됩니다.Insufficient memory allocated or available to Microsoft SQL ServerSQL Server degrades performance. 이 경우 데이터를 데이터 캐시에서 직접 읽지 못하고 디스크에서 읽어야 합니다.Data must be read from the disk rather than directly from the data cache. 또한 Microsoft Windows 운영 체제에서 페이지가 필요할 때마다 디스크와 데이터를 스왑하면서 페이징을 과도하게 수행할 수 있습니다.Microsoft Windows operating systems perform excessive paging by swapping data to and from the disk as the pages are needed.
CPU 사용량CPU utilization CPU 사용량이 장기간 높은 상태로 유지되면 Transact-SQLTransact-SQL 쿼리 튜닝이나 CPU 업그레이드가 필요할 수 있습니다.A chronically high CPU utilization rate may indicate that Transact-SQLTransact-SQL queries need to be tuned or that a CPU upgrade is needed.
디스크 I/O(입/출력)Disk input/output (I/O) Transact-SQLTransact-SQL 인덱스를 사용하는 등의 방법으로 쿼리를 튜닝하여 불필요한 I/O를 줄일 수 있습니다. queries can be tuned to reduce unnecessary I/O; for example, by employing indexes.
사용자 연결User connections 너무 많은 사용자가 동시에 서버에 액세스하는 경우 성능이 저하될 수 있습니다.Too many users may be accessing the server simultaneously causing performance degradation.
차단 잠금Blocking locks 잘못 설계된 응용 프로그램은 잠금을 일으키고 동시성을 제한하여 결과적으로 응답 시간을 길어지고 트랜잭션 처리율이 낮아질 수 있습니다.Incorrectly designed applications can cause locks and hamper concurrency, thus causing longer response times and lower transaction throughput rates.

참고 항목See Also

CPU 사용량 모니터링 Monitor CPU Usage
디스크 사용량 모니터링 Monitor Disk Usage
메모리 사용량 모니터링 Monitor Memory Usage
SQL Server, General Statistics 개체 SQL Server, General Statistics Object
SQL Server, Locks 개체 SQL Server, Locks Object