1

w3wp.exe의 최대 메모리 크기는 있습니까? 내 상황이 2.5-3G 정도까지 올라가면 충돌/재설정되는 것처럼 보입니다.w3wp.exe에 대한 메모리 제한이 있습니까?

은 " GIVEN"치수 I 설정 아래의 몇 가지 카운터 당

와는 W3wp.exe를 HTTP 요청 후 (변화의 PID)를 충돌하는 W3wp.exe를 프로세스에 따라 0으로 재설정 서비스를 제공 할 것으로 나타났습니다. 결과적으로 REQUESTS_QUEUED 및 ACTIVE_REQUESTS가 커져서 w3wp.exe가 다시 시작될 때까지 처리가 지연됩니다. 피크 부하시 시스템 볼륨이 높아서 3-4 분마다 그렇게합니다. 그러나 그것이 메모리 문제인지 확실하지 않습니다.

나는 내 웹 서버 (IIS) 로그에 경고의 톤을 참조하십시오

프로세스 응용 프로그램 풀을 처리하는 '에서는 MyApplication'Windows 프로세스 인증 서비스에 치명적인 통신 오류가. 프로세스 ID는 '1732'입니다. 데이터 필드에 오류 번호가 있습니다.

결과 : 고객이 http 요청에 대한 간헐적 인 응답 시간을보고하고 있습니다.

이 메모리 제한을 늘리거나 증가 된로드를 처리하도록 IIS를 재구성 할 수 있습니까?

GIVEN : IIS 구성에 차이가있을 수 있으므로

  • 시스템이 나에게 아래로 통과되었습니다 등
  • 데이터베이스 : SQL 서버 2008R2
  • 웹 서버 : 윈도우 서버 2008R2 기업 SP1 (64 비트, 64G RAM)
  • IIS 7.5
  • MVC4 웹 API를 모델 및 비즈니스 객체와 함께 적극적으로 MemoryCache와 함께 사용하는 경우 오
  • 2 시간이 로그를 보았다하지만 정말
  • 하나 개의 응용 프로그램 풀 크게 관련 아무것도 표시되지 않는 ...이 서버

답변

2

실제로 w3wpe.exe 프로세스가 충돌하는 메모리 캐싱 과용이 발생한 RC를 해결 한 후 mvc4 웹 API 서비스가 20G까지 성장할 수 있다고 안전하게 말할 수 있습니다 ... 3G (64 비트 시스템 및 애플리케이션 풀). 최소한 그건 내가 퇴거 정책을하기 전에 봤던 것들을 정리하는 마지막 단계였습니다. 아마도 풋 프린트가 약간 과도하지만 응용 프로그램이 매우 빨라서 기계 학습 대상 콘텐츠가 100 밀리 초 미만일 것입니다.

1

에서 실행중인 다른 LOB 응용 프로그램은 32에서 실행하도록 설정 응용 프로그램 풀 없습니까 비트 모드? 많은 RAM이 있더라도 메모리 문제가 발생할 수 있습니다. 64 비트 시스템에서 32 비트 프로세스의 메모리 제한은 4GB입니다.

+0

안녕하세요, 답장을 보내 주셔서 감사합니다. 아니요, 64 비트로 설정되었습니다. diag 디버그를 첨부하고 system.objectdisposedexception ...으로 작업 할 스택 추적을 가지고 있습니다. 포함 된 캐싱 및 동시성 문제로 요청을 수신하기위한 스레딩 모델과 관련된 문제보다 많습니다. 지금 당장은 디버그 진단마다 스택 추적 덤프를로드하여 windbg 내에서로드하는 방법을 알아 내려고 노력하고 있습니다 (그러나 windbg..wip 사용법은 확실하지 않습니다). – JaJ

+0

메모리가 아닌 경우 스레딩 및 동시성을 조사하는 것이 좋습니다. 클라이언트 컴퓨터에서 오는 요청 외에도 웹 서비스 호출도하고 있습니까? 그것은 추가 스레드를 묶을 수 있습니다. [this] (http : // stackoverflow.com/questions/10455455/server-2008-rc2-iis-7-5-asp-net-and-requests-queued-poor-performance)를 참조하십시오. 서버에 여러 프로세서/코어가있는 경우 여러 프로세스 (웹 가든)에 트래픽을 분산시킬 수 있습니다. –

+0

확실히 메모리 (제한 사항) 문제는 아닙니다. 가능성이 아닌 비 스레드 안전 메모리 캐시 또는 경합/교착 상태가 발생합니다. 그러나 충돌 덤프에서 아무것도 가리키는 것은 없습니다. 예, 다른 LOB REST API에 대한 웹 서비스 호출을 작성합니다. 시퀀스는 ..... Request Received -> Task.Factory.StartNew (다른 LOB 서비스로 나머지 API 호출 호출) -> [AppSetting 여부에 관계없이 해당 요청을 기다리는 중] -> 우리의 데이터베이스 -> 응답을 다시 누르십시오. (우리가 작성한 API 요청과 데이터베이스 쿼리를 포함하여). 따라서 스레드가 블로킹되어 있고 동기화 이후 스레드 풀로 반환되지 않을 가능성이 있습니다 – JaJ