IT STORYs

Windows Perfomance , 카운터 의미 본문

Windows Server

Windows Perfomance , 카운터 의미

295~ 2009. 9. 4. 12:00

시스템튜닝

1. 성능 측정하기
  • 사용자는 쿼리나 작업이 완료되는 데 걸리는 시간을 가리키는 트랜잭션 응답시간을 관찰함으로써 시스템의 전체 성능을 측정할 수 있다.
  • 각 실행마다 다른 응답 시간으로 완료되는 트랜잭션이 있을 수 있다. > SQL Server 블로킹 이슈나 불충분한 하드웨어와 같은 성능문제를 의미할 수 있고 트랜잭션이 실행된 시간과 관련이 있을 수 도 있다.
  • 성능을 측정하는 다른 방법은 단순히 일정한 주기로 시스템을 모니터링 하는 것 이다.
  • 하드웨어 병목이 있다고 결론 내리기 전에 SQL 문, 저장 프로시저, 응용 프로그램 코드, 데이터베이스 레이아웃, 인덱스를 조사해야 한다. > 시스템을 튜닝할 때 시스템의 어느 한 부분만 보아서는 안된다는 것이다.
  • 시스템 튜닝의 일반적인 규칙은 어떤 변경 사항이 영향을 미쳤는지 파악할 수 있도록 한번에 한가지만 변경 하는 것.
2. 하드웨어로 서버 튜닝하기.
  • 하드웨어튜닝 : 시스템에 있는 하드웨어의 양, 크기 및 속도를 튜닝함을 의미한다. 크게 프로셋, 디스크, 메모리를 튜닝한다
  • 프로세서 아키텍쳐
  • L1 캐시: CPU 내에 위치한 메모리 부분이므로 CPU 가  빨리 엑세스 할 수 있다. CPU 가 엑세스 할 수 있는 가장 빠른 메모리

  • L2 캐시: 명령어를 가지기 위한 추가공간을 제공 한다.

  • 데이터, 명령어 필요 > L1 캐시 탐색 > L2 캐시 탐색 > 시스템 메모리 탐색

  • 프로세서 튜닝 - CPU 교체
  • CPU 병목이 발생하는지 알아보는 방법 : 작업이 일어나는 동안 시스템의 CPU 활동을 모니터링 > 부하가 많이 걸릴 때 시스템을 모니터링 한다.

  • Processor 개체, % Processor Time 카운터 : CPU 효율성 모니터링

  • CPU 병목 : 프로세서 사용률이 지속적으로 80% 이상에 머무르거나 피크가 자주 80% 수준에 이르는 경우

  • 디스크 서브시스템 튜닝하기 - 시스템에 발생하는 입출력 요청수를 효과적이고 빠르게 처리하기에 충분한 디스크 속도와 수를 결정 하는 것.
  • 모든 디스크 드라이브는 데이터의 읽기 및 쓰기 처리 속도를 결정하는 일정한 물리적 특징을 가진다.

  • 디스크 자체를 튜닝하는 것이 아니고 I/O 요구 사항을 만족하기 위해 필요한 디스크 타입과 수를 구성함으로써 디스크 서브시스템을 튜닝하는것

  • 디스크 I/O 용량 : 입출력 큐에서 대기하는 입출력 요청 수가 너무 커져 대기 시간이 급속하게 길어지고 전체 성능을 저하시키기 이전에 디스크가 수행할 수 있는 최대 입출력 수.

  • 디스크 I/O 모니터링 하기
  • 윈도우2000 의 경우 diskperf 라는 응용 프로그램 사용

  • Disk Reads/sec : 초당 읽기 수행된 작업 횟수

  • Disk Writes/sec : 초당 쓰기 수행된 작업 횟수

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

  • Avg.Disk Sec/Read : 샘플 간격 동안 선택된 디스크에서 데이터 읽기에 소요된 평균 시간(초)

  • Avg.Disk Sec/Write : 샘플 간격 동안 선택된 디스크에서 데이터 쓰기에 소요된 평균 시간(초)

  • 디스크 병목 찾기 : 8개의 디스크 드라이브로 구성도니 RAID 10 어레이 시스템, 초당 100 의 임의 I/O 발생 처리.

  • Disk 2

Disk Reads/sec : 90

Disk Writes/sec : 55

Avg.Disk Queue Length :  1-2

Avg.Disk Sec/Read : 0.009

Avg.Disk Sec/Write : 0.007

디스크당 I/O 수 = { 읽기 + ( 2 * 쓰기 ) }  / 디스크 수

{ 90 + (2 * 55 ) } / 8  = 25 > 디스크당 물리적 I/O 수

데이터 병목 없음

  • Disk 4

Disk Reads/sec : 420

Disk Writes/sec : 300

Avg.Disk Queue Length :  43

Avg.Disk Sec/Read : 0.032

Avg.Disk Sec/Write : 0.025

{ 420 + (2 * 300 ) } / 8  = 127.5 > 디스크당 물리적 I/O 수 > 디스크 병목 발생

디스크 병목 감소를 위해 발생하는 I/O 수를 디스크당 I/O 용량으로 나눠 필요한 디스크의 최소 개수를 얻는다.

{ 420 + (2 * 300 ) } = 1020 I/O

1020 / 100 = 10.2  > 12개의 디스크로 변경

  • 메모리 튜닝하기
  • 윈도우2000 의 경우 성능 콘솔에 있는 시스템 모니터에서 다음 개체와 카운터를 모니터링 해야 한다.

  • Memory 개체, Available MBytes 카운터

컴퓨터에서 실행되는 프로세스가 사용할 수 있는 실제 메모리의 양을 메가바이트(1,048,576 바이트) 로 표시

이 값이 매우 낮으면 사용할 수 있는 물리적 메모리가 거의 없다는 것이나 응용 프로그램이 메모리 사용을 마쳤을 때 제대로 해제하지 않는다는 것을 의미할 수 도 있다. 시스템에서 사용 가능한 메모리가 특정 임계값 밑으로 떨어지면, 윈도우 2000은 메모리를 해제하기 위해 워킹셋으로부터 페이지를 잘라 낸다.

  • Memory 개체, Pages/Sec

메모리에서 디스크로 페이지 아웃 되거나 디스크에서 메모리로 페이지 인 된 총당 페이지 수

  • SQL Server : Memory Manager 개체, Total Server Memory(KB) 카운터

SQL Server 가 할당한 전체 메모리 양을 KB 단위로 표시한 것.

SQL Server 가 동적 메모리 할당으로 구성되어 있다면 이 값은 SQL Server 가 메모리를 할당 및 해제하면서 지속적으로 변한다.

초당발생하는 페이지가 많으면 > SQL Server에 너무 많은 메모리를 할당해서 다른 응용프로그램이 메모리가 부족하여 페이징이 발생할 수 있음. > max server memory 값을 줄임으로써 SQL Server 메모리를 줄여 준다.

  • SQL Server : Buffer Manager 개체, Free Pages 카운터

SQL Server 가 사용할 수 있는 페이지 수.

카운터 수가 지속적으로 5MB 이하일 경우 물리적 메모리가 부족함으로 간주

SQL Server 가 5MB Free Pages 값을 유지 하지 못하면 물리적 메모리가 부족하거나 너무 많은 메모리를 할당하였음을 의미

  • SQL Server : Buffer Manager 개체, Buffer Cache Hit Ratio 카운터

디스크로부터 읽어 오지 않고 캐시로부터발견된 페이지 % 값.

90% 이상의 캐시 적중률값을 지원할 만큼 버퍼 풀이 크도록 SQL Server에 많은 전용 메모리를 제공해야 한다. > 90% 이상이 되지 않을 시 물리 메모리 추가.

  • Process 개체, Working Set 카운터

프로세스 내의 스레드가 최근에 사용한 적이 있는 메모리 바이트 수.

  • Process 개체, Page Faults/sec 카운터

프로세스가 Working Set 에 있지 않는 메모리 페이지를 참조한 수

어느 프로세스가 페이징을 발생시키는지 확인 가능

3. 데이터베이스 레이아웃 최적화하기
  • 데이터베이스 레이아웃에 대한 두 가지 핵심 지침
  • 순차적으로 엑세스되는 파일은 전용 디스크로 분리

  • 다중 디스크에 데이터 파일을 분산하여 병령 I/O 를 지원하도록 하는 것.

  • 임의 접근되는 데이터 파일을 순차 접근되는 로그 파일과 동일한 디스크에 위치시키면 순차적 엑세스가 되지 않는다.
  • 디스크 읽기/쓰기 헤드가 임의 방식으로 플래터를 탐색하도록 하기 때문

  • 더 많은 병렬 디스크 엑세스를 허용하도록 가능한 많은 디스크 드라이브에 데이터를 분산시켜야 한다.
  • 파일그룹은 주파일 그룹과는 별도로 파일을 분리시키거나 파일들을 논리적으로 그룹화 할 수 있는 방법을 제공 한다.
  • 사용자 데이터베이스를 SQL Server 시스템 테입르과 같은 디스크에 두지 않으려면 사요자 데이터 베이스 테이블과 인덱스를 위치시킬 사용자 정의 파일 그룹을 생성해야 한다.
  • 일반적으로 시스템 테이블로부터 사용자 테이블과 인덱스를 분리하는 것이 권장 된다.
4. SQL Server 구성옵션
  • AWE Enabled
  • 대용량 메모리 지원을 위한 옵션

  • AWE 가 활성화 되면 SQL Server 가 시작할 때 확보할 수 있는 모든 메모리를 확보하고 서버가 중지될 때까지 그 페이지를 유지 한다.

  • 동적으로 메모리를 관리하지 않고 메모리를 페이지 아웃하지도 않는다.

  • Lightweight Pooling
  • 파이버를 사용할 수 있도록 하는 옵션

  • 4개 이상의 프로세서를 가진 시스템에 가장 필요하며 기본값은 비 활성화

  • Locks
  • 사용할 수 있는 잠금의 최대수를 설정.

  • SQL Server 가 잠금을 위해 사용할 수 있는 메모리의 최대량은 전체 메모리의 40%

  • 잠금 옵션을 기본값으로 남겨두고 SQL Server 가 필요할 때마다 잠금을 사용할 수 있도록 하는 것을 권장한다.

  • Max Server Memory
  • SQL Server 메모리 풀에 할당하는 최대량 (MB)

  • Min Server Memory
  • SQL Server 메모리 풀에 할당될 최소 메모리를 명시

  • 기본값은 0 으로 권장한다.

  • SQL Server 가 다른 응용 프로그램에 사용할 수 있도록 많은 양의 메모리는 남겨 두는 시스템에서 유용

  • Set Working Set Size
  • SQL Server 에 할당된 메모리가 다른 응용 프로그램에 사용되기 위해 페이지 아웃 되지 않도록 명시.

  • 옵션을 1로 설정(활성화) 시켰을 경우 SQL Server 가 할당한 메모리는 물리적 메모리이며 다른 응용 프로그램에 의해 더욱 효율적으로 사용될 수 있을지라도 Swap Out 하지 않는다.

  • Recovery Interval
  • 문제가 발생한 경우에 시스템을 복구하는 데 걸리는 최대 시간(단위 분)

  • 옵션을 설정 하면 얼마나 자주 checkpoint 가 수행되어야 하는지를 결정 한다.

  • User Connections
  • 동시사용자 연결의 최대수를 명시

  • 최대값은 32767

다음 : SQL Ser2000의 새로운기능과 성능향상

이전 : I/O 서브시스템과 RAID 이해하기

Comments