'IIS 6.0'에 해당되는 글 2

  1. 2006/12/22 zziuni PID로 IIS의 Application Pool 이름확인하기.
  2. 2006/07/25 zziuni 망할 2003, 망할 FLV.

IIS로 서비스를 하거나 준비하다보면...
특정 사이트에서 메모리 누수가 생겨서 계속 메모리가 증가한다던가, CPU 를 100% 먹는다든가 하는것 말이다.
이럴경우 해당 사이트를 중지/재실행하던가 IIS서버 자체를 ReStart하는 형태로 해결을 한다.

문제는 한서버에 여러사이트가 운영되고 있는 상황이다.
대체 [작업관리자]에 저 메모리를 집어먹고 있는놈은 지금 돌아가고 있는 사이트중에 어떤놈이란 말인가? ㅡ ㅡ
그렇다고 멀쩡히 돌아가는 다른 사이트까지 다 죽이기도 그렇고...

이 포스트는 그놈(?)을 색출하는 방법이다.


IIS 6.0의 경우 5.0과는 달리 [작업관리자]에서 IIS실행 프로세스로 확인할 수 있는것이 Dllhost.exe가 아니라 w3wp.exe 이다.
이는 IIS메뉴에 있는 [응용프로그램 풀]에 해당한다. (정확하게 같은것은 아니지만..그냥 같다고 생각하자.)
그러므로 사실상 w3wp.exe하나가 한 사이트. 혹은 한 웹서비스로 보아도 무방하다. (이도 사실아니지만 이글에선 그냥 같다고 하자.)

그럼 [작업관리자]에서 w3wp.exe 가 떠있는것 만큼 웹사이트가 돌고 있는것인데,
각각의 w3wp.exe를 구분할 수 있는 유일한 구분자는 PID. 즉 ProcessID뿐이다. [작업관리자] PID만으로 어느사이트인지 알 수는 없을까?
이 PID를 가지고 해당 서비스 사이트를 찾아보자.
아. 먼저 이 방법은 당연히 IIS가 설치되어있는 서버에서만 가능하다.


사용자 삽입 이미지


그림처럼 [작업관리자]에서 w3wp.exe의 PID들을 확인한다.
컴맨드 창을 띄워서 iisapp라고 입력하자.
그러면. wscript   로 실행할 수 없는 스크립트라는 경고가 뜨고, cscript 로 실행하겠냐고 묻는다.
그러고 나서 다시 iisapp를 하면 다음과 같은 결과를 볼수 있다.


iisapp 실행결과

실서비스서버라 모자익 처리했습니다. (^^



현재 메모리에 떠있는 w3wp.exe의 PID별로 IIS의 Application Pool 의 이름을 보여주고 있다.
IIS를 띄워보자.

사용자 삽입 이미지


[응용프로그램 풀]을 들어가면 같은 이름의 Application Pool 들이 있는것을 확인할 수 있다.

서두에 잠시 언급했듯이 w3wp.exe가 Application Pool 를 그대로 의미하는 것은 아니다.
그러므로 각각의 다른 PID가 같은 Application Pool 를 가리킬 수도 있다. (이건 다음기회에...)

어쨌든 이렇게 확인을 하면 문제를 일으킨 놈(?)을 확인하여 그놈만 확인사살을 하거나 디버깅을 할 수 있다.

참고로 혹시 컴맨트 창에서 iisapp가 경로를 찾지 못하면 다음과 같이 하면 된다.

이파일의 실경로는 c:\windows\system32\iisapp.vbs 이며 cscript로 실행한다.

사용자 삽입 이미지


주의할점은 PID는 현재 기동되어있는 프로세스를 구별하기 위해, 윈도우에 프로세스가 기동될때마자 임의로 주어진다  메모리에서 내려갔다 올라오면 숫자가 변한다는 의미다. 그러므로 '우리 관리단 PID는 3456 야 ' 따위는 아무 의미없다.

더 자세한건 다음 링크를 참고.
http://www.microsoft.com/technet/prodte ··· r%3Dtrue

크리에이티브 커먼즈 라이센스
Creative Commons License
2006/12/22 21:01 2006/12/22 21:01

가끔. 서버가 바뀌는것에 대해 뭐가 문제냐는 식으로 물어보는 사람들이 있다.
Java Was를 JRUN에서 JEUS로, 혹은 Tomcat에서 웹스피어로 바꿔야 하는데,
자바니까(?)문제없지 않냐 라든가...
Server가 Windows 2000에서 windows 2003으로 바뀌는게 뭐가 문제냐는 식이다.

당장 생각나는것만 이러이러한게 있고, 또 어떤 문제가 있을지 모릅니다... 라고 마우리 설명해봐야
별거 아닌걸로 엄살핀다는 반응이 일반적이다.

오늘 겪은일.
플래시에 FLV라는 동영상 파일이 있다. 아직까지는 웹페이지에 직접 링크거는 방법은 없고,
SWF 파일이나 스트리밍 서버를 통해서만 가능하다(고한다. ㅡ ㅡ)
FLV를 로드하는 SWF가 있을 경우,
Windows 2000 서버, 그러니까 IIS5.0에서는 아무 문제 없지만,
Windows 2003 서버 IIS 6.0 에서는 FLV 로드가 되지 않는다.
보안 강화로 인하여, IIS 6.0 에서는 MIME가 정의되지 않은 파일은 접근자체 가 안되는데.
FLV는 기본 정의 된 확장자가 아니기때문이다.

IIS의 해당 사이트 등록정보의 MIME 추가 메뉴를 통해서 적당한 타입으로 FLV확장자 등록을 해주면
정상 작동한다.

환경이 바뀌는건 이레저레 스트레스다.  ㅡ ㅡa

크리에이티브 커먼즈 라이센스
Creative Commons License
2006/07/25 16:10 2006/07/25 16:10