2005/11/10

IIS튜닝 - 캐시 조정

ASP파일 캐시

캐싱할 미리 컴파일된 스크립트 파일 수를 메모리에 저장할 파일수를 지정은 기본값으로 500(IIS5-250)개 이다. 이 속성은 사용 가능한 메모리 양과 스크립트 파일 트래픽의 양에 따라 성능을 조정하는 데 사용된다.

메모리에 캐시된 내용은 컴파일 되지 않은 ASP 요청보다 훨씬 빠르게 응답하게 된다. 메타베이스 속성값은 AspScriptFileCacheSize 이다.

물론 이 값을 높게 설정할수록 캐시량은 많아지지만, 캐시된 만큼 메모리를 점유하게 되므로 적용전 메모리 상태를 먼저 확인하는 것이 좋으며, 변경후에 캐시 적중 성능카운터를 이용해 그 효과를 측정해야 한다.




캐시할 스크립트 엔진

파싱된 스크립트를 바이트 코드로 변환하는 작업을 수행한다. IIS5에서는 125개 이며, IIS6에서는 250개가 기본값으로 되어 있다. 만약 웹사이트에서 수천개의 ASP페이지가 존재한다면 이 값을 증가시키는 것 만으로도 성능향상을 꾀할수 있다.



IIS6에서 추가된 디스크에 캐시를 저장하는 옵션으로 디스크에 파일캐시를 저장할경우 지정된 디렉토리에 캐시된 ASP파일이 저장된다. 언제나 그렇듯 ASP 파일내용이 자주 변경되는 웹사이트의 경우 캐시의 효과는 변경되는 비율많큼 적어진다.



위 성능카운터 값은 필자가 운영하는 서버중 한대로 Http 동시접속수 1249개 인 웹서버로 초당 Asp요청수가 초당 50~60건 정도이며, File Cache Hits 93% 인 상태이다. 성능카운터의 File Cache Hits %가 80~90% 선을 지속적으로 유지할 때 만족스러운 상태로 판단할 수 있다.

Adsutil.vbs set 메타베이스경로 "값"
Adsutil.vbs set 메타베이스경로 "값"
Adsutil.vbs set AspScriptEngineCacheMax "값"


IIS 파일 캐시 설정 변경

IIS는 서버에서 사용 가능한 메모리의 50% 까지 사용한다. 그러나 웹전용 서버이면서 IIS에서 점유하는 메모리가 50%에 다다른경우 시스템운영에 적정여유량을 제외한 나머지 값까지 사용할수 있도록 이 값을 변경해 볼 필요가 있다.

MemCacheSize
레지스트리 경로:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\InetInfo\Parameters
데이터 형식: REG_DWORD
범위: 0-2,500MB 기본값은 60초마다 동적으로 조정.


캐시된 리소스에 대한 TTL값 조정

IIS는 마지막요청후 30초 이내에 재요청이 없을경우캐시를 파기한다. 서버에 메모리 여유가 있다면 캐시에 오래 남아 있을수 있도록 TTL값을 조정해 볼 필요가 있다.

ObjectCacheTTL
레지스트리 경로:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\InetInfo\Parameters
데이터 형식: REG_DWORD
기본값: 30초
범위: 0 - 4,294,967,295 (제한 없음)



09-CacheOption.gif
09-AspScriptFileCacheSize.gif
09-FileCacheHits.gif

댓글 없음:

댓글 쓰기

가장 많이 본 글