SAN 스토리지 성능 모니터

  • SAN 스토리지를 사용하는 경우 성능 카운터를 어떻게 모니터링 할까?

 

  • Version : SQL Server 2005, 2008, 2008R2, 2012

 

SAN 스토리지를 사용하는 경우 성능 모니터(performance counter)에 나타나는 숫자를 믿을 수 있을까?

 

이번 포스트는 sqlmag.com에 게시된 내용으로 필자가 읽고 이해한 내용을 바탕으로 정리하였으며 번역의 오류나 기술적 오류가 있음을 미리 알려둔다.

 

SAN 스토리지를 사용하는 경우 카운터의 일부는 신뢰할 수 없다. 수 많은 카운터 중에 어떤 값이 신뢰할 수 있는 값이며 어떤 값이 신뢰 할 수 없는 값인지 구분 할 줄 아는 것은 매우 중요하다.

 

다음 목록을 통하여 SAN 스토리지 사용시 신뢰할 수 있는 값과 신뢰 할 수 없는 값을 구분하여 보자.

 

개인적인 생각으로는 Windows에서 제공하는 성능 모니터의 값을 그대로 믿을 수는 없을 듯 하다. 아래의 사례를 바탕으로 이해해 보아도 결국엔 판단은 사용자의 몫이라는 생각이 든다. 스토리지 제공업체에서 제공하는 모니터링을 최대한 활용하는 것이 좋을 듯 하다.

 

 

다음 카운터의 목록은 신뢰할 수 있는 카운터 목록이다. 하지만 일부 카운터는 스핀들이 아닌 캐시 값을 나타낼 수 있다는 것을 기억하자.

 

카운터

설명

Avg. Disk Bytes/Read

읽기 작업 동안 디스크로 전송되는 평균 바이트 수

Avg. Disk Bytes/Transfer

읽기 또는 쓰기 작업 동안 디스크로(또는 디스크에서) 전송되는 평균 바이트 수

Avg. Disk Bytes/Write

쓰기 작업 동안 디스크로 전송되는 평균 바이트 수

Avg. Disk sec/Read

디스크에서 데이터를 읽은 평균 시간(초)

Avg. Disk sec/Transfer

평균 디스크 전송 시간(초)

Avg. Disk sec/Write

디스크로 데이터를 쓴 평균 시간(초)

Disk Bytes/sec

쓰기 또는 읽기 작업 동안 디스크로(또는 디스크에서) 전송되는 바이트 수

Disk Read Bytes/sec

읽기 작업 동안 디스크에서 전송되는 바이트 수

Disk Reads/sec

디스크에서의 읽기 작업 횟수

Disk Transfers/sec

디스크에서 읽기 또는 쓰기 작업 횟수

Disk Write Bytes/sec

쓰기 작업 동안 디스크로 전송되는 바이트 수

Disk Writes/sec

디스크에서의 쓰기 작업 횟수

Split IO/Sec

디스크의 입출력이 여러 개의 입출력으로 분할된 비율. (분할된 입출력은 하나의 입출력 보다 큰 크기의 데이터를 요청하거나 디스크가 조각나 있는 경우 발생)

 

 

다음 카운터의 목록은 신뢰할 수 있는 카운터 목록이다. 하지만 Windows 무엇을 보느냐에 따라 디스크 서브시스템의 값을 다르게 나타낼 수 도 있다.

카운터

설명

Avg. Disk Queue Length

샘플 간격 동안 선택된 디스크에 대해 큐에 있는 읽기 및 쓰기 요청의 평균 수

Avg. Disk Read Queue Length

샘플 간격 동안 선택된 디스크에 대해 큐에 있는 읽기 요청의 평균 수

Avg. Disk Write Queue Length

샘플 간격 동안 선택된 디스크에 대해 큐에 있는 쓰기 요청의 평균 수

Current Disk Queue Length

현재 디스크에서 기다리는 요청의 수. 서비스 중인 요청의 수도 포함됨.

 

 

다음은 신뢰 할 수 없는 카운터의 목록이다.

카운터

설명

% Disk Read Time

디스크 드라이브가 읽기 요청을 처리하는데 사용된 시간의 백분율

% Disk Time

디스크 드라이브가 읽기 또는 쓰기 요청을 처리하는데 사용된 시간의 백분율

% Disk Write Time

디스크 드라이브가 쓰기 요청을 처리하는데 사용된 시간의 백분율

% Idle Time

샘플 간격 동안 디스크가 유휴 상태였던 시간의 백분율을 나타냄.

 

 

아래 그림은 필자의 드라이브 구성으로 물리적인 디스크를 C,D의 논리적인 드라이브로 나누어 사용하고 4개의 물리 디스크를 RAID 0 으로 묶어 하나의 디스크처럼 사용하였다.

 

필자의 경험으로는 일반적으로 서버에 장착되는 인터널 디스크(내부 디스크)의 경우에는 Windows 성능 모니터를 통해 측정이 가능하였으나 이 또한 RAID 구성에 따라서 다르게 해석되어야 했다. DAS 또는 SAN 같은 경우에는 컨트롤러의 캐시에 따른 영향이 있었으므로 성능 모니터에서 정확히 측정하기 어려운 부분이 있었다. SAN의 경우에는 특성상 공유 디스크로 여러 대의 서버가 같이 사용하는 경우가 많으므로 특히 오차가 더욱 심한 것을 느낄 수 있었다.

 

따라서 스토리지 업체에서 제공하는 모니터링 솔루션을 이용한 모니터링이 가장 정확하지 않을 까 생각한다. (스토리지 업체에서 제공하는 모니터링은 컨트롤러와 직접 통신하여 실제 성능을 보여주는 듯 하였다.)

 

[참고자료]

http://sqlmag.com/blog/what-perfmon-counters-can-i-trust-when-using-san-disks

 

 



강성욱 / jevida@naver.com
Microsoft SQL Server MVP
Blog : http://sqlmvp.kr
Facebook : http://facebook.com/sqlmvp

No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 38045
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 20666
1854 SQL Server 가상화 팁 jevida(강성욱) 2016.10.08 2091
1853 Net Framework 4.0과 SQL Server 2008 설치 오류 jevida(강성욱) 2016.10.08 1906
1852 SQL Server 인덱스 튜닝 접근 jevida(강성욱) 2016.10.07 3554
1851 Sys.dm_os_performance_counter 해석하기 jevida(강성욱) 2016.10.07 2583
1850 프로파일러를 이용한 중첩된 프로시저 디버깅 jevida(강성욱) 2016.10.07 1655
» SAN 스토리지 성능 모니터 - SAN 스토리지를 사용하는 경우 성능 카운터를 어떻게 모니터링 할까? jevida(강성욱) 2016.10.07 1848
1848 저장된 Plan Cache 확인 및 활용 jevida(강성욱) 2016.10.07 4821
1847 Xp_fixeddrives 세부 정보 확인하기 jevida(강성욱) 2016.10.07 2012
1846 강제 매개변수화로 인한 성능 저하 사례 jevida(강성욱) 2016.10.07 1653
1845 파라메터 스니핑과 데이터 스큐 jevida(강성욱) 2016.10.07 1581
1844 DBCC CHECKDB 버그 및 해결 방법 jevida(강성욱) 2016.10.07 1621
1843 NOLOCK HINT 이해 jevida(강성욱) 2016.10.07 7995
1842 인증으로부터 분리된 사용자 방지 jevida(강성욱) 2016.10.07 3192
1841 비관리자 계정으로 쿼리 계획 보기 jevida(강성욱) 2016.10.07 1293
1840 SSMS 폴링 간격 구성 jevida(강성욱) 2016.10.07 1851
1839 Deadlock 감지하여 알림하기 jevida(강성욱) 2016.10.07 1902
1838 Suspect_pages 테이블 이해 및 관리 jevida(강성욱) 2016.10.07 1444
1837 SSRS SocketException jevida(강성욱) 2016.10.07 1532
1836 파티션 분할 시 I/O 최소화 하기 jevida(강성욱) 2016.10.07 1939
1835 대량 BCP 작업 시 발생하는 오류 (665, 1450, 33) jevida(강성욱) 2016.10.07 1769





XE Login