SharePoint Server 2013 모니터링 및 유지 관리

적용 대상:예-img-132013 no-img-162016 no-img-192019 no-img-seSubscription Edition no-img-sopSharePoint in Microsoft 365

이 문서에서는 SharePoint Server 2013 팜에 대한 모니터링 및 성능 카운터에 대해 설명합니다. SharePoint Server 2013 시스템 성능을 유지하려면 서버를 모니터링하여 잠재적인 병목 상태를 식별해야 합니다. 효과적으로 모니터링하려면 먼저 팜의 특정 부분에 주의를 기울여야 할지를 알려주는 핵심 지표를 이해하고 이러한 지표를 해석하는 방식을 알아야 합니다. 팜이 정의한 목표를 벗어나서 작동되는 경우에는 하드웨어 리소스를 추가 또는 제거하거나, 토폴로지를 변경하거나, 데이터가 저장되는 방식을 변경하여 팜을 조정할 수 있습니다.

이 섹션의 정보는 성능 카운트 및 기타 설정을 수동으로 구성하는 관리자를 지원하기 위한 것입니다. SharePoint 중앙 관리 웹 사이트 인터페이스에 기본 제공되는 상태 모니터링 도구를 사용하여 상태 모니터링 및 문제 해결에 대한 자세한 내용은 다음 문서를 참조하세요.

이 문서를 읽기 전에 SharePoint Server 2013에 대한 용량 관리 및 크기 조정 개요를 읽어야 합니다.

모니터링 구성

다음은 초기 단계에서 변경해 보면서 환경을 모니터링하여 이러한 변경이 필요한지 여부를 파악하는 데 도움이 되는 설정 목록입니다. 모니터링 기능을 높이면 사용 현황 데이터베이스가 요구하는 디스크 공간 크기에 영향을 줄 수 있습니다. 환경이 안정화되고 이러한 상세한 모니터링이 더 이상 필요하지 않게 되면 설정을 다시 기본 설정으로 낮출 수 있습니다.

설정 참고
이벤트 로그 넘침 방지
사용 안 함
기본값은 사용입니다. 모니터링 데이터를 최대한 많이 수집하기 위해 사용하지 않도록 설정할 수 있습니다. 정상적인 작동에서는 사용되도록 설정하는 것이 좋습니다.
타이머 작업 일정
Microsoft SharePoint Foundation 사용 현황 데이터 가져오기
5분
기본값은 30분입니다. 이 설정을 낮추면 데이터를 사용 데이터베이스로 더 자주 가져오며 문제 해결 시 특히 유용합니다. 정상 작업의 경우 30분이어야 합니다.
진단 공급자
모든 진단 공급자 사용
사용
기본값은 "검색 상태 모니터링 - 추적 이벤트" 공급자를 제외하고 사용 안 함입니다. 이러한 공급자는 다양한 기능 및 구성 요소에 대한 상태 데이터를 수집합니다. 정상적인 작동에서는 기본값으로 되돌릴 수 있습니다.
"job-diagnostics-performance-counter-wfe-provider" 및 "job-diagnostics-performance-counter-sql-provider" 일정 간격 설정
1분
기본값은 5분입니다. 이 설정을 낮추면 데이터를 더 자주 폴링할 수 있으며 문제 해결 시 특히 유용합니다. 정상적인 작업의 경우 5분이어야 합니다.
기타
콘텐츠 요청에 대한 스택 추적 사용
사용
기본값은 사용 안 함입니다. 이 설정을 사용하도록 설정하면 프로세스 스택 추적을 사용하여 콘텐츠 요청 실패를 진단할 수 있습니다. 정상적인 작동에서는 사용되지 않도록 설정하는 것이 좋습니다.
개발자 대시보드 사용
사용
기본값은 사용 안 함입니다. 이 설정을 사용하도록 설정하면 개발자 대시보드를 사용하여 느린 페이지 또는 기타 문제를 진단할 수 있습니다. 긴급한 문제 해결이 더 이상 필요하지 않은 정상적인 작동에서는 사용되지 않도록 설정하는 것이 좋습니다.
사용 현황 데이터 수집
콘텐츠 가져오기 사용
콘텐츠 내보내기 사용
페이지 요청
기능 사용 현황
검색 쿼리 사용 현황
사이트 재고 사용 현황
타이머 작업
등급 사용 현황
사용
이 카운터 집합의 로깅을 사용하도록 설정하면 환경에서 더 많은 사용 현황 데이터를 수집하고 환경의 트래픽 패턴을 보다 잘 이해할 수 있습니다.

성능 카운터

사용량 데이터베이스를 사용하는 경우 특정 간격(기본적으로 30분)에 자동으로 기록되는 방식으로 팜의 성능을 모니터링하고 평가하는 데 도움이 되는 성능 카운터를 사용 데이터베이스에 추가할 수 있습니다. 이 경우 사용 데이터베이스를 쿼리하여 이러한 카운터를 검색하고 시간에 따른 결과를 그래프로 표시할 수 있습니다. Add-SPDiagnosticsPerformanceCounter PowerShell cmdlet을 사용하여 사용량 데이터베이스에 % 프로세서 시간 카운터를 추가하는 방법은 다음과 같습니다. 이 작업은 웹 서버 중 하나에서만 실행해야 합니다.

Add-SPDiagnosticsPerformanceCounter -Category "Processor" -Counter "% Processor Time" -Instance "_Total" -WebFrontEnd

서버 시스템에 대해 모니터링해야 하는 몇 가지 일반적인 성능 카운터가 있습니다. 다음 표에서는 이러한 성능 카운터를 대략적으로 설명합니다.

성능 카운터 설명
프로세서
프로세서 성능을 모니터링하여 시스템에서 갑작스런 활동 급증을 처리할 수 없음을 나타내기 때문에 모든 프로세서 사용량이 지속적으로 높지 않도록 해야 합니다(80% 이상). 그리고 공통 상태에서는 하나의 구성 요소 오류로 나머지 구성 요소가 오작동 상태로 유지되는 경우 도미노 효과가 표시되지 않습니다. 예를 들어 웹 서버가 3개 있는 경우 모든 서버의 평균 CPU가 60% 미만인지 확인해야 합니다. 한 서버가 실패할 경우 다른 두 서버가 추가 부하를 흡수할 여지가 있습니다.
Network Interface
네트워크 인터페이스 카드를 통해 데이터가 송수신되는 속도를 모니터링합니다. 네트워크 용량의 50% 아래로 유지되어야 합니다.
Disks and Cache
정기적으로 모니터링해야 하는 논리 디스크 옵션에는 몇 가지가 있습니다. 사용 가능한 디스크 공간은 용량 연구에서 중요하지만 디스크가 유휴 상태인 시간도 검토해야 합니다. 서버에서 실행되는 응용 프로그램 또는 서비스 종류에 따라, 디스크 읽기 및 쓰기 시간을 검토할 수 있습니다. 쓰기 또는 읽기 작업이 오래 대기되면 성능에 영향을 줍니다. 캐시는 읽기 및 쓰기 작업에 큰 영향을 줍니다. 캐시 오류가 증가하는지 모니터링해야 합니다.
Memory and Paging File
할당할 수 있는 실제 메모리 양을 모니터링합니다. 메모리가 부족하면 페이지 파일이 과도하게 사용되고 초당 페이지 폴트 수가 늘어날 수 있습니다.

시스템 카운터

다음 표는 웹에서 SPDiagnosticPerformanceCounter를 사용하여 사용 현황 데이터베이스에서 모니터링된 카운터 집합에 추가할 수 있는 시스템 개체 및 카운터에 대한 정보를 제공합니다.

개체 및 카운터 설명
프로세서
% Processor Time
이 카운터는 시간에 따른 프로세서 사용량을 보여 줍니다. 이 값이 계속 너무 높으면 성능에 나쁜 영향을 줄 수 있습니다. 멀티프로세서 시스템에서는 "합계"를 계산해야 합니다. 각 프로세서에 대한 사용량도 측정하여 코어 간 성능이 균형을 이루는지 확인할 수 있습니다.
디스크
- Avg. Disk Queue Length
샘플 간격 동안 선택된 디스크에 대해 지연된 읽기 및 쓰기 요청의 평균 수를 나타냅니다. 대기 시간을 연장하지 않고도 디스크 읽기/쓰기 성능이 저하되지 않고 시스템이 꾸준히 작동되기만 하면 디스크 큐 길이가 더 커져도 문제가 되지 않을 수 있습니다.
Avg. Disk Read Queue Length
지연된 읽기 요청의 평균 수입니다.
Avg. Disk Write Queue Length
지연된 쓰기 요청의 평균 수입니다.
Disk Reads/sec
초당 디스크 읽기 수입니다.
Disk Writes/sec
초당 디스크 쓰기 수입니다.
메모리
- Available Mbytes
할당할 수 있는 실제 메모리 양입니다. 메모리가 부족하면 페이지 파일이 과도하게 사용되고 초당 페이지 폴트 수가 늘어날 수 있습니다.
- Cache Faults/sec
이 카운터는 파일 시스템에서 페이지를 찾지만 찾을 수 없을 때 폴트가 발생하는 속도를 나타냅니다. 페이지를 메모리에서 찾을 수 있는 소프트 폴트이거나 페이지가 디스크에 있는 하드 폴트일 수 있습니다.
읽기 및 쓰기 작업을 위해 캐시를 사용하면 서버 성능에 크게 영향을 줄 수 있습니다. Async Fast Reads/sec 또는 Read Aheads/sec의 감소로 알 수 있는 캐시 오류 증가 상태를 모니터링해야 합니다.
- Pages/sec
이 카운터는 페이지를 디스크에서 읽어오거나 디스크에 작성하여 하드 페이지 폴트를 해결하는 속도를 보여 줍니다. 이 수가 증가하면 시스템 전체 성능에 문제가 있는 것입니다.
페이징 파일
- % Used 및 % Used Peak
스왑 파일이라고도 하는 서버 페이징 파일은 디스크에 "가상" 메모리 주소를 보유하고 있습니다. 프로세스를 중지한 후 요청된 "가상" 리소스를 디스크에서 메모리로 가져오는 동안 기다려야 할 경우, 페이지 폴트가 발생합니다. 실제 메모리가 부족한 경우 이러한 상황이 더 자주 발생합니다.
Nic
- Total Bytes/sec
네트워크 인터페이스 카드를 통해 데이터가 송수신되는 속도에 해당합니다. 이 속도가 40-50% 네트워크 용량을 초과하면 추가적인 조사가 필요할 수 있습니다. 보다 구체적으로 조사하려면 Bytes received/secBytes Sent/sec을 모니터링합니다.
프로세스
- Working Set
이 카운터는 지정된 프로세스에 대한 작업 집합의 현재 크기(바이트)를 나타냅니다. 이 메모리는 사용되고 있지 않더라도 프로세스용으로 예약되어 있습니다.
- % Processor Time
이 카운터는 지정된 프로세스에 사용되는 프로세서 시간 비율을 나타냅니다.
Thread Count (_Total)
현재 스레드 수입니다.
ASP.NET
Requests Total
서비스가 시작된 후 총 요청의 수입니다.
Requests Queued
SharePoint Server 2013은 HTTP를 통해 사용자 브라우저에서 렌더링되는 HTML 페이지의 구성 요소를 제공합니다. 이 카운터는 처리를 기다리는 요청 수를 나타냅니다.
Request Wait Time
가장 최근 요청이 처리를 위해 큐에서 대기한 시간(밀리초)입니다. 대기 이벤트 수가 늘어나면 페이지 렌더링 성능이 저하됩니다.
Requests Rejected
서버 리소스가 부족하여 처리할 수 없으므로 실행되지 못한 총 요청 수입니다. 이 카운터는 서버 사용량이 너무 많음을 나타내는 503 HTTP 상태 코드를 반환하는 요청 수를 나타냅니다.
Requests Executing (_Total)
현재 실행 중인 요청 수입니다.
Requests/Sec(_Total)
초당 실행된 요청 수입니다. 이 카운터는 응용 프로그램의 현재 처리량을 나타냅니다. 일정한 부하 상태에서 이 수를 특정 범위로 유지하여 다른 서버 작업(예: 가비지 수집, 캐시 정리 스레드, 외부 서버 도구 등)을 방지하는 것이 좋습니다.
.NET CLR 메모리
# Gen 0 Collections
응용 프로그램이 시작되고 0세대 개체(가장 최근에 생성되고 가장 최근에 할당된 개체)가 가비지 수집에 의해 회수되는 횟수를 표시합니다. 이 수는 2세대 수집의 횟수가 0세대 수집의 횟수를 크게 초과하지 않도록 하는 #Gen 0: #Gen 1: #Gen 2 비율(인수 2일 때 최적)만큼 유용합니다.
# Gen 1 Collections
응용 프로그램이 시작되고 1세대 개체가 가비지 수집에 의해 회수되는 횟수를 표시합니다.
# Gen 2 Collections
응용 프로그램이 시작되고 2세대 개체가 가비지 수집에 의해 회수되는 횟수를 표시합니다. 이 카운터는 2세대 가비지 수집(전체 가비지 수집이라고도 함)이 끝나면 커집니다.
% Time in GC
마지막 가비지 수집 주기 이래로 가비지 수집을 수행하는 데 소요된 시간 비율을 표시합니다. 이 카운터는 일반적으로 가비지 수집기가 응용 프로그램 대신 메모리를 수집하고 압축하기 위해 수행한 작업을 나타냅니다. 이 카운터는 모든 가비지 수집이 끝난 후에만 업데이트됩니다. 이 카운터는 평균이 아닙니다. 해당 값은 최근에 관찰된 값을 나타냅니다. 이 카운터는 정상적인 작동에서 5% 미만이어야 합니다.

SQL Server 카운터

다음 표에서는 SQL Server 개체 및 카운터에 대한 정보를 제공합니다.

개체 및 카운터 설명
일반 통계
이 개체는 현재 연결 수 및 SQL Server 인스턴스를 실행하는 컴퓨터에서 초당 연결 및 연결을 끊는 사용자 수와 같은 일반 서버 전체 활동을 모니터링하는 카운터를 제공합니다.
User Connections
이 카운터는 SQL Server 인스턴스의 사용자 연결 수를 보여 줍니다. 이 수가 기준선에서 500%까지 증가하면 성능이 저하될 수 있습니다.
데이터베이스
이 개체는 대량 복사 작업, 백업 및 복원 처리량, 트랜잭션 로그 작업을 모니터링하기 위한 카운터를 제공합니다. 트랜잭션 및 트랜잭션 로그를 모니터링하여 데이터베이스에서 발생하는 사용자 작업의 양과 트랜잭션 로그가 얼마나 채워지고 있는지 알 수 있습니다. 사용자 작업량은 데이터베이스 성능을 좌우하며 로그 크기, 잠금 및 복제에 영향을 줄 수 있습니다. 낮은 수준의 로그 작업을 모니터링하여 사용자 작업 및 리소스 사용량을 측정하면 성능 병목 현상을 파악하는 데 도움이 될 수 있습니다.
Transactions/sec
이 카운터는 지정된 데이터베이스 또는 초당 전체 SQL Server 인스턴스의 트랜잭션 수를 보여 줍니다. 이 값은 기준선을 만들고 문제를 해결하는 데 도움이 됩니다.
잠금
이 개체는 개별 리소스 종류에 대한 SQL Server 잠금에 대한 정보를 제공합니다.
Number of Deadlocks/sec
이 카운터는 초당 SQL Server 교착 상태 수를 보여 줍니다. 일반적으로는 0이 적절합니다.
Average Wait Time (ms)
이 카운터는 대기한 각 잠금 요청에 대한 평균 대기 시간을 나타냅니다.
Lock Wait Time (ms)
이 카운터는 마지막 1초 동안의 잠금에 대한 총 대기 시간을 나타냅니다.
Lock Waits/sec
이 카운터는 즉시 처리될 수 없어서 리소스를 대기해야 하는 초당 잠금 요청 수를 나타냅니다.
래치
이 개체는 래치라는 내부 SQL Server 리소스 잠금을 모니터링하는 카운터를 제공합니다. 래치를 모니터링하여 사용자 활동 및 리소스 사용량을 확인하면 성능 병목 현상을 파악하는 데 도움이 될 수 있습니다.
Average Latch Wait Time (ms)
이 카운터는 기다린 래치 요청에 대한 평균 래치 대기 시간을 나타냅니다.
Latch Waits/sec
이 카운터는 즉시 허용될 수 없는 초당 래치 요청 수를 나타냅니다.
SQL Statistics
이 개체는 컴파일 및 SQL Server 인스턴스로 전송된 요청 유형을 모니터링하는 카운터를 제공합니다. 쿼리 컴파일 및 다시 컴파일 수와 SQL Server 인스턴스에서 수신한 일괄 처리 수를 모니터링하면 SQL Server 사용자 쿼리를 얼마나 빠르게 처리하고 있는지, 쿼리 최적화 프로그램이 쿼리를 얼마나 효과적으로 처리하고 있는지를 알 수 있습니다.
SQL Compilations/sec
이 카운터는 컴파일 코드 경로가 초당 입력되는 횟수를 나타냅니다.
SQL Re-Compilations/sec
이 카운터는 문 재컴파일이 초당 트리거되는 횟수를 나타냅니다.
Plan Cache
이 개체는 SQL Server 메모리를 사용하여 저장 프로시저, 즉석 및 준비된 Transact-SQL 문 및 트리거와 같은 개체를 저장하는 방법을 모니터링하는 카운터를 제공합니다.
Cache Hit Ratio
이 카운터는 계획에 대한 캐시 적중 수와 캐시 조회 수 간의 비율을 나타냅니다.
Buffer Cache
이 개체는 SQL Server 메모리를 사용하여 데이터 페이지, 내부 데이터 구조 및 프로시저 캐시 및 카운터를 저장하여 데이터베이스 페이지를 읽고 쓰는 SQL Server 실제 I/O를 모니터링하는 방법을 모니터링하는 카운터를 제공합니다.
Buffer Cache Hit Ratio
이 카운터는 디스크에서 읽을 필요 없이 버퍼 캐시에서 찾을 수 있는 페이지 비율을 표시합니다. 비율은 SQL Server 인스턴스가 시작된 이후 캐시 조회의 총 수로 나눈 총 캐시 적중 횟수입니다.

병목 현상 제거

시스템 병목 현상은 사용자 트랜잭션 요청을 처리할 충분한 리소스가 없는 경합 지점을 나타냅니다. 이러한 지점은 실제 하드웨어, 운영 환경 또는 응용 프로그램 기반 환경일 수 있습니다. 병목 현상은 종종 비효율적인 사용자 지정 코드 또는 타사 솔루션 때문일 수 있으며 이러한 부분을 검토할 경우 하드웨어를 추가하는 경우보다 더 나은 결과를 얻을 수 있습니다. 병목 현상의 또 다른 일반적인 원인은 팜을 잘못 구성했거나 솔루션을 비효율적으로 구현(필요한 것보다 더 많은 리소스를 요구하는 방식으로 데이터 구성)한 경우입니다. 시스템 관리자는 성능은 지속적으로 모니터링하여 병목 현상을 관리하는 것이 좋습니다. 성능 문제가 확인되면 병목 현상을 제거할 수 있는 더 나은 해결 방법을 평가해야 합니다. SCOM과 같은 성능 카운터 및 기타 성능 모니터링 애플리케이션은 문제를 추적하고 분석하는 핵심 도구이므로 솔루션을 개발할 수 있습니다.

물리적 병목 현상 해결 방법

실제 병목 현상은 프로세서, 디스크, 메모리, 그리고 너무 많은 요청이 너무 적은 실제 리소스를 차지하려고 하는 네트워크 경합을 기준으로 합니다. 성능 모니터링 항목에 설명된 개체와 카운터는 성능 문제가 발생한 위치(예: 하드웨어 프로세서 또는 ASP.NET)를 나타냅니다. 병목 현상을 해결하려면 문제를 파악한 다음 성능 문제를 완화시키도록 변경 작업을 수행해야 합니다.

문제는 즉시 발생하는 일이 거의 없습니다. 일반적으로 성능 모니터 도구 또는 SCOM과 같은 보다 정교한 시스템을 사용하여 정기적으로 모니터링하는 경우 추적할 수 있는 점진적인 성능 저하가 있습니다. 이러한 두 옵션 모두에 대해 다양한 각도로 경고에 솔루션을 권고 텍스트 또는 스크립팅된 명령 형식으로 포함할 수 있습니다.

잘못된 구성, 비효율적인 사용자 지정 코드 또는 타사 솔루션 또는 비효율적인 솔루션 구현으로 인한 것이 아니라고 판단한 후에는 하드웨어 또는 시스템 구성을 변경하여 병목 현상 문제를 해결해야 할 수 있습니다. 다음 표에는 문제 임계값 및 가능한 해결 옵션이 나와 있습니다. 일부 옵션에는 제안되는 하드웨어 업그레이드나 수정 작업이 함께 제공됩니다.

개체 및 카운터 문제 해결 옵션
프로세서
Processor - % Processor Time
75-85% 초과
프로세서를 업그레이드합니다.
프로세서 수를 늘립니다.
서버를 더 추가합니다.
디스크
Avg. Disk Queue Length
점차적으로 증가하며, 시스템은 안정적인 상태가 아니고 큐는 백업 중입니다.
디스크 수 또는 속도를 늘립니다.
배열 구성을 줄로 변경합니다.
일부 데이터를 대체 서버로 이동합니다.
% Idle Time
90% 미만
디스크 수를 늘립니다.
데이터를 대체 디스크 또는 서버로 이동합니다.
% Free Space
30% 미만
디스크 수를 늘립니다.
데이터를 대체 디스크 또는 서버로 이동합니다.
메모리
Available Mbytes
웹 서버에서 2GB 미만
메모리를 추가합니다.
>[! 참고]> SQL Server 사용 가능한 메모리는 설계상 낮으며 항상 문제를 나타내는 것은 아닙니다.
Cache Faults/sec
1 초과
메모리를 추가합니다.
가능한 경우 캐시 속도 또는 크기를 늘립니다.
데이터를 대체 디스크 또는 서버로 이동합니다.
Pages/sec
10 초과
메모리를 추가합니다.
페이징 파일
% Used 및 % Used Peak
스왑 파일이라고도 하는 서버 페이징 파일은 디스크에 "가상" 메모리 주소를 보유하고 있습니다. 프로세스를 중지한 후 요청된 "가상" 리소스를 디스크에서 메모리로 가져오는 동안 기다려야 할 경우, 페이지 폴트가 발생합니다. 실제 메모리가 부적절한 경우 이러한 상황이 더 자주 발생합니다.
메모리를 추가합니다.
Nic
Total Bytes/sec
네트워크 용량의 40-50% 초과. 네트워크 인터페이스 카드를 통해 데이터가 송수신되는 속도에 해당합니다.
Bytes received/sec 및 Bytes Sent/sec를 모니터링하여 좀 더 조사합니다.
네트워크 인터페이스 카드 속도를 다시 평가합니다.
메모리 버퍼 수, 크기 및 사용량을 확인합니다.
프로세스
Working Set
총 메모리의 80% 초과
메모리를 추가합니다.
% Processor Time
75-85% 초과
프로세서 수를 늘립니다.
작업량을 추가 서버로 다시 분산합니다.
ASP.NET
Application Pool Recycles
하루에 몇 번 정도 간헐적으로 속도가 느려집니다.
하루 동안 응용 프로그램 풀을 불필요하게 자동으로 재순환하는 설정을 구현하지 않았는지 확인합니다.
Requests Queued
수백 개 또는 수천 개의 요청이 큐에 대기되어 있습니다.
추가 웹 서버를 구현합니다.
이 카운터의 기본 최대값은 5,000이며 Machine.config 파일에서 이 설정을 변경할 수 있습니다.
Request Wait Time
대기 이벤트 수가 증가할수록 페이지 렌더링 성능이 저하됩니다.
추가 웹 서버를 구현합니다.
Requests Rejected
0 초과
추가 웹 서버를 구현합니다.

참고 항목

개념

SharePoint Server 2013의 성능 테스트

SharePoint Server 2013에 대한 용량 계획

기타 리소스

Capacity management and sizing overview for SharePoint Server 2013