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
2013-09-17 / 강성욱 / http://sqlmvp.kr
'SQL Server > SQL Server Tip' 카테고리의 다른 글
Sys.dm_os_performance_counter 해석하기 (0) | 2015.07.22 |
---|---|
프로파일러를 이용한 중첩된 프로시저 디버깅 (0) | 2015.07.22 |
저장된 Plan Cache 확인 및 활용 (0) | 2015.07.22 |
Xp_fixeddrives 세부 정보 확인하기 (0) | 2015.07.22 |
강제 매개변수화로 인한 성능 저하 사례 (0) | 2015.07.22 |