2012-12-11 1 views
2

동일한 웹 사이트를 제공하는 두 개의 동일한로드 균형 조정 웹 서버 (ws1 및 ws2)가 있습니다. 둘 다 PDF와 같은 이미지를 많이 포함하는 페이지를 크롤링하는 순간에 몇 개의 크롤러가 있습니다 (아마도 평균 25 페이지). 두 서버간에 ~ 60 명의 동시 사용자가 있지만 크롤러는 훨씬 많은 요청을 처리합니다. ws1의 IIS 응용 프로그램 풀은 ~ 500MB RAM을 소비하며 ws2의 응용 프로그램 풀은 ~ 2gb RAM을 소비합니다 (각 서버에서 4GB 사용 가능). 이러한 소비 수준은 몇 시간 동안 지속되었습니다. 정적 캐싱 및 정적 압축을 수행하도록 IIS를 구성했지만 RAM 소비에 영향을 줄 수 있다고 생각할 수는 없습니다.IIS 응용 프로그램 풀 메모리 사용을 향상시키기위한 코딩

문제는 ws2의 RAM이 거의 끝나고 그 서버의 웹 페이지가 ws1보다 훨씬 느리게로드되어 최종 사용자에게 적합하지 않다는 것입니다.

내 질문 : - 그것이 (WS2에 ~ 2GB) 사용 가능한 RAM의

  • 50 %는 응용 프로그램 풀 소비하기 위해 많은 것 같아?
  • PDF 및 이미지와 같은 더 큰 요청과 관련하여 서버가 리소스, 특히 RAM을 관리하는 데 도움이되도록 프로그래밍/구성 고려 사항이 있습니까?

이 점은 현재 매우 일반적이라는 것을 알고 있습니다. 다른 정보가 포함되면 도움이 될 것입니다. 그래서이 질문을 더 자세히 업데이트 할 수 있도록 의견을 남겨주세요.

+0

로드 밸런서가로드 균형을 조정하는 것처럼 보이지 않습니다. 사용되는 메모리의 양에 관해서는, 나는 사용 가능한 메모리의 50 %를 사용하는 응용 프로그램 풀이 좋지 않다고 생각합니다. 성능 문제를 일으키는 메모리 사용이 확실합니까, 아마도 데이터베이스 IO와 같은 다른 것일 수 있습니다. – Matthew

답변

0

가장 좋은 시작 지점은 을 결정하는 것입니다.은이 모든 메모리를 사용하고 있습니다. 상업 프로파일

http://www.jetbrains.com/profiler/

http://www.red-gate.com/products/ants_performance_profiler/index.htm

등 IIS에서 실행되는 코드를 프로파일 링 할 수 있습니다. 개발 환경에서 문제를 재현 할 수 있다면 Visual Studio의 메모리 프로파일 러는 메모리 사용량을 진단 할 수 있어야합니다. (아마도 프로덕션 IIS 인스턴스에 대해 독립 실행 형을 사용하는 방법이있을 것입니다. 확실하지는 않습니다).

응용 프로그램이 할당 한 메모리 및 내용을 확인하십시오.

관련 문제