연습: IIS 7.0 출력 캐싱
작성자: Saad Ladki
웹 콘텐츠는 정적 콘텐츠와 동적 콘텐츠의 두 가지 범주로 나눌 수 있습니다. 정적 콘텐츠는 요청에서 요청으로 변경되지 않습니다. 웹 브라우저로 반환되는 콘텐츠는 항상 동일합니다. 정적 콘텐츠의 예로는 HTML 파일, JPG 또는 GIF 파일이 있습니다.
다른 하나는 동적 콘텐츠입니다. 모든 요청에서 동적 콘텐츠 변경에 대해 생성되는 응답입니다. 예를 들어 ASP.NET 또는 PHP 콘텐츠가 있습니다.
반동성 콘텐츠를 포함하는 이 두 범주 사이에는 큰 범위가 있습니다. 데이터베이스 쿼리를 실행하는 동적 ASP.NET 페이지를 상상해 보십시오. 기본 데이터베이스 테이블이 자주 변경되지 않는 경우 모든 요청에서 이 쿼리를 실행할 이유가 없습니다.
IIS 출력 캐싱 기능은 반동적인 콘텐츠를 대상으로 합니다. 동적 요청에 대한 정적 응답을 캐시하고 엄청난 확장성을 얻을 수 있습니다.
필수 조건
이 연습에서는 Windows Vista SP1 또는 Windows® Server® 2008 베타 3 이상에서 IIS 7.0 이상이 필요합니다. 이 연습에서는 IIS 설치 프로그램에서 선택적 구성 요소로 설치해야 하는 ASP.NET 2.0도 사용합니다.
연습 개요
다음 연습에서는 IIS 확장성 인터페이스를 사용하여 JPG 파일에 언어별 저작권 메시지를 추가합니다.
먼저 관리되는 처리기를 추가하여 이 작업을 수행합니다. 그러나 모든 JPG 파일에 저작권 메시지를 동적으로 삽입하면 비용이 발생합니다. 이제 모든 JPG 파일에 대해 관리 코드를 실행해야 하기 때문입니다.
다음으로, JPG 저작권 처리기의 처리량을 측정하기 위해 IIS 성능 분석 도구인 WCAT를 설치합니다.
그런 다음 출력 캐싱을 추가하여 저작권 처리기를 추가하여 발생하는 성능 저하를 되찾습니다.
1부 – 저작권 처리기 작성 및 구성
디렉터리 아래에
%systemroot%\inetpub\wwwroot
'pictures'라는 디렉터리를 만듭니다. 관리자 권한 명령 셸에서 다음 명령을 실행합니다.md %systemdrive%\inetpub\wwwroot\pictures
일부 디지털 그림을 복사합니다. 이 연습에서는 디지털 그림을 JPG 파일로 가정하여 새 그림 디렉터리에 복사합니다.
참고 항목
Windows Server 2008의 높은 Internet Explorer 보안 설정으로 인해 웹 사이트가 차단되었다는 보안 대화 상자가 표시될 수 있습니다. IIS 배경 화면을 다운로드하려면 신뢰할 수 있는 사이트 목록에 wallpaper.iis7.org 추가합니다.
appcmd 명령줄 도구를 사용하여 애플리케이션을 만듭니다.
%windir%\system32\inetsrv\appcmd add app -site.name:"Default Web Site" -path:/pictures -physicalPath:%systemdrive%\inetpub\wwwroot\pictures
그림 디렉터리 아래에 디렉터리 App_Code 만듭니다.
md %systemdrive%\inetpub\wwwroot\pictures\App_Code
메모장 열고 다음 코드를 붙여넣습니다.
using System; using System.Web; using System.Drawing; using System.Drawing.Imaging; namespace IIS7Demos { public class imageCopyrightHandler : IHttpHandler { public void ProcessRequest(HttpContext context) { string message = "Copyright © IIS 7.0 Team"; try { string languageHeader; languageHeader = context.Request.Headers["Accept-Language"].Substring(0,2).ToUpper(); switch (languageHeader) { case ("DE"): message = "IIS 7.0 Team - Alle Rechte vorbehalten"; break; case ("ES"): message = "Marca Registrada IIS 7.0 Team"; break; default: break; } } catch { // if something fails, e.g. no Language-Accept header, we go with the english message } InsertCopyrightMessage ( context, message, "yellow" ); } void InsertCopyrightMessage( HttpContext context, string message, string color ) { try { // get physical path of request string strPath = context.Request.PhysicalPath; // load as bitmap Bitmap jpgFile = new Bitmap(strPath); // add copyright message Graphics g = Graphics.FromImage(jpgFile); Font f = new Font("Arial", 20, GraphicsUnit.Pixel); SolidBrush sb = new SolidBrush(Color.FromName(color)); // write copyright message to bitmap g.DrawString( message, f, sb, 5, jpgFile.Height - f.Height - 5 ); f.Dispose(); g.Dispose(); // save it to response stream jpgFile.Save( context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg ); jpgFile.Dispose(); } catch (Exception e) { context.Response.Write(e.Message); } } public bool IsReusable { get { return true; } } } }
파일을
%systemdrive%\inetpub\wwwroot\pictures\App\_Code\imageCopyrightHandler.cs
로 저장합니다.JPG 파일이 요청되면 이 코드를 실행하는 처리기를 만듭니다.
%windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers /+[name='imageCopyrightHandler-Integrated',path='*.jpg', verb='GET,HEAD',type='IIS7Demos.imageCopyrightHandler',preCondition='integratedMode']
또한 아직 기본 문서가 없으므로 디렉터리 검색을 사용하도록 설정해야 합니다.
%windir%\system32\inetsrv\appcmd set config "Default Web Site/pictures" -section:directoryBrowse -enabled:true
Internet Explorer 주소 표시
http://localhost/pictures
줄을 입력하여 그림 애플리케이션으로 이동합니다. IIS 디렉터리 목록에서 JPG 파일에 대한 링크를 클릭합니다. 삽입된 Copyright 메시지와 함께 JPG 이미지가 표시됩니다.코드를 확인합니다. 저작권 메시지는 브라우저에서 보내는 "수락 언어" 헤더에 따라 달라집니다. 독일어 버전의 Microsoft Server 2008이 설치된 경우 저작권 메시지 "IIS 7.0 팀 - Alle Rechte vorbehalten"이 표시됩니다. 스페인어 버전이 있는 경우 "Marca Registrada IIS 7.0 Team"이 표시됩니다. 다른 모든 경우에서 저작권 메시지는 "Copyright © IIS 7.0 Team"입니다. 이 코드를 테스트하는 방법은 Internet Explorer에서 보내는 "Accept-Language" 헤더를 변경하는 것입니다.
- "Internet Explorer"를 엽니다.
- "도구" 메뉴를 열고 "인터넷 옵션"을 클릭합니다.
- "언어" 단추를 클릭합니다.
- "추가..."를 클릭합니다. 단추를 클릭하고 스페인어의 경우 "es"를 추가하거나 독일어의 경우 "de"를 추가합니다.
- "위로 이동" 단추를 통해 새 언어를 목록 맨 위로 이동합니다.
http://localhost/pictures/<your_jpg_file>.jpg
으로 이동합니다. Copyright 메시지가 구성한 언어로 변경되었습니다.- "언어" 대화 상자로 돌아가서 다시 설정하는 것을 잊지 마세요. 그렇지 않으면 나중에 스페인어 또는 독일어 웹 페이지를 받는 이유가 궁금할 수 있습니다.
파트 II - imageCopyrightHandler의 성능 테스트
JPG 저작권 처리기가 작동하면 코드가 얼마나 빠른지 결정해야 합니다. IIS 6.0 리소스 키트 도구를 설치하여 성능 테스트를 실행합니다.
IIS 6.0 리소스 키트 도구를 다운로드하고 설치합니다. 사용자 지정 설치를 수행하고 WCAT(웹 용량 분석 도구)만 설치합니다. WCAT는 성능 테스트를 수행하는 데 필요한 IIS 6.0 리소스 키트 도구의 유일한 기능입니다.
참고 항목
Windows Server 2008의 높은 Internet Explorer 보안 설정으로 인해 웹 사이트가 차단되었다는 보안 대화 상자가 표시될 수 있습니다. IIS 6.0 리소스 키트를 다운로드하려면 *.microsoft.com 신뢰할 수 있는 사이트 목록에 추가합니다.
PERFTEST라는 디렉터리를 만듭니다. 예를 들면 다음과 같습니다.
md %systemdrive%\perftest
WCAT 컨트롤러에는 다음 세 개의 입력 파일이 필요합니다.
- WCAT에 요청할 URL을 알려주는 스크립트 파일입니다. 각 URL은 고유한 ClassID를 가져옵니다.
- 스크립트 파일에 지정된 URL 간에 요청을 배포하는 방법을 WCAT에 알려주는 배포 파일
- 특정 성능 실행의 매개 변수(예: 테스트 기간, 시뮬레이션할 HTTP 클라이언트 수 등)를 구성하는 구성 파일입니다.
스크립트 파일
perftest 디렉터리에 script.cfg라는 새 파일을 만들고 다음 콘텐츠를 붙여넣습니다.
NEW TRANSACTION classId = 1 NEW REQUEST HTTP Verb = "GET" URL = "http://localhost/pictures/<your image name>.JPG" NEW TRANSACTION classId = 2 NEW REQUEST HTTP Verb = "GET" URL = "http://localhost/pictures/<your image name>.JPG"
참고 항목
<이미지 이름> 항목을 JPG 파일의 이름으로 바꿉니다. JPG 파일이 더 있는 경우 새 트랜잭션을 추가할 수 있습니다. 각 트랜잭션에 새 ClassID를 제공해야 합니다.
배포 파일
배포 파일은 WCAT에 요청을 계량하는 방법을 알려줍니다. 위의 두 URL을 사용하여 50/50 배포를 균등하게 수행합니다. 각 ClassID는 시간의 50%를 요청합니다.
perftest 디렉터리에 호출
%systemdrive%\perftest\distribution.cfg
된 파일을 만들고 다음 콘텐츠를 붙여넣습니다.1 50 2 50
구성 파일
다음은 테스트에 권장되는 매개 변수입니다.
- 기간: 30초
- 준비: 5초
- 쿨다운: 5초
- 시뮬레이션된 Http 클라이언트: 20
perftest 디렉터리에 config.cfg라는 파일을 만들고 다음 콘텐츠를 붙여넣습니다.
Warmuptime 5s Duration 30s CooldownTime 5s NumClientMachines 1 NumClientThreads 20
다음 명령을 실행하여 컨트롤러를 시작합니다.
Cd \perftest "%programfiles%\IIS Resources\WCAT Controller\wcctl" -c config.cfg -s script.cfg -d distribution.cfg -a localhost
모든 클라이언트가 연결되는 즉시 성능 테스트가 시작됩니다.
클라이언트가 하나뿐이므로 다른 관리자 권한 명령 셸을 열고 다음을 실행합니다.
"%programfiles%\IIS Resources\WCAT Client\wcclient.exe" localhost
더 많은 클라이언트에서 이 작업을 수행하려면 config.cfg의 NumClientMachines를 더 높은 수로 설정하고 컨트롤러 컴퓨터의 이름을 지정하여 wcclient 명령을 통해 클라이언트를 컨트롤러에 연결합니다.
예: wcclient MyPerfTestControllerMachine
참고 항목
64비트 버전의 Windows에서 이 작업을 수행하는 경우 WCAT는 "프로그램 파일(x86)" 디렉터리에 설치되며 WCAT를 시작하는 데 사용해야
%programfiles(x86)%
합니다.첫 번째 실행의 결과는 다음과 같습니다.
######################################################################## WCAT Performance Statistics_________________________________ Server : localhost () #Transactions : 3 (HTTP/1.1) Total Async Sockets : 20 (5 WCAT Pool Threads) Total Elapsed Time : 30 Secs (0 Hrs,0 Mins,30 Secs) Current Connections : 20 Total Connection Attempts : 436 ( 14/Sec) Total Connect Errors : 0 ( 0/Sec) Total Success Connections : 436 ( 14/Sec) Total Consec. Connect Errors: 0 ( 0/Sec) Total Bytes : 32301100 ( 1051 KB/Sec) Total Bytes Written : 32264 ( 1 KB/Sec) Total Bytes Read : 32268836 ( 1050 KB/Sec) Total Requests : 436 ( 14/Sec) Total Responses : 436 ( 14/Sec) Total Socket Reads : 6976 ( 232/Sec) Total Socket Writes : 436 ( 14/Sec) Total Parse Errors : 0 ( 0/Sec) Total Socket Errors : 0 ( 0/Sec) Total I/O Errors : 0 ( 0/Sec) Total Internal Errors : 0 ( 0/Sec) Total Time Outs : 0 ( 0/Sec) Total 200 OK : 436 ( 14/Sec) Total 30X Redirect : 0 ( 0/Sec) Total 304 Not Modified : 0 ( 0/Sec) Total 404 Not Found : 0 ( 0/Sec) Total 500 Server Error : 0 ( 0/Sec) Total Bad Status : 0 ( 0/Sec) Min. Connect Time : 0 MS Avg. Connect Time : 0 MS Max. Connect Time : 16 MS Min. Resp Time (1st Byte) : 1281 MS Avg. Resp Time (1st Byte) : 1371 MS Max. Resp Time (1st Byte) : 1578 MS Min. Response Time (Last) : 1281 MS Avg. Response Time (Last) : 1373 MS Max. Response Time (Last) : 1578 MS Current Outstanding Connects: 0 ( 20 Max) Current Waitable Connects : 0 ( 20 Max) Total Asynchronous Connects : 531 ( 1/Sec) Total Discarded Connects : 0 ( 0/Sec) ########################################################################
살펴봐야 할 중요한 수는 초당 요청 수입니다. 이 경우 초당 14개의 요청을 받습니다.
주의 사항 - JPG 파일이 클수록 더 적은 요청이 표시됩니다. 컴퓨터가 네트워크에 바인딩되어 있을 수 있습니다. IIS는 보내는 데이터로 인해 네트워크가 포화 상태이므로 더 많은 요청을 처리할 수 없습니다. 200-300KB 범위에서 JPG 파일을 사용하여 최상의 결과를 확인할 수 있습니다.
출력 캐싱 추가
저작권 메시지를 동적으로 삽입하는 코드는 상당히 느립니다. 웹 서버의 경우 초당 14개의 요청이 빠르지 않습니다. IIS는 훨씬 더 잘 수행됩니다. JPG 확장이 있는 URL을 커널 모드 캐시에 배치하는 캐싱 정책만 만들어야 합니다. 캐시 정책을 추가하는 방법은 다음과 같습니다.
IIS 관리 도구를 통해 캐시 정책 추가
- "관리영구 도구"로 이동하고 "인터넷 정보 서비스(IIS) 관리자"를 선택합니다.
- 왼쪽의 트리 뷰를 사용하여 "그림" 애플리케이션으로 이동합니다.
- "출력 캐싱 규칙" 메뉴 항목을 선택합니다.
- "추가..."를 클릭합니다. "작업" 메뉴에 있습니다.
- JPG를 캐시할 "파일 확장자"로 추가합니다.
- "캐시된 파일 모니터링" 섹션에서 "시간 간격"을 선택하고 시간 간격으로 00:00:10을 입력합니다.
- "헤더" 검사 확인란을 선택하고 "Accept-Language"를 입력합니다.
참고 항목
출력 캐시 사용자 인터페이스는 Windows Vista 서비스 팩 1 이전 버전에서는 사용할 수 없습니다.
명령줄을 통해 캐시 정책 추가
appcmd 도구를 사용하여 동일한 절차를 수행하려면 다음 명령을 입력합니다.
%windir%\system32\inetsrv\appcmd set config "Default Web Site/pictures"
-section:caching /+profiles.[extension='.jpg',duration='00:00:10',
policy='CacheForTimePeriod',varyByHeaders='Accept-Language']
성능 실행을 반복하여 구성 설정이 변경되는 내용과 방법을 확인합니다.
다음 명령을 실행하여 컨트롤러를 시작합니다.
Cd \perftest "%programfiles%\IIS Resources\WCAT Controller\wcctl" -c config.cfg -s script.cfg -d distribution.cfg -a localhost
다음을 사용하여 클라이언트를 시작합니다.
"%programfiles%\IIS Resources\WCAT Client\wcclient.exe" localhost
참고 항목
64비트 버전의 Windows에서 이 작업을 수행하는 경우 WCAT가 디렉터리에 설치되며
program files (x86)
WCAT를 시작하는 데 사용해야%programfiles(x86)%
합니다.
샘플 출력
########################################################################
WCAT Performance Statistics_________________________________
Server : localhost ()
#Transactions : 3 (HTTP/1.1)
Total Async Sockets : 20 (5 WCAT Pool Threads)
Total Elapsed Time : 30 Secs (0 Hrs,0 Mins,30 Secs)
Current Connections : 19
Total Connection Attempts : 13020 ( 434/Sec)
Total Connect Errors : 0 ( 0/Sec)
Total Success Connections : 13019 ( 433/Sec)
Total Consec. Connect Errors: 0 ( 0/Sec)
Total Bytes : 958045737 (31186 KB/Sec)
Total Bytes Written : 963406 ( 31 KB/Sec)
Total Bytes Read : 957082331 (31155 KB/Sec)
Total Requests : 13019 ( 433/Sec)
Total Responses : 13019 ( 433/Sec)
Total Socket Reads : 258283 ( 8609/Sec)
Total Socket Writes : 13019 ( 433/Sec)
Total Parse Errors : 0 ( 0/Sec)
Total Socket Errors : 0 ( 0/Sec)
Total I/O Errors : 0 ( 0/Sec)
Total Internal Errors : 0 ( 0/Sec)
Total Time Outs : 0 ( 0/Sec)
Total 200 OK : 13019 ( 433/Sec)
Total 30X Redirect : 0 ( 0/Sec)
Total 304 Not Modified : 0 ( 0/Sec)
Total 404 Not Found : 0 ( 0/Sec)
Total 500 Server Error : 0 ( 0/Sec)
Total Bad Status : 0 ( 0/Sec)
Min. Connect Time : 0 MS
Avg. Connect Time : 0 MS
Max. Connect Time : 63 MS
Min. Resp Time (1st Byte) : 0 MS
Avg. Resp Time (1st Byte) : 33 MS
Max. Resp Time (1st Byte) : 125 MS
Min. Response Time (Last) : 0 MS
Avg. Response Time (Last) : 45 MS
Max. Response Time (Last) : 141 MS
Current Outstanding Connects: 0 ( 20 Max)
Current Waitable Connects : 0 ( 20 Max)
Total Asynchronous Connects : 14093 ( 147/Sec)
Total Discarded Connects : 0 ( 0/Sec)
########################################################################
출력 캐싱 고급 항목
성능 카운터
출력 캐시의 성능을 확인하려면 "안정성 및 성능 모니터"의 출력 캐시 카운터를 확인합니다. 많은 흥미로운 카운터가 있습니다. 다음은 출력 캐시와 함께 "안정성 및 성능 모니터"을 사용하는 방법의 한 예입니다.
- Windows Server 2008에서 시작 메뉴 통해 PERFMON을 시작합니다. "관리시제 도구"로 이동하고 "안정성 및 성능 모니터"을 클릭합니다. Vista에서는 제어판 "관리시제 도구"를 찾을 수 있습니다.
- 오른쪽의 트리 보기에서 "성능 모니터"을 선택하고 도구 모음에서 큰 "+" 기호를 클릭합니다.
- "웹 서비스 캐시" 카운터로 이동하여 클릭하여 엽니다.
- "캐시된 총 URI" 카운터를 추가합니다.
- WCAT 테스트를 다시 실행합니다.
성능 테스트 중에 요청하는 항목 수에 따라 캐시된 URI 수가 증가하는 것을 볼 수 있습니다.
IIS 커널 모드 캐싱 규칙
IIS 출력 캐시는 두 개의 캐시 정책을 지원합니다. 일반 출력 캐시 정책은 IIS 작업자 프로세스에 상주하는 캐시를 활용합니다. 다른 캐시 정책은 커널 모드 캐시 정책이며, 이 경우 캐시는 커널 모드 드라이버인 HTTP.SYS 상주합니다.
커널 모드로 콘텐츠를 캐시하면 웹 사이트가 더 빠르게 진행될 수 있습니다. 커널 모드 캐시를 사용하도록 그림 애플리케이션의 구성을 수정합니다. 현재 구성의 모양은 다음과 같습니다(%systemdrive%\inetpub\wwwroot\pictures\web.config
).
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<directoryBrowse enabled="true" />
<caching>
<profiles>
<add extension=".jpg" policy="CacheForTimePeriod"
duration="00:00:10" varyByHeaders="Accept-Language" />
</profiles>
</caching>
</system.webServer>
</configuration>
이제 커널 모드 캐싱을 사용하도록 변경합니다.
%systemdrive%\inetpub\wwwroot\pictures\web.config
을(를) 여십시오.설정을 변경합니다.
<caching> <profiles> <add extension=".jpg" policy="CacheForTimePeriod" duration="00:00:10" varyByHeaders="Accept-Language" /> </profiles> </caching>
다음과 같이 변경합니다.
<caching> <profiles> <add extension=".jpg" kernelCachePolicy="CacheForTimePeriod" duration="00:00:10" /> </profiles> </caching>
varyByHeaders 특성을 더 이상 사용하지 않습니다. kernelModeCache가 사용자 모드 출력 캐시에서 지원하는 일부 기능을 지원하지 않기 때문입니다.
커널 모드 출력 캐시의 제한 사항
사용자 모드와 커널 모드 출력 캐시 간에는 두 가지 중요한 차이점이 있습니다.
- 커널 모드 출력 캐시는 인증 또는 권한 부여와 같은 사용자 모드에서 실행해야 하는 모듈 및 기능을 지원하지 않습니다. 예: 기본 또는 Windows 인증 같은 인증 체계를 사용하도록 설정하면 캐시 정책이 작동하지 않습니다. 콘텐츠는 제공되지만 캐시되지 않습니다. 콘텐츠가 캐시되는지 확인하는 방법은 "캐싱 문제 해결"을 참조하세요. 응답이 커널 모드 로 캐시되지 않는 이유에 대한 자세한 내용은 이 기술 자료 문서에서 확인할 수 있습니다.
- 커널 모드 출력 캐시는 varyByHeaders 특성을 지원하지만 varyByQuerystring은 지원하지 않습니다.
캐싱 문제 해결
FREB(실패한 요청 이벤트 버퍼링)는 요청이 캐시되는지 여부를 확인하는 가장 좋은 방법입니다. FREB는 무언가가 캐시되지 않는 이유를 알려줍니다. 다음은 FREB 로그의 샘플입니다. 이 경우 HTTPSYS_CACHEABLE 이벤트는 커널 모드 캐시를 사용하도록 설정되지 않았기 때문에 요청이 캐시되지 않음을 알려줍니다.
FREB를 사용하는 방법에 대한 자세한 내용은 IIS 7에서 추적을 사용하여 실패한 요청 문제 해결을 참조하세요.
다음 명령을 사용하여 커널 모드에서 캐시되는 콘텐츠를 확인합니다.
netsh http show cachestate
복잡성 캐싱
출력 캐싱을 사용하도록 설정하더라도 IIS는 요청을 즉시 캐시하지 않습니다. IIS가 요청을 "캐시에 합당하다"고 간주하기 전에 몇 번 요청해야 합니다. 캐시 적합성은 이 MSDN 문서에 설명된 ServerRuntime 섹션을 통해 구성할 수 있습니다.
캐시 적합성을 결정하는 두 가지 속성은HitTimePeriod 및 frequentHitThreshold입니다. 캐시 가능한 URL에 대한 요청 이상이 <frequentHitThreshold>
빈번한HitTimePeriod 내에 도착하는 경우에만 요청이 <캐시됩니다>.
frequentHitTimePeriod의 기본 설정은 10초입니다.
frequentHitThreshold의 기본 설정은 2입니다.
가장 인기 있는 페이지 캐싱
위의 예제에서는 확장 JPG가 있는 모든 파일을 출력 캐시에 배치합니다. 경우에 따라 더 선택적으로 특정 문서만 출력 캐시에 배치하려고 하기 때문에 항상 작동하지는 않습니다. 다음은 가장 자주 요청된 페이지인 기본 문서를 사용하여 이 작업을 수행하는 방법입니다.
디렉터리에 default.aspx
%systemdrive%\inetpub\wwwroot\pictures
파일을 만들고 다음 코드를 추가합니다.<%=DateTime.Now%>
"관리영구 도구"로 이동하고 "인터넷 정보 서비스(IIS) 관리자"를 선택합니다.
왼쪽의 트리 뷰를 사용하여 "그림" 애플리케이션으로 이동합니다.
페이지 아래쪽에서 "콘텐츠 보기"를 클릭합니다.
기본 문서(예: default.aspx 페이지)를 선택합니다.
오른쪽의 "작업" 메뉴에서 "기능 보기로 전환"을 클릭합니다. 구성한 모든 설정은 이제 기본 문서에만 적용됩니다.
"출력 캐싱 규칙" 설정을 엽니다.
".aspx"을 파일 확장자로 추가합니다.
"커널 모드 캐싱"을 선택한 다음, "시간 간격"을 선택하고 "캐시된 파일 모니터링"을 사용하도록 설정하고 시간 간격으로 00:00:30을 입력할 수 있습니다.
"Internet Explorer"로 이동합니다
http://localhost/pictures
. 페이지를 지속적으로 새로 고쳐서(Ctrl+F5를 눌러 브라우저 캐시에서 오지 않도록 하려면) 시간이 30초 동안 변경되지 않습니다.
요약
반동적인 콘텐츠에 IIS 출력 캐시 기능을 사용하면 웹 사이트를 개선할 수 있습니다. 성능 및 처리량 용량이 크게 향상되었습니다. 간단한 구성 변경만으로도 이 기능을 활용할 수 있습니다.