Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

성능 모니터링좀 갈챠주세요..

532 views
Skip to first unread message

불량깨뮈

unread,
Jul 31, 2003, 8:39:43 AM7/31/03
to
asp가 아니라 2000쪽 질문이네요.. 급한 나머지 여기에 올리게됐습니다.

동시접속자 수와 그때 디비 부하, 웹서버 부하를 측정하려고 합니다.
2000 관리도구의 성능 툴을 이용하면 된다고 하는데요.. 성능개체, 카운터,
인스턴트 등 뭐가 뭔지 모르겠습니다.. 비스므리한 것들이 많이도 있네요.. 제가
알고자 하는 값은 어떤걸 이용하면 되는지요..?
그리고 마지막, 평균, 최소, 최대 값들이 나오는데 이것의 단위가 어떻게
되는건지, 기간이 1:40이라고 되어있는데 이것은 무엇을 뜻하는건지 궁금합니다.


Microsoft Developer Support

unread,
Jul 31, 2003, 11:27:26 PM7/31/03
to


안녕하십니까
마이크로소프트 기술지원부 입니다.

말씀 하신대로 이 문제는 SERVER 측에서 다루어 져야할 문제로 보이는 군요...^^


먼저 Windows2000 Support Tools 나 Windows2000 Resource Kit 의 많은 도구들이
Memory Management 를 위한 도구들로 사용되어 지고 있지만 실제로 서로 다른
정보를 표시하거나 다른 용어로 설명되어 있어 어려운 부분이 실제로 있습니다.

메모리 관리나 메모리 튜닝은 실제론 주로 간편한 메모리 추가와 같은 방법으로
이루어지고 있습니다.
튜닝을 위해 드는 시간적인 비용이나 인력이 메모리를 추가하는 것보다
저렴하다고 할 수는 없는 경우가 더 많겠지요..

그렇지만 어떠한 Process 에서 메모리를 지속적으로 요구해서(메모리 누수 :
Memory Leak) 메모리가 부족한 경우라면
성능모니터링을 사용하여
Working Set Counter 를 사용해 프로세스의 메모리 사용량을 추적해볼수있습니다.

추적해서 어떤 Process가 문제를 일으켰다면..그 프로세스가 사용하는 DLL
파일목록 & 버전정보
심지어는 메모리 덤프를 인위적으로 발생시켜 덤프 분석을 통해 문제를
해결하기도 합니다.
메모리 덤프 분석의 경우 유료로 분석해드리며 시간도 다소 걸립니다.그리고 실제
분석 후 디버그에 성공한 경우는 약 80% 정도로 알고 있습니다.


성능 측정시 참조하셔야 할 카운터 입니다.

개체: Memory : Available Bytes
: 이 값이 4MB이하로 지속되면 과도한 Paging 이 발생함을 의미합니다.
Available Bytes 의 값이 낮을때 Memory => Page/Sec 의 값도 같이
확인하셔야 합니다.
이 카운터들은 Page가 Disk 에 읽고 씌여지는 비율을 보여주므로
전반적인 시스템 지연 일으키는 오류를 찾는데 중요한 단서가 될
수 있습니다.

Cache Bytes : 사용가능한 메모리의 50%까지 사용..I/O 작업이 이루어질때마다
Dynamic 하게 Size 변경됨

Committed Bytes : 실제 운용가능한 가상메모리의 양 ..실제 메모리의 75%를
넘으면 않됩니다.
양이 실제 메모리보다 많으면 병목현상입니다.

* 실제 사용가능한 메모리의 양이 줄면 Committed bytes 의 값이 늘어납니다.

Page Faults/sec : 시스템의 메모리 영역에서 필요한 데이터를 찾지 못했을 경우
/ sec = Page Miss

Page Reads/sec : 이 값이 작으면 서버가 요청에 빠르게 응답.. 상대적인
값입니다.

Pages Input/sec : 전체 Page Miss를 처리하는 속도

Pages/sec : 대부분의 서버에서 이 값은 5 이상의 값을 보여줍니다. 이 5 이상의
값은 페이징이 너무 과도하게 일어났슴을 의미합니다. 이 카운터는 페이지 오류를
해결하기 위해 페이지가 디스크에서 다시 물리적인 메모리로 읽히거나 디스크에
기록해서 메모리(RAM)을 해제하는 현재 속도를 기록합니다. (X86 시스템 : 4KB)

위에서 5이상의 값이라고 했으나 이것은 아주 이상적인 조건을 이야기하는 것으로
실제로 초당 20 이상의 페이지 값은 페이징이 많다는 것을 의미하므로 이때는
메모리를 추가 해야함을 의미합니다.

예를 들이 시스템에 설치된 메모리가 2GB이고 메모리 사용량 측정시 1GB가 그냥
놀고 있는 상황인데..
Page/sec 는 20이상 나올 수 있습니다. (모든 것은 상대적이니까요..)

왜 메모리가 남는데도 활용을 하지 못하고 페이징을 많이 발생시켜 시스템의
속도를 다운시키는가?

이때는 시스템에 설정된 Page File의 크기를 확인합니다.

NT4.0 의 경우 Paging File 은 실제 물리적인 메모리 + 11 MB 이고
Win2k 인 경우 Paging File 은 실제 물리적인 메모리의 150% 가 기본값입니다.

메모리 누수 현상(특정한 Process 가 자기가 쓰던 메모리를 반환하지 않거나
Device Driver 가 Application Bug 로 발생).
Memory : Pool Nonpaged Bytes : OS가 시스템 컴포넌트들을 실행할 때 사용할 수
없는 메모리 공간을 의미합니다.

Process : Working Set Counter : Working Set 의 사이즈가 늘어나면 메모리
누수가 진행됨을 의미합니다.
* Process : Virtual Bytes & Working Set : 이 값이 동시에 늘어나면 메모리
누수가 진행됨을 의미합니다.
메모리 누수를 측정할 때 Processor : %Processor Time 도 같이 측정합니다.
시스템에 변화가 있는지 없는지 확인을 위해..

Working Set : 어떤 Application 이 시작되었을때 물리적인 RAM 으로부터
할당받은 공간을 의미합니다.
Non-paged pool : 이것은 Disk 에 Page 되지않은 Pool 입니다. 이 곳은 OS 가
중요한 Component 를 위해 메모리를 예약해둔 공간입니다. Device Driver나
극도로 빠른 Access 가 요구되는 Application 을 위해...

단일 프로세스의 성능 카운터에 대한 Windows2000 주소 공간 사용
Process : Virtual Bytes : 프로세스 주소 공간의 총 크기

Process : Private Bytes : 비공개(공유된) 커밋된 주소 공간의 크기 (Process :
Page File Bytes 와 같음)

개체:
Paging File
_Total : 페이징 파일의 크기 및 사용량
% Usage

개체: PhysicalDisk
_Total
% Disk Time


개체: Process
Private Bytes : 다른 메모리와 공유할 수 없는 메모리이며 이 메모리의 양으로
메모리 누수를 확인
: DLLHOST inetinfo 격리 수준에 따라 DLLHOST 나 inetinfo 를 모니터링합니다.


개체: Processor
_Total
% Processor Time : 평균적으로 75% 이하이어야 합니다.

개체: System
Processor Queue Length : 실행을 위해서 계속 대기하는 쓰레드의 숫자 입니다.
현재 Processor Queoe 에서
처리되길 기다리고 있는 Thread 의 숫자..
프로세서의 부하를 판단하는데
사용합니다.
지속적으로 2 이상이면 Processor
아주 혼잡스럽게(직역하다보니) 작동됨을 의미합니다.
이때는 Processor 를 추가하여 L2
Cache Throughput 을 증가해줍니다.
만약 이 카운터가 항상 0이하 이면
thread 카운터를 모니터링 해야합니다.

* Processor Time 의 80% 이상이라하더라도 Processor Queue Length 가 적다면
현재 Processor 은 아주 효율적으로 작동한다고 이야기 할 수도 있습니다.
상대적입니다. (대기하고 있는 대기열없이 80% 로 작동한다면 아주
효율적이겠죠..)

System Calls : 초당 1000개가 넘지 않는 범위내에서 평균적으로 유지되어야
적당합니다.

Processor : Interrupts/sec : 초당 처리하는 s/w 또는 h/w 의 interrupt를
의미합니다.
이 수치가 높을수록 프로세서가
interrupt를 처리하는 시간이 많습니다.
* Interrupts Time : Processor 가 하나의 Process 를 처리하는데 드는 시간..

* Processor : Interrupts/sec > System Calls
Interrupts/sec 의 값이 System Calls보다 크면 시스템에 문제가 있슴를
잠정적으로 간주하셔도 됩니다.
또한 Interrupts/sec 와 System Calls 은 비슷한 파형(통계)내야합니다.
상이하게 다를경우 System Fail 이나 또는 System 에 문제가 있을 수
있습니다.

개체 : Physical Disk
Physical Disk :%Disk Time : 90보다 낮아야합니다.
Physical Disk :avg.Disk Queue Length : 2보다 낮아야합니다.
Physical Disk : avg Disk bytes/transfer : 현재 디스크에 쓰고 읽혀지는 블럭
사이즈의 평균 값 입니다.
Physical Disk : avg Disk transfer/s : Disk I/O 가 끝날때까지의 시간입니다.
최적의 값은 13 - 17 ms 보다 적을때 입니다.

* Disk I/O 의 작업성격 파악
- % Disk Time - Data 를 읽고 쓰는데 소요되는 시간
- avg. Disk bytes / Transfer : Disk에 전솽되는 평균 Byte
- avg. Disk bytes / Writes : Write 된 Byte
- Disk read / sec : 초당 처리하는 read
- Disk transfer / sec
- Disk writes / sec

Disk Tech..
- Queue Time : I/O 작업이 Disk 에서 대기하는 상태. Queue time 이
적을수록 Disk 응답시간이 빠름.

Network Segment : % Networking Utiliztion : 현재 사용되는 네트웍 대역폭을
%로 표시합니다.
60% 이상이면 병목현상입니다.

Disk Technology
Queue Time : I/O 요구작업이 Disk에서 대기하는 상태입니다. Queue Time이
적을수록 Disk의 응답시긴은 빠릅니다.


Monitoring Processor Performance
- Processor Subsystem 모니터링
- I/O related processor utilization 모니터링
- Processor-intensive process 확인
- Adjusting processor affinity

Monitoring Memory Performance
- 메모리 소모가 많은 작업 성격 구별
- Memory leak 확인
- Paging File 사용현황 확인

위의 내용은 Compaq Windows2000 Intergration & Performance 자료를 토대로
작성되었습니다.

감사합니다.
termi9424

ps // 위의 문서는 Server Team 에서 제공 해 주셨습니다...^^


"불량깨뮈" <buks...@daum.net> wrote in message
news:#Br2WC2V...@TK2MSFTNGP12.phx.gbl...

불량깨뮈

unread,
Jul 31, 2003, 11:45:28 PM7/31/03
to

[MVP]neovis

unread,
Aug 1, 2003, 3:59:16 AM8/1/03
to
실제 ASP를 사용하는 경우에 필요한 요소를 말씀드리겠습니다.

1. 프로세서 사용량
Processor의 %Processor Time - 서버의 프로세서 사용량을 나타내며 보통 20~80%
정도의 값을 유지하여야 합니다. 넘어간다면 부하가 몰리고 있는 것이죠.

2. 메모리 사용량
Memory의 Available Bytes - 모니터링을 하는 동안에 지속적으로 위의 값이
줄어든다면 메모리 누수 현상이 일어나고 있는 것입니다. 이때에는 작업관리자의
모니터링 툴에서 메모리를 차지하는 IIS나 DLLHost쪽의 메모리 증가를 확인해
보면서 어느쪽에서 누수 현상이 일어나는지 확인하세요. 그리고 메모리 사용량은
기본 그래프에서는 나오지 않으니 그래프의 세로값을 한 1000정도 잡아야
출력됩니다.

3. 동시 접속자
실제 ASP를 운영하는 웹 서버에서 중요한 수치인데 Web Service의 Current
Anonymous Users를 추가하면 됩니다.

4. 웹 서버 처리 능력
Active Server Page의 Requests Queued와 Current ISAPI Extension Requests
입니다. ASP의 요청을 처리하기 위해 대기 중인 수치인데 이 수치가 높으면
안좋습니다. 한 5이하로 유지가 되어야 합니다. ISAPI쪽은 ADO라던지 ASP의
콤포넌트들의 요청 대기수치입니다. 이 부분도 동시접속자 수의 1% 수치가
넘어가면 안좋습니다.

대략 이정도로 1차로 확인하셔서 어느쪽이 문제인지 살펴보세요.

^^


0 new messages