관리 메뉴

웹개발자의 기지개

[IIS] ASP.Net Core 8이상 운영시 웹사이트 속도 최적화 - Application Pool 설정 최적화 [메인페이지 로딩속도 개선하기] 본문

윈도우서버

[IIS] ASP.Net Core 8이상 운영시 웹사이트 속도 최적화 - Application Pool 설정 최적화 [메인페이지 로딩속도 개선하기]

웹개발자 워니 2026. 6. 5. 09:38

 

ASP.NET Core 사이트가 일정 시간 접속이 없으면 IIS App Pool이 잠들었다가, 첫 접속 때 다시 기동되면서 5~15초 지연될 수 있다. Microsoft도 IIS에서 Application Initialization, AlwaysRunning, Idle Timeout 0 설정한다.

 

 

Application Pools (응용프로그램풀)
해당 App Pool 선택 
Advanced Settings (고급설정)

 

Start Mode: AlwaysRunning
Idle Time-out (minutes): 0

 

그리고, 사이트 설정에서, 

Preload Enabled: True (미리 로드 설정됨)

 

 

 

 

 

필자는 위의 참고 내용대로 설정을 모두 하였으나, 최초 메인페이지 로딩시에만 9.4초 정도 느려지는 이유를 해결하지 못했으나, 

다음과 같이 최초 메인페이지 접속시 로딩 속도 개선을 해결하였다.

 

문제는 외부 DB서버 접속시에 최초 접근시에 부하가 잠깐 걸리는게 문제였다. 그 다음 연이어 접속할때는 내부 캐시 처리 되어 아주 빠르게 로딩 및 접속이 가능하였다.

 

1. Connection String 소스 보완 [ appsettings.json ] , 커넥션 풀사용

 

"ConnectionStrings": {
"WebDB": "Data Source=서버아이피,포트번호;Initial Catalog=DB;Persist Security Info=True;User ID=user;Password=1234;Encrypt=false;TrustServerCertificate=True;Connect Timeout=5;Pooling=True;Min Pool Size=5;Max Pool Size=100;"
}

 

2. 메인페이지의 MainController 도 async 비동기 처리함

 

public async Task<IActionResult> Index()
{
     var popups = await db?.Popups.Where(p => p.Is_view == "y").ToListAsync();
     ViewBag.Popups = popups;
     return View();
    //return Content("OK");
}

 

 

 

참고 : https://aspdotnet.tistory.com/3481

Comments