
최근 최대 메모리 사용량으로 인해 가동 중지 시간이 많이 발생한 사이트가 있습니다. 우리는 동일한 서버에서 실행되는 SQL Express와 함께 8GB RAM, Windows Server 2008 R2, IIS 7.5, WebForms 4.0 사이트를 갖춘 VPS를 실행하고 있습니다. 일반적으로 RAM 사용량은 2GB 미만입니다. 한 번은 RAM을 최대로 빠르게 늘리다가 갑자기 떨어졌습니다.
그 이후로 몇 가지 사항을 변경했고 며칠 동안 괜찮았으므로 해당 문제가 해결되었을 수도 있습니다. 그러나 Performance Counter를 통해서도 정보 로깅을 시작했습니다. IIS의 전체 요청이 천천히 증가하다가 갑자기 감소하는 것을 발견했습니다. 그러나 램은 느린 증가에 대응하지 않았습니다. (파란색 선은 RAM, 보라색 선은 총 요청량입니다.)
이 요청이 급증하는 원인은 무엇이며 어떻게 해결합니까? 앱 풀 재활용? 시간 초과가 발생하도록 요청 길이를 어떻게 제한합니까? 이것이 올바른 접근 방식입니까?
답변1
어떤 총 요청 카운터인가요? 이름만 보면 총 요청 수는 해당 앱에서 서비스하는 총 요청 수입니다.
그래서 그것은 계속해서 성장할 것입니다.
AppDomain 재활용(프로세스 내) 또는 App Pool 재활용(w3wp 프로세스 종료)이 카운터를 재설정할 가능성이 높습니다.
일반적인 조언은 다음과 같습니다.
- 컴파일 디버그=true로 실행하지 마세요.
- 앱 풀에 대한 메모리 기반 재활용 트리거 설정을 고려해보세요.
- RAM 사용량이 너무 많은 경우 32비트 앱 풀을 사용하여 자연스럽게 메모리 사용을 4GB 이하로 제한하는 것이 좋습니다. 4GB는 반올림 오류입니다.