2005/11/07

IIS튜닝 - 적절한 세션구성

웹사이트 접속한 사용자에 대한 정보를 기록 유지하는 방법으로 세션과 쿠키가 많이 이용한다. 세션은 접속정보를 서버측 메모리에 저장하는 것으로 기본값으로 20분 동안 유지하게 된다.

서버측에 메모리양이 충분하거나, 허용되는 적정 접속자 서버의 경우는 세션이용은 아주 훌륭한 도구임에는 틀림없으나, 대량 접속의 경우는 다르다. 대량의 세션정보를 기록유지를 해야 함과 동시에 생성 및 삭제등의 작업도 이루어져야 한다.

이에 따라 대량접속 웹사이트에의 세션이용은 많은 메모리 점유와 추가적인 리소스를 소비함으로써 성능저하를 유발할수 있는등 절적치 못한 방법이 될수 있다.


<화면> 응용프로그램의 세션구성

직접 변경이 가능한 메타베이스 값으로 다음과 같은 값이 있으므로 서버 운영환경에 따라 특정값을 변경하거나, 전체 값을 변경하는 것도 고려해 보는 것도 좋다.

물론, 웹프로그래밍 쪽에서 세션이용이 불필요한 페이지는 세션이용안함 설정을 하거나, 세션이 필요한 경우는 필요가 없는 경우는 즉시 해제를 하는 것도 좋은 방법이다.

-AspAllowSessionState : <화면>에서 설정이 가능한 값으로, ASP 응용 프로그램의 세션 상태를 유지 옵션으로 이 속성을 true로 설정하면 서버에 연결될 때마다 Session 개체가 새로 만들어지고, Session_OnStart 및 Session_OnEnd가 발생하며, ASPSessionID 쿠키가 클라이언트로 보내진다. 이 속성을 false로 설정하면 세션 상태를 보거나 저장할 수 없고, 이벤트가 처리되지 않으며, 쿠키가 클라이언트로 보내지지 않는다.

-AspSessionMax: IIS에서 허용하는 최대 동시 세션 수를 지정하는 것으로. 이 제한에 도달한 후에 클라이언트가 IIS와 새로운 세션을 구축하려고 하면 클라이언트에 오류("HTTP 500 웹 서버 사용량이 너무 많습니다.") 메시지가 나타나게 된다. 기본값으로는 제한이 없다.

-AspSessionTimeOut: <화면>에서 설정할수 있는 값으로, Session 개체에 대한 마지막 요청이 이루어진 후 이 개체가 유지되는 기본 시간(분)을 지정한다. Session 개체가 메모리 리소스를 소모하므로 이 속성을 사용하여 개별 Session의 수명을 제한하면 응용 프로그램의 확장성이 향상될 수 있으나 세션에 저장해 놓은 정보를 보관할수 있는 시간은 짧아지게 된다.

Adsutil.vbs set W3SVC/AspAllowSessionState  "1"

Adsutil.vbs set W3SVC/AspSessionMax "500"

Adsutil.vbs set W3SVC/AspSessionTimeOut "20"



06-SessionTimeout.gif

댓글 없음:

댓글 쓰기

가장 많이 본 글