류짱:Beyond MySelf

IIS7/7.5 백업 및 복원

IIS7 Configuration 파일 위치
\windows\system32\inetsrv\config

iis7 백업 & 복원 방법
1. Windows backup tool을 이용한 \windows\system32\inetsrv\config 폴더 백업 및 복원
http://ryuchan.kr/315

2. appcmd를 이용한 백업 복원
백업
%windir%\system32\inetsrv\appcmd.exe add backup "My Backup Name"
복원
%windir%\system32\inetsrv\appcmd.exe restore backup "My Backup Name"
삭제
%windir%\system32\inetsrv\appcmd.exe delete backup "My Backup Name"
백업 리스트
%windir%\system32\inetsrv\appcmd.exe list backup

[참고 자료]
How to backup/restore IIS7 configuration
http://blogs.iis.net/bills/archive/2008/03/24/how-to-backup-restore-iis7-configuration.aspx

감사합니다.

저작자 표시 비영리 변경 금지
신고

Comment 0

IIS 7.0 ~ 7.5 에서의 사용 가능한 로그 파일 형식은 W3C, IIS, NCSA 입니다. IIS의 기본 설정은 W3C 이며 해당 로그 형식을 사용 할 경우에는 '파일 명명 및 롤 오버에 현시 시간 사용'에 체크를 하여도 로그는  GMT 시간으로 로깅이 됩니다.

만약 현지 로컬 시간과 동일하게 IIS 로그를 생성 하고 싶다면 IIS ,NCSA 형식을 사용해야 합니다.

로그의 변경은 시스템 재 시작이나 web site의 재 시작이 필요 없이 적용 되며 로그 형식이 변경 될 때 해당 형식의 로그가 생성 되며 다시 다시 이전 로그 형식으로 변경 할 경우 이전에 생성 된 해당 로그 파일에 로깅이 됩니다.

[W3C 로그 형식] – ex+ Date(ex120131.log)
파일 명명 및 롤오버에 현지 시간사용 체크 하여도 GMT시간이 적용 됨

 #Date: 2012-01-31 00:13:45
#Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status time-takenMozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+6.1;+WOW64;+Trident/4.0;+SLCC2;+.NET+CLR+2.0.50727;+.NET+CLR+3.5.30729;+.NET+CLR+3.0.30729) 304 0 0 0
2012-01-31 00:15:45 ::1 GET /test.html - 8080 - ::1 Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+6.1;+WOW64;+Trident/4.0;+SLCC2;+.NET+CLR+2.0.50727;+.NET+CLR+3.5.30729;+.NET+CLR+3.0.30729) 304 0 0 0
#Version: 1.0
#Date: 2012-01-31 00:22:44
#Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status time-taken
2012-01-31 00:22:44 ::1 GET /test.html - 8080 - ::1 Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+6.1;+WOW64;+Trident/4.0;+SLCC2;+.NET+CLR+2.0.50727;+.NET+CLR+3.5.30729;+.NET+CLR+3.0.30729) 304 0 0 0


[IIS 로그 형식] – in + Date(in120131.log)
파일 명명 및 롤오버에 현지 시간사용 체크 할 경우 로컬 현지 시간 사용

::1, -, 1/31/2012, 9:17:05, W3SVC2, W2K8R2KOR, ::1, 0, 489, 210, 304, 0, GET, /test.html, -,
::1, -, 1/31/2012, 9:17:38, W3SVC2, W2K8R2KOR, ::1, 15, 395, 5863, 403, 0, GET, /, -,
::1, -, 1/31/2012, 9:17:43, W3SVC2, W2K8R2KOR, ::1, 0, 489, 210, 304, 0, GET, /test.html, -,


[NCSA 로그 형식] – NC + Date(nc120131.log)
파일 명명 및 롤오버에 현지 시간사용 체크 할 경우 로컬 현지 시간 사용

::1 - - [31/Jan/2012:09:19:07 +0900] "GET /test.html HTTP/1.1" 304 210
::1 - - [31/Jan/2012:09:19:14 +0900] "GET /test.html HTTP/1.1" 304 210
::1 - - [31/Jan/2012:09:19:24 +0900] "GET /test.html HTTP/1.1" 304 210
::1 - - [31/Jan/2012:09:19:46 +0900] "GET /test.html HTTP/1.1" 304 210



[참고 자료]
로그 파일 롤오버 옵션 구성(IIS 7)
http://technet.microsoft.com/ko-kr/library/cc754615(WS.10).aspx

Extended Log File Format Always in GMT
http://support.microsoft.com/kb/194699/en-us

감사합니다.^^

신고

Comment 0

HTTP API가 기록하는 오류 유형


로그 위치: C:\WINDOWS\system32\LogFiles\HTTPERR 폴더에서 htterr.log
 

#Software: Microsoft HTTP API 1.0
#Version: 1.0
#Date: 2011-03-21 06:24:43
#Fields: date time c-ip c-port s-ip s-port cs-version cs-method cs-uri sc-status s-siteid s-reason s-queuename
2011-03-21 06:24:43 192.168.1.50 1036 192.168.1.50 80 HTTP/1.1 GET / 503 1 ConnLimit DefaultAppPool
2011-04-08 07:03:23 127.0.0.1 1054 127.0.0.1 8800 HTTP/0.0 Invalid - 400 - Verb -
2011-04-08 07:05:30 192.168.1.50 1059 192.168.1.50 8800 HTTP/0.0 Invalid - 400 - Verb -
2011-04-08 07:06:05 192.168.1.50 1060 192.168.1.50 8800 HTTP/0.0 Invalid - 400 - Verb -
2011-04-08 07:07:12 192.168.1.50 1063 192.168.1.50 8800 HTTP/0.0 Invalid - 400 - Verb -


HTTP API
는 잘못 처리된 클라이언트에 대한 오류 응답, 연결 시간 초과, 고아 요청 및 삭제된 연결을 기록합니다.


아래의 목록은 HTTP API가 기록하는 오류 유형을 나타냅니다.

·         클라이언트에 대한 응답 HTTP API는 클라이언트에 대한 오류 응답(: 마지막으로 받은 요청에서 구문 분석 오류로 인해 발생한 400 오류)을 보냅니다. HTTP API는 오류 응답을 보낸 후 연결을 종료합니다.

·         연결 시간 초과 HTTP API가 연결 시간을 초과합니다. 연결 시간이 초과될 때까지도 요청이 계속 보류 중이면 이 요청은 오류 로그에서 연결에 대한 자세한 정보를 제공하는 데 사용됩니다.

·         고아 요청 대기열에 사용자 모드 프로세스로 라우팅되는 요청이 아직 남아 있을 때 프로세스가 예기치 않게 종료됩니다. HTTP API는 오류 로그에 고아 요청을 기록합니다.

특정 오류 형식은 항상 각 오류 행의 마지막 필드로 나타나는 원인 문구 문자열에서 지정됩니다. 아래의 표는 HTTP API 원인 문구를 나타냅니다.

원인 문구

설명

AppOffline

"서비스 사용할 수 없음" 오류가 발생했습니다(HTTP 오류 503). 응용 프로그램 오류로 인해 응용 프로그램이 오프라인 상태가 되었기 때문에 서비스를 사용할 수 없습니다.

AppPoolTimer

"서비스 사용할 수 없음" 오류가 발생했습니다(HTTP 오류 503). 응용 프로그램 풀 프로세스가 사용 중이어서 요청을 처리할 수 없기 때문에 서비스를 사용할 수 없습니다.

AppShutdown

"서비스 사용할 수 없음" 오류가 발생했습니다(HTTP 오류 503). 응용 프로그램이 관리자 정책에 대한 응답으로 자동으로 종료되기 때문에 서비스를 사용할 수 없습니다.

BadRequest

요청을 처리하는 동안 구문 분석 오류가 발생했습니다.

Client_Reset

요청이 작업자 프로세서에 할당되기 전에 클라이언트와 서버 간 연결이 닫혔습니다. 이 동작의 가장 일반적인 원인은 클라이언트가 서버와의 연결을 미리 닫는 것입니다.

Connection_Abandoned_By_AppPool

응용 프로그램 풀의 작업자 프로세스가 핸들을 닫아서 보류 중인 요청의 연결을 끊거나 예기치 않게 종료되었습니다.

Connection_Abandoned_By_ReqQueue

응용 프로그램 풀의 작업자 프로세스가 핸들을 닫아서 보류 중인 요청의 연결을 끊거나 예기치 않게 종료되었습니다. Windows Vista Windows Server 2008에만 해당됩니다.

Connection_Dropped

서버가 최종 응답 패킷을 전송하기 전에 클라이언트와 서버 간 연결이 닫혔습니다. 이 동작의 가장 일반적인 원인은 클라이언트가 서버와의 연결을 미리 닫는 것입니다.

Connection_Dropped_List_Full

클라이언트와 서버 간의 삭제된 연결 목록이 꽉 찼습니다. Windows Vista Windows Server 2008에만 해당됩니다.

ConnLimit

"서비스 사용할 수 없음" 오류가 발생했습니다(HTTP 오류 503). 사이트 수준 연결 한계에 도달했거나 초과했기 때문에 서비스를 사용할 수 없습니다.

Connections_Refused

커널 NonPagedPool 메모리가 20MB 아래로 떨어지고 http.sys가 새 연결 수신을 중단했습니다.

사용 안 함

"서비스 사용할 수 없음" 오류가 발생했습니다(HTTP 오류 503). 관리자가 응용 프로그램을 오프라인 상태로 만들었기 때문에서 서비스를 사용할 수 없습니다.

EntityTooLarge

엔터티가 허용된 최대 크기를 초과했습니다.

FieldLength

필드 길이 한계를 초과했습니다.

Forbidden

구문 분석 동안 금지된 요소나 시퀀스가 발생했습니다.

머리글

머리글에서 구문 분석 오류가 발생했습니다.

Hostname

호스트 이름을 처리하는 동안 구문 분석 오류가 발생했습니다.

내부

내부 서버 오류가 발생했습니다(HTTP 오류 500).

Invalid_CR/LF

잘못된 캐리지 리턴이나 줄 바꿈이 발생했습니다.

LengthRequired

필수 길이 값이 없습니다.

N/A

"서비스 사용할 수 없음" 오류가 발생했습니다(HTTP 오류 503). 메모리 할당 실패 같은 내부 오류가 발생했기 때문에 서비스를 사용할 수 없습니다.

N/I

알 수 없는 전송 인코딩으로 인해 "구현되지 않음" 오류가 발생했거나(HTTP 오류 501), "서비스 사용할 수 없음" 오류가 발생했습니다(HTTP 오류 503).

숫자

숫자를 처리하는 동안 구문 분석 오류가 발생했습니다.

Precondition

필수 전제 조건이 없습니다.

QueueFull

"서비스 사용할 수 없음" 오류가 발생했습니다(HTTP 오류 503). 응용 프로그램 요청 대기열이 꽉 찼기 때문에 서비스를 사용할 수 없습니다.

RequestLength

요청 길이 한계를 초과했습니다.

Timer_AppPool

서버 응용 프로그램이 대기열에서 가져와 요청을 처리할 때까지 요청이 응용 프로그램 풀 대기열에서 너무 오랫 동안 대기했기 때문에 연결이 만료되었습니다. 이 제한 시간은 ConnectionTimeout입니다. 기본적으로 이 값은 2분으로 설정됩니다.

Timer_ConnectionIdle

연결이 만료되어 계속 유휴 상태로 있습니다. 기본 ConnectionTimeout시간은 2분입니다.

Timer_EntityBody

요청 엔터티 본문이 도착하기 전에 연결이 만료되었습니다. 요청에 엔터티 본문이 있는 경우 HTTP API Timer_EntityBody 타이머를 켭니다. 처음에는 이 타이머의 제한이 ConnectionTimeout (보통 2)으로 설정됩니다. 이 요청에서 다른 데이터 표시가 수신될 때마다 HTTP API는 타이머를 재설정하여 연결에 추가적인 2(또는 ConnectionTimeout에 지정된 시간)을 더 제공합니다.

Timer_HeaderWait

요청에 대한 머리글 구문 분석을 수행하는 데 기본 제한인 2분보다 많이 소요되었기 때문에 연결이 만료되었습니다.

Timer_MinBytesPerSecond

클라이언트가 적절한 속도로 응답을 받지 못했기 때문에 연결이 만료되었습니다. 응답 전송 속도가 기본값인 초당 240바이트보다 느려졌습니다. 이 속도는 MinFileBytesPerSec 메타베이스 속성으로 제어할 수 있습니다.

Timer_ReqQueue

서버 응용 프로그램이 대기열에서 요청을 가져올 때까지 요청이 응용 프로그램 풀 대기열에서 너무 오랫 동안 대기했기 때문에 연결이 만료되었습니다. 이 제한 시간은 ConnectionTimeout입니다. 기본적으로 이 값은 2분으로 설정됩니다. Windows Vista Windows Server 2008에만 해당됩니다.

Timer_Response

예약됨. 현재 사용되고 있지 않습니다.

URL

URL을 처리하는 동안 구문 분석 오류가 발생했습니다.

URL_Length

URL이 허용되는 최대 크기를 초과했습니다.

Verb

동사를 처리하는 동안 구문 분석 오류가 발생했습니다.

Version_N/S

지원되지 않는 버전 오류가 발생했습니다(HTTP 오류 505).


[참고 자료]

BUG: WriteClient API를 사용하여 데이터를 보낼 때 IIS 6.0 IIS 5.0보다 느리다
http://support.microsoft.com/kb/840875/ko

Troubleshooting HTTP 401 errors in IIS
http://support.microsoft.com/kb/907273/en-us

Select W3C Fields to Log (IIS 7)
http://technet.microsoft.com/en-us/library/cc754702(WS.10).aspx

 

The HTTP status codes in IIS 7.0 and in IIS 7.5
http://support.microsoft.com/kb/943891/en-us

Additional properties are now available for logging in the Httperr#.log file in IIS 6.0 and IIS 7.0
http://support.microsoft.com/kb/832975/en-us 


감사합니다.^^

 

저작자 표시 비영리 변경 금지
신고

Comment 0

[환 경]
Windows Server 2003 EE + SP2 / IIS6.0

[증 상]
 “지정 된 네트워크 이름의 포맷이 틀립니다 “ 라는 오류 메시지와 함께 웹 사이트가 시작 되지 않음



Event ID 15005 메시지 발생

[원 인]
1. 두 개의 NIC를 사용 중에 하나의 NIC를 사용하지 않음으로 변경 할 경우
   => IIS 서비스가 시작 되면서 바인딩 된 네트워크 어뎁터의 IP를 로딩 하는 중 하나의 네트워크 어뎁터가 사용하지 않음으로 되어 있어 http 서비스가 시작 되지 못함

2. Http.sys 파일의 IISM에 구성된 IP 주소에 대해 웹 사이트의 모든 포트에 바인딩할 경우 문제가 발생합니다

[조치 방법]
1. 사용중이지 않은 NIC를 사용함으로 변경




만약 해당 방법으로도 조치가 되지 않을 경우 아래 KB를 참고하여 Iplisten 리스트를 제거 해 보시기 바랍니다.
http://support.microsoft.com/kb/892847/en-us


 

[참고 자료]
You receive a "The process cannot access the file because it is being used by another process" error message when you try to start a Web site in the Internet Information Services MMC snap-in
http://support.microsoft.com/kb/890015/en-us


감사합니다.
 

저작자 표시 비영리 변경 금지
신고

Comment 0

IIS에서 프로세스(w3wp.exe)가 지속적으로 높은 CPU를 사용한다거나 특정 웹 사이트의 응답이 지연 된다거나... IIS와 관련 된 이슈들이 발생 할때 아래와 같이 먼저 자료를 수집하면 분석에 많은 도움이 됩니다.

How to use the Debug Diagnostics Tool to troubleshoot high CPU usage by a process in IIS
http://support.microsoft.com/?scid=kb;en-us;919791&x=17&y=10

[IIS DebugDiag를 설치 및 설정]

1. IIS DebugDiag 도구 다운로드
다음 도구를 다운로드 하십시오.

IIS Diagnostics Toolkit (x86)
http://www.microsoft.com/downloads/details.aspx?FamilyID=9bfa49bc-376b-4a54-95aa-73c9156706e7&DisplayLang=en

2. LogPerf를 이용한 성능로그 수집

성능로그는 장애시점에 CPU 혹은 Memory등이 증가할 경우나 증가하는 상황에서 성능로그를 수집할 필요가 있습니다.

성능로그 (Performance Log)를 수행하십시오.

1) "성능로그 및 경고" 확장
2) "카운터 로그" 선택 후 오른쪽 마우스 클릭
3) "새 로그 설정" 선택
4) 적절한 이름 입력
5) 저장될 로그 파일 위치 확인
6) "카운터 추가" 버튼 클릭 ("모든 카운터"와 "모든 인스턴스"를 선택합니다.)

추가될 성능 개체 목록은 아래와 같습니다. (ASP.NET 어플리케이션을 사용하지 않을 경우 ASP.NET, .NET 카운터는 포함할 필요 없습니다.)

· Process
· Thread
· Processor
· Memory
. Active Server Pages
. Web Service
.  Internet Information Services Global

7) "닫기"

8) "데이터 샘플 간격"

문제발생주기                 Interval을 설정

===============       ====================
Monthly                      2 - 3 hours (7200 - 10800 seconds)
Weekly                       15 minutes (900 seconds)
Daily                         3 - 5 minutes (180 - 300 seconds
Every 4 hours              1 - 5 seconds
More frequently              1 second

9) "로그 파일" 탭 -> 로그 파일 종류 -> 이진파일 
    

10) "일정" 탭 -> 로그 시작 -> "수동으로" 선택
    

11) "확인" -> "로그 시작"

3. 서버에 IIS DebugDiag 도구 설치하기

iisdiag.msi 를 두 번 클릭하여 설치 마법사에 따라 설치를 계속하십시오. 일반적인 경우 Typical을 선택하시면 됩니다.
Debug Diagnostics Tool만을 설치하고자 하는 경우 Choose Setup Type에서 Custom을 선택하고 Debug Diagnostics Tool 1.0을 제외한 나머지를 선택을 해제합니다.

설치를 마치면 IIS DebugDiag 도구의 옵션을 다음과 같이 변경합니다.

1) Tools 메뉴에서 Options And Settings를 선택합니다.
2) Options & Settings 대화창에서 Preferences 탭을 선택합니다.
3) "User service mode to overcome terminal server limitations (not persisted)"를 체크합니다.
4) (권장 옵션) "Enable raw debugger logs. Includes debug output and engine messages."를 체크합니다.

기본으로 두 옵션 모두 설정되어 있지 않습니다.

4. DebugDiag 구성하기
웹 서버로부터 정해지 시간 내에 응답을 받지 못하는 문제(Hang)에 대해 메모리 덤프 파일을 수동으로 수집하는 Hang Rule을 설정하기 위해 다음 단계를 수행하십시오.
장애가 발생한 후에 DebugDiag "Tools" 메뉴의 "Create IIS Hang Dump" 명령을 이용하여 Hang Dump3회 정도 수집하여 주십시오.

규칙을 해제하려면 Remove Rule 버튼을 클릭하여 규칙을 삭제하거나 Edit Rule 버튼을 클릭하여 "Rule Completed" 페이지에서 "Do not activate the rule at this time"를 선택합니다.

문제 발생시 위와 같이 자료를 수집 단다면 원인 분석에 많은 도움이 될 것입니다.^^

감사합니다.^^

신고

Comment 0

[환 경]

Windows server 2003 EE x86 + SP2 / IIS6.0

 

[문의사항]

2G 이상의 파일을 Http post method를 이용하여 업로드 시 오류가 발생 하는 원인 분석

 

[증 상]

2G 이상의 파일을 Http post method를 이용하여 업로드 시 오류가 발생

 

[원 인]

2GB이상의 파일을 업로드 하지 못하는 문제 원인은 대부분의 웹브라우저(IE, Chrome )에서 동일하게 나타나는 문제 입니다.


이는 HTTP Heaper Content-Length Signed Integer를 이용해서 구현하고 있기 때문 입니다.

32bit Signed Integer type-2147483647 에서  2147483647 유효한 값이며 이는 2GB 보다 파일의 크기를 표현

없다는 뜻이 됩니다.

 

브라우저에 따라서 차이가 있을 수 있습니다만 현재 확인 가능한 대부분의 브라우저들이 2GB 이상 업로드 하는 경우 위에

설명 드린 이유로 잘못된 헤더 값을 서버에 전달하며 이 때문에 IIS 400 Bad Request Return 하거나 Java Servlet에서

오류가 발생하는 등의 문제가 나타나게 됩니다.

 

대부분의 대용량파일 지원이 가능한 웹 포탈 사이트를 보면 어느 크기 이상의 파일을 업로드 하기 위해서 별도의 ActiveX control

사용하고 있으며 이러한 문제들을 우회하여 해결하고 있습니다.

 

2GB upload limit for http uploads and very large forms - 100MB, 2GB (4GB) Article

http://www.motobit.com/help/scptutl/pa98.htm

 

Mozilla firefoxUpload file over 2GB - you cannot post such file, Mozilla does not send request with bigger file to server
Upload two or more files with size summary size >2GB - Mozilla send such files, but http headers are funny:

POST /content-length-test.htm HTTP/1.1
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US) Gecko/20060909 Firefox/1.5.0.7
Content-Type: multipart/form-data;

boundary=---------------------------28146504217367Content-Length: -1618952669

But IIS doesn't  know what means "Content-Length: -1618952669" and it answers "Bad request"

Internet Explorer
The results with IE are similar - IE allows to post file over 2GB, but the http headers looks like in Mozilla:

POST /content-length-test.htm HTTP/1.1
Content-Type: multipart/form-data; boundary=---------------------------7d630d6400da
UA-CPU: x86
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; )
Content-Length: -107389343
Both major internet browsers simply count content-length of uploads in 32bit signed integer, so their results are unusable for very large uploads.

위에서 설명하고 있는 한계는 IIS 6.0의 한계는 아닙니다. 관련된 사항은 아래 사이트를 참조 하시기 바랍니다.

IIS HTTP GET and POST Limits

http://technet.microsoft.com/ko-kr/library/bb878118(en-us).aspx

 

[참고 사이트]

MaxRequestEntityAllowed Metabase Property (IIS 6.0)

http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/468d6cea-04cd-4b10-b1e1-c17b9e909d07.mspx?mfr=true

 

감사합니다.^^

 

저작자 표시 비영리 변경 금지
신고

Comment 0

다수의 웹 사이트를 운영 중인 서버에서 특정 웹 사이트 접속 시 service unavailable 메시지와 함께 웹 사이트 접속이 불 가능한 현상이 발생 하였습니다.

[환 경]

Windows Server 2003 EE x86 / IIS 6.0

 

[문의 사항]

특정 웹 사이트 오류 발생 원인 분석

[증 상]

특정 시간 대에 xxxx 웹 사이트 접속 시 service unavailable 메시지 발생
Httperror에 아래와 같은 오류 메시지 생성

2011-03-22 07:21:20 xxx.xxx.xxx.xx 4938 xxx.xxx.xxx.xxx 80 HTTP/1.1 GET /xxxx.jsp 503 1214720207 QueueFull xxxx

2011-03-22 07:21:20 xxx.xxx.xxx.xx  8591 xxx.xxx.xxx.xx 80 HTTP/1.1 GET /edp/xxxxxxxxxxdo?method=listUserSearch 503 1214720207 QueueFull xxxx

[원 인]

IIS 에서는 웹 사이트의 너무 많은 요청으로 인해 큐가 꽉 차거나 서버가 오버로드되는 것을 막기 위해 응용 프로그램 풀 큐의 길이를 제한 합니다.

용 프로그램 풀 큐 길이 제한을 설정하면 IIS에서 새 요청을 큐에 넣기 전에 지정된 응용 프로그램 풀 큐의 요청 수를 모니터링 하여 큐에 새 요청을 추가하고 큐 크기가 초과되면 서버에서 요청을 거부하고 사용자 지정할 수 없는 503 오류 응답 메시지를 클라이언트에 보냅니다.
각 응용 프로그램 풀에서 커널 요청 큐는 기본으로 IIS 6.0 SP1 설치 전에 설치된 경우에는 4000, 이후에 설치된 경우에는 1000으로 제한됩니다.

 

[조치 방법]
조정이 필요한 경우 이 값을 5000 정도로 늘려 조정하실 것을 권장합니다. 이 값을 제한하지 않거나 너무 크게 늘려 줄 경우 응용 프로그램 풀에서 메모리 부족을 겪을 수도 있습니다.

이 값을 조정하는 방법은 다음 기술문서를 참고하십시오.

error message if the AppPoolQueueLength value is too low: "HTTP 503: Service Unavailable"

http://support.microsoft.com/kb/816995/en-us

커널 큐 모니터링 관련 Current ISAPI Extension Request 값 이벤트 로깅

Windows Server 2008에서는 “HTTP Service Request Queues” 성능 카운터에서 이 값을 모니터링 할 수 있으나
Windows Server 2003 IIS 6.0
에서는 Http.sys 커널 디바이스 드라이버의 성능 카운터가 제공되지 않습니다.
따라서, IIS 6.0에서는 (WebLogic과 같이) ISAPI 응용 프로그램으로 인해 응용 프로그램 풀 큐가 꽉 찬 경우,
정확한 값을 알 수는 없으나 Web Service Current ISAPI Extension Requests 성능 카운터를 이용하여 특정 사이트를 모니터링할 수 있습니다

[IIS] ISAPI Extension 개요
http://community.365managed.com/?document_srl=1413

아래 방법은 Current ISAPI Extension Request의 값이 특정 수치를 초과 하게 될 경우 Event log에 메시지가 생성 되게 하는 것입니다.

아래 방법은 Current ISAPI Extension Request의 값이 255를 초과 할 경우 응용프로그램 Event 2031이 생성되게 설정 하는 방법을 정리 한 것입니다.




 

위 값을 초과 할 경우 아래와 같은 이벤트가 발생
=>
아래 내용은 어제 테스트 했던 샘플 입니다. 참고 하시기 바랍니다

 
이벤트 형식:          정보
이벤트 원본:          SysmonLog
이벤트 범주:          없음
이벤트 ID:             2031
날짜:                    2011-03-22
시간:                    오후 6:29:32
사용자:                 N/A
컴퓨터:    xxxxxxx
설명:

카운터xxxxxxxxxx Service(dmcedu)\Current ISAPI Extension Requests() 경고 임계값을 xx로 했습니다. x의 카운터값이 높, x의 제한값입니다.

 

[참고 사이트]
응용 프로그램 풀 큐 길이 제한 구성
http://technet.microsoft.com/ko-kr/library/cc783466(WS.10).aspx

저작자 표시 비영리 변경 금지
신고

Comment 0

IIS 성능 모니터 관련 내용을 찾다가 좋은 글을 찾아서 그대로 copy 해서 올립니다. 아래 내용 말고도 업무에 참고 할 만한 많은 내용들이 있네요.....

http://blogs.msdn.com/b/mermaid207/archive/2008/11/21/iis-performance-counter-checklist.aspx

IIS 
웹 서버의 성능에 영향을 줄 수 있는 대표적인 리소스에는 processor, process, physical, network 이 있습니다.여기서는 각각의 리소스 사용을 확인하기 위해 살펴보아야 할 성능 카운터항목은 무엇이며 카운터가 의미하는 바가 무엇 인지와 각 카운터의 병목을 판단할 수 있는 임계치 값에 대해서 알아보겠습니다.

1. Memory

메모리 성능 카운터는 IIS 웹 서버의 성능 문제가 발생했을때 가장 기본적으로 살펴보아야 할 요소입니다따라서현재 메모리가 충분한지 판단하고 사용 상태를 보는 것이 중요합니다메모리와 관련된 성능 병목이 있는지 확인하기 위해서는 다음 카운터를 살펴보아야 합니다.

Memory

Available Bytes

Committed Bytes

Page Reads/sec

Paging File

%Usage

각 항목이 의미하는 바는 다음과 같습니다.

Memory / Available Bytes

현재 프로세스에서 사용할 수 있는 메모리의 바이트 수를 의미합니다다시말하면, 사용 가능한RAM이 얼만큼 남았는지 보여주는 카운터입니다이 값의 임계치는 전체 메모리 크기의 5% 이하일 때 입니다.

Memory / Committed Bytes
커밋된 가상 메모리의 양을 바이트 단위로 나타낸 것입니다커밋된 메모리란 디스크 페이징 파일에 예약된 공간이 있는 실제 메모리입니다이는 Available Bytes와 반비례 합니다.

Memory : Page Reads/sec

프로세스가 메모리의 페이지를 요청하는데 시스템이 요청한 위치에서 해당 페이지를 찾을 수 없으면 페이지 부재가 발생합니다요청한 페이지가 메모리의 다른 위치에 있을 경우는 대부분의 프로세서가 큰 영향없이 처리할 수 있습니다하지만메모리가 아닌 디스크에서 페이지를 검색해야 할 경우 큰 지연 현상이 발생할 수 있습니다. Page Reads/sec는 이러한 페이지 부재를 해결하기 위해 디스크를 읽는 횟수를 의미합니다.

 Paging File : %Usage

현재 사용중인 페이징 파일의 백분율을 말합니다이 수치가 100%에 도달하게 되면 페이징 파일을 늘리거나 RAM을 더 추가시켜야 함을 의미합니다.

2. Processor

하나 이상의 프로세스가 프로세서 시간의 대부분을 사용할 경우 프로세서의 병목 현상이 발생할 수 있습니다이 경우 실행을 준비하고 있는 프로세스의 쓰레드가 프로세서를 사용할 수 있을 때까지 대기열에서 대기하게 됩니다.

Processor

%Processor Time

%Privileged Time

Process

%Processor Time

System

Processor Queue Length

각 항목이 의미하는 바는 다음과 같습니다.

Processor / %Processor Time
모든 프로세스 스레드가 프로세서를 사용하여 명령을 실행하는 데 경과된 시간을 백분율로 나타낸 값입니다일반적으로 70% 이상이 사용되고 있다면 과부하라고 판단할 수 있습니다.

Processor / %Privileged Time

%Privileged Time 이란 프로세서가 특권 모드(운영 체제 구성 요소 및 하드웨어 디바이스 드라이버를 위해 만든 처리 모드)로 실행된 시간을 백분율로 나타낸 값입니다반면, %User Time는 프로세서가 사용자 모드로 실행된 시간을 백분율로 나타낸 값을 말합니다이 값이 높으면 서버에서 응용 프로그램이 많이 실행되고 있음을 나타냅니다추가적으로, %Processor Time  %Privileged Time  %User Time을 합한 값을 의미합니다.

Process / %Processor Time

모든 프로세스 스레드가 프로세서를 사용하여 명령을 실행하는 데 경과된 시간을 백분율로 나타낸 값입니다.

System / Processor Queue Length

CPU큐에서 현재 실행이 되고 있지 않고 대기하고 있는 쓰레드의 수입니다일반적으로 이 값이 일정 기간 동안 CPU  x 2보다 크다면 서버의 프로세서 성능이 부족하다는 것을 말합니다..

 

3. Physical Disk

디스크는 서버에서 프로그램 및 데이터를 저장하고 처리하므로 디스크 사용량 및 속도에 영향을 미치는 병목 현상은 서버의 전체적인 성능에 큰 영향을 줍니다.

Physical Disk

%Disk Time

Average Disk Queue Length


각 항목이 의미하는 바는 다음과 같습니다.

Physical Disk / %Disk Time

선택한 디스크 드라이브가 읽기 또는 쓰기 요청을 처리하는데 사용된 시간을 백분율로 나타낸 것입니다이 카운터가 100%가 되면 디스크 성능 상에 문제가 있음을 의미합니다.

Physical Disk / Average Disk Queue Length

디스크가 읽기와 쓰기 요청을 수용할 정도로 빠르지 않으면 해당 요청은 대기열에 넣게 됩니다여기에서 이 값이 0보다 크면 디스크 자체에 병목 현상이 있음을 의미합니다.


 

4. Network

네트워크 병목 현상은 네트워크에서 데이터를 송수신하는 서버의 성능에 영향을 미칩니다서버의 네트워크 카드에 문제가 있을 수 있거나네트워크가 포화 상태여서 분할해야 할 수 있습니다다음 카운터를 사용하여 네트워크 병목 현상을 진단할 수 있습니다.

Network Interface

Bytes Total/sec

Output Queue Length

Web service

Bytes Total/sec



각 항목이 의미하는 바는 다음과 같습니다.

Network Interface / Bytes Total/Sec
네트워크 인터페이스에서 주고 받는 초당 총 데이터의 수(Bytes) 또는 속도를 말합니다사용 가능한 대역폭과 이 값을 비교하면 발생할 수 있는 네트워크 병목 상태를 명확하게 표시할 수 있습니다일반적으로 바이트 수/초는 사용 가능한 총 대역폭의 50% 이하로 유지해야 합니다.

Network Interface / Output Queue Length

출력 패킷 큐의 길이를 의미하며이 값이 0보다 크면 네트워크 병목 현상을 의심해 볼 수 있습니다.

Web Service / Bytes Total/sec

웹 서버에서 보내고 받은 바이트의 합계를 표시합니다.

 

 

저작자 표시 비영리 변경 금지
신고

Comment 0