메모리 누수 또는 메모리 부족 예외 BizTalk Server 프로세스를 해결 하는 방법

기술 자료 번역 기술 자료 번역
기술 자료: 918643 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

이 페이지에서

요약

메모리 누수를 일반적인 문제입니다. 시도해 야 할 수 있습니다. Microsoft BizTalk Server 특정 메모리 누수 또는 메모리 부족 (OOM) 예외 원인을 찾기 위해 몇 가지 단계입니다. 이 문서에서는 메모리 사용 및 메모리 관련 문제를 평가할 때 고려해 야 할 중요 한 사항에 설명 합니다. 이러한 고려 사항은 다음과 같습니다.
  • 실제 RAM
  • 큰 메시지 처리
  • 사용은 / 3 GB 스위치
  • 사용자 지정 구성 요소 사용
  • Microsoft의 버전입니다.NET Framework 시스템 실행
  • 프로세서 개수

소개

이 문서에서는 메모리 누수 문제를 해결 하는 방법에 설명 하거나 Microsoft biztalk BizTalk Server 프로세스에서 메모리 부족 예외 서버입니다.

추가 정보

BizTalk Server 프로세스에서 메모리 누수가 발생할 수 있습니다. Microsoft Windows 작업 관리자에서 메모리 사용량이 50 이상 소비 하는 경우 실제 RAM의 백분율입니다. 메모리 누수가 메모리 부족 예외가 발생할 수 있습니다. 프로세스는 시스템 메모리 부족 실행 될 때까지 메모리 사용량이 증가 때 또는 프로세스가 작동을 멈출 때까지.

이 문제가 발생 하면 경고 메시지는 유사한 다음과 같은 메시지가 이벤트 로그에 기록 됩니다.

이벤트 종류: 경고
이벤트 범주: (1)
이벤트 ID: 5410
설명: 종료 하려면 BizTalk 서비스가 필요한 오류가 발생 했습니다. 가장 일반적인 원인은 없는 메모리 오류 및 연결할 수 없는 것 또는 BizTalk 데이터베이스 중 하나로 연결 손실 됩니다. 서비스 종료 일 분에서 자동 다시 시작. 문제가 있는 데이터베이스를 사용할 수 있습니다 경우이 주기가 반복 됩니다.
오류 메시지: 예외 형식 System.outofmemoryexception이 throw 되었습니다.
오류 출처:
BizTalk 호스트 이름: BizTalkServerApplication
Windows 서비스 이름: BTSSvc {DCC899FE-C62F-41BE-851A-8720B2EB9C14}

이벤트 종류: 경고
이벤트 범주: (1)
이벤트 ID: 5410
설명: 종료 하려면 BizTalk 서비스가 필요한 오류가 발생 했습니다. 다음은 가장 일반적인 원인입니다. 1) 메모리 오류 예기치 않은 부족. 또는 2) 연결할 수 없는 것 또는 BizTalk 데이터베이스 중 하나로 연결 손실. 서비스 종료 일 분에서 자동 다시 시작. 문제가 있는 데이터베이스를 사용할 수 있습니다 경우이 주기가 반복 됩니다.
오류 메시지: 예외 형식의 'System.OutOfMemoryException' 되었습니다 발생 합니다.
오류 출처: mscorlib
BizTalk 호스트 이름: BizTalkServerApplication
Windows 서비스 이름: BTSSvc$ BizTalkServerApplication

중요 한 고려 사항

실제 RAM 및 메모리 사용량

예상 되는 동작은 절반 정도가 실제 RAM을 사용 하는 프로세스에 대 한 것이 있기 때문에 메모리 사용량 지침으로 사용 합니다. 예를 들어, BizTalk Server 4 gb RAM의 경우 약 500 mb의 RAM 사용 하 여 BizTalk Server 프로세스 않는 누수 가능성이 있습니다. 1GB의 RAM BizTalk Server 프로세스를 사용 하는 경우 메모리 누수 또는 높은 메모리 상황이 있을 수 있습니다. 메모리 소비가 장기 실행 저장된 프로시저 또는 오케스트레이션에 의해 발생할 수 있습니다. BizTalk 호스트 일반적으로 메모리 누수 또는 고위 메모리 조건을 발생 여부를 확인 하려면 사용 하는 메모리 양을 알아야 합니다.

큰 메시지

BizTalk Server 큰 메시지를 처리할 때 시스템 메모리 누수가 발생 한 것 같습니다. 그러나 메시지 많은 양의 메모리 사용할 수 있습니다. 대용량 메시지에 대 한 자세한 내용은 다음 Microsoft 개발자 네트워크 (MSDN) 웹 사이트를 방문 하십시오.
http://blogs.msdn.com/biztalk_core_engine/archive/2005/02/28/381700.aspx

http://msdn.microsoft.com/en-us/library/aa560481 (BTS.10).aspx

또한 상위 메모리를 사용 하는 경우 예상할 수 있습니다 고려해 야 BizTalk 큰 메시지를 처리 하는 서버입니다. 하드웨어를 업그레이드 할 수 있습니다. 사용자 환경에서 BizTalk Server 성능 요구 사항을 충족 합니다.

메모리 누수를 재현해 소요

메모리 누수를 즉시 발생할 수 또는 위에 누적 될 수 있다 시간입니다. 두 시나리오 모두에 공통적입니다.

32 비트 컴퓨터에서 /3GB 스위치 사용

일반적으로 프로세스가 2GB의 가상 주소 공간을 액세스할 수 있습니다. /3GB 스위치에 더 많은 주소 지정 가능 메모리를 필요로 하는 시스템에 대 한 옵션입니다. 이 옵션은 메시지를 처리 하기 위한 메모리 사용을 향상 될 수 있습니다. 그러나 /3GB 스위치는 1GB의 주소 지정 가능 메모리를 커널 모드 작업에 대 한 있습니다. 또한이 스위치는 풀 메모리 부족의 위험이 증가할 수 있습니다.

자세한 정보는 /3GB 스위치를 다음 Microsoft 개발자 네트워크 (MSDN) 웹 사이트를 방문 하십시오.
http://msdn.microsoft.com/en-us/library/ms791558.aspx
32 비트 버전의 Windows에서 /3GB 스위치를 사용 하는 경우 프로세스가 3GB의 가상 주소에 액세스할 수 있습니다. 경우 프로세스가 큰 주소 공간 인식 합니다. 큰 주소는 프로세스입니다 때 실행 설정 이미지 헤더에 IMAGE_FILE_LARGE_ADDRESS_AWARE 플래그를 인식 합니다. 큰 주소 BizTalk 프로세스 이기 때문에 인식, BizTalk /3GB 스위치에서 도움이 됩니다.

(AMD64) Windows의 64 비트 버전에서 32 비트 BizTalk 호스트 인스턴스가 실행 중이면 BizTalk 큰 주소 이기 때문에 BizTalk 프로세스 혜택에서 4GB 메모리 주소 공간 인식 합니다. 따라서 높은 메모리 응용 프로그램을 64 비트 서버 이동 최상의 솔루션이 될 수 있습니다.

8 (AMD64) Windows의 64 비트 버전에서 64 비트 BizTalk 프로세스에 있습니다 1TB 메모리를 주소 지정할 수 있습니다.

또한 가상 바이트 및 전용 바이트는 프로세스가 사용을 고려해 야 합니다. BizTalk 호스트 인스턴스 (속해 있는.가상 바이트 값을 2GB에 도달 하기 전에 NET Framework 응용 프로그램)에서 메모리 부족 오류가 나타날 수 있습니다. 이 프로세스 ( /3GB 스위치) 없이 32 비트 버전의 Windows에서 주소를 지정할 수 있는 최대 메모리 2GB 인 경우에 발생할 수 있습니다. 왜 이러한 문제가 발생할 수 있습니다에 대 한 설명에 대 한, 다음 Microsoft 개발자 네트워크 (MSDN) 웹 사이트를 방문 하십시오.
http://msdn.microsoft.com/en-us/library/ms972959.aspx
http://blogs.msdn.com/tess/archive/2005/11/25/496898.aspx
/3GB 스위치는 또한 최대 전용 바이트의 1800 MB BizTalk 과정에서 800 MB 증가합니다. 자세한 내용은./3GB 스위치를 사용 하 고 NET Framework 응용 프로그램의 성능을 다음 Microsoft 개발자 네트워크 (MSDN) 웹 사이트를 방문 하십시오.
http://msdn2.microsoft.com/en-us/library/ms998583.aspx
다음 표에서이 정보를 요약 하 고 실질적인 제한은 가상 바이트 및 전용 바이트에 대 한 포함 되어 있습니다.
표 축소표 확대
프로세스Windows(큰 주소 인식 프로세스)와 주소 지정이 가능한 메모리실질적인 제한은 가상 바이트전용 바이트 실질적인 제한
32 비트32 비트2 GB1400 M B800 MB
32 비트32-비트 3 GB3 GB2400 MB1800 MB
32 비트64 비트4 GB3400 MB2800 MB
64 비트64 비트8 테라바이트적용할 수 없습니다.적용할 수 없습니다.
주소 지정이 가능한 메모리 32 비트 및 64 비트 Windows에 대 한 자세한 내용은 다음 Microsoft 개발자 네트워크 (MSDN) 웹 사이트를 방문 하십시오.
http://msdn.microsoft.com/en-us/library/aa366778.aspx
다음은 PAE와 /3GB 가능성 BizTalk Server 다른 버전에 대 한 표입니다.
표 축소표 확대
제품PAE3 GB
BizTalk Server 2004예]아니요
BizTalk Server 2006예]예]
BizTalk Server 2006 R2예]예]
BizTalk Server 2009예]예]
컴퓨터의 성능 요구 사항에 맞게 /3GB 스위치를 사용 해야 하는 경우 BizTalk Server, 실행 중인 BizTalk 그룹에 서버를 추가 하는 것이 좋습니다. 이렇게 하면 메모리 사용량이 호스트 인스턴스를 확장할 수 있습니다.

BizTalk 구성 요소 인터넷 정보 서비스 (IIS) 프로세스 내에서 실행 될 수 있습니다. /3GB 스위치를 사용 하는 경우에 활용할 수 있습니다.

Windows SharePoint Services 2.0 또는 그 이후 버전 또는 SharePoint Portal Server 2003 SP2 이상 버전을 실행 하는 컴퓨터에는 /3GB 스위치가 지원 되지 않습니다. 자세한 내용은 Microsoft 기술 자료의 다음 문서 번호를 클릭 하십시오.
933560Windows Server 2003 /3GB 스위치 Windows SharePoint Services 2.0에서 이후 버전에서 또는 SharePoint Portal Server 2003 서비스 팩 2에서 또는 이후 버전에서 지원 되지 않습니다.

사용자 지정 구성 요소 사용

파이프라인 또는 서비스 구성 요소와 같은 사용자 지정 구성 요소를 사용 하는 경우 이러한 구성 요소는 무엇을 알고 있어야 합니다. 또한 이러한 구성 요소의 잠재적 효과에서 메모리 사용량을 알고 있어야 합니다. A 구성 요소에서 문서를 변환할 때 일반적인 메모리 문제가 발생 합니다. 는 변환 작업에서 메모리 집중형 작업이입니다. 문서에 있을 때 변환, 메시지 스트림 BizTalk Server Microsoft에 전달 합니다.NET BizTalk 프로세스 내의 프레임 워크 XslTransform 클래스입니다.

또 다른 일반적인 문제 많이 사용 되는 문자열 조작 때 발생 합니다. 많이 사용 되는 문자열 조작 많은 양의 메모리를 소비할 수 있습니다. 방법에 대 한 자세한 내용은 성능 향상, 다음 Microsoft 개발자 네트워크 (MSDN) 웹 사이트를 방문 하십시오.
http://msdn2.microsoft.com/en-us/library/ms998547

버전의.NET 프레임 워크

Microsoft입니다.NET Framework 2.0 및.NET Framework 1.1 다른 메모리 문제가 있습니다. 따라서, 이들 사이의 다양 한 결과가 나타날 수 있습니다. 사용 중인 경우는.NET Framework 확인 최신.NET Framework 서비스 팩 1이 설치 됩니다. 서비스 팩이 몇 가지 알려진된 메모리 문제를 해결합니다. 자세한 내용은 다음 문서 번호를 클릭 하십시오.

945757 고정 된 문제를.NET Framework 2.0 서비스 팩 1
867460 목록에서 수정 된 버그는.NET Framework 1.1 서비스 팩 1

프로세서 개수

공용 언어 런타임 (CLR) 다음 가비지가 수집기 (Gc):
  • 워크스테이션 (Mscorwks.dll)
  • 서버 (Mscorsvr.dll)
BizTalk Server 실행 중인 다중 프로세서 시스템에서 컴퓨터인 경우는.NET Framework 실행 엔진의 서버 버전을 사용합니다. 이것은 기본 동작입니다. 서버 가비지 수집기가 최대 처리량을 위해 설계 되었습니다. 또한 서버 가비지 수집기가 매우 높은 성능을 제공 하도록 확장할 수 있습니다. 이 가비지 수집기는 메모리 할당 하 고 나중에 고성능 시스템을 제공 하는 메모리를 해제 합니다. 따라서 컴퓨터 BizTalk Server 일부와 함께 실행 됩니다.NET Framework 구성으로 메모리 누수만 있는 것으로 보입니다. 그러나이 시나리오에서는 메모리 사용 예상된 된 동작입니다. 컴퓨터 시스템 메모리가 부족 해지면 또는 프로세스 인해 어드레서블 메모리가 부족 하 여 중지 되는 경우에 메모리 누수 현상이 있을 수 있습니다.

경우 컴퓨터 즉 BizTalk Server 실행 되는 단일 프로세서 시스템에서.NET 프레임 워크 실행 엔진이 워크스테이션 버전을 사용합니다. 이 기본값입니다. 동작입니다. 워크스테이션 가비지 수집기 할당 알고리즘이 아닙니다. 배율 또는 최대 처리량에 대 한 설계. 이 가비지 수집기를 사용합니다. 동시 가비지 수집기가 메서드. 이러한 방법으로 디자인 된 복잡 한 사용자 인터페이스를 가진 응용 프로그램입니다. 이러한 응용 프로그램이 필요 더 적극적인 가비지 수집 합니다.

중요 한 이 섹션, 메서드 또는 작업 레지스트리를 수정 하는 방법을 설명 하는 단계를 포함 합니다. 그러나 레지스트리를 잘못 수정 하면 심각한 문제가 발생할 수 있습니다. 따라서 다음이 단계를 신중 하 게 수행 해야 합니다. 추가 보호를 위해이 수정 하기 전에 레지스트리를 백업 합니다. 그런 다음 문제가 발생할 경우 레지스트리를 복원할 수 있습니다. 백업 및 레지스트리를 복원 하는 방법에 대 한 자세한 내용은 Microsoft 기술 자료의 다음 문서 번호를 클릭 합니다.
322756 백업 하 고 Windows에서 레지스트리를 복원 하는 방법
경우에 따라 다중 프로세서 시스템에서의 실행 엔진이 워크스테이션 버전을 실행 하는 것이 적합할 수 있습니다. 다음 레지스트리 키를 사용 하 여 실행 엔진이 워크스테이션 버전으로 전환할 수 있습니다.

BizTalk 2006 및 이후 버전

다음 CRL 호스팅 문자열 레지스트리 키와 해당 값을 만듭니다.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTSSvc$BizTalkHostName\CLR 호스팅

이름: 맛
데이터: wks

BizTalk 2004

다음 CRL 호스팅 문자열 레지스트리 키와 해당 값을 만듭니다.

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\BTSSvc {GUID} \CLR 호스트

이름: 맛
데이터: wks

자세한 내용은 다음 Microsoft 개발자 네트워크 (MSDN) 웹 사이트를 방문 하십시오.
http://msdn2.microsoft.com/en-us/library/ms973838

http://blogs.msdn.com/tess/archive/2008/04/17/how-does-the-gc-work-and-what-are-the-sizes-of-the-different-generations.aspx

일반적인 원인 및 해결 방법

프로세스 메모리 사용 및 실제 메모리 사용 임계값을 조절

BizTalk Server 2006 및 이후 버전에서 사용 되는 프로세스 메모리 사용실제 메모리 사용 임계값을 조절 변경할 수 있습니다.
  • 기본적으로 프로세스 메모리 사용 조절 임계값은 25로 설정 됩니다. 300MB 이상의 BizTalk 프로세스 메모리 사용 되며이 값이 초과 되 면 제한 조건이 발생할 수 있습니다. 32 비트 서버에서 50 프로세스 메모리 사용 값을 늘릴 수 있습니다. 64 비트 서버에서이 값을 100으로 늘릴 수 있습니다. 조절 발생 하기 전에 BizTalk 프로세스에 의해 더 많은 메모리 소비에 대 한 있습니다.
  • 실제 메모리 사용 현황 임계값을 조절 기본값인 0 있습니다. 총 시스템 메모리가이 임계값을 측정합니다. 따라서 0 보다 다른 값이 구성 된 경우 비 BizTalk 프로세스가 높은 메모리를 사용 하는 경우 제한 조건이 발생할 수 있습니다.
조절 임계값에 대 한 자세한 내용은 다음 Microsoft 개발자 네트워크 (MSDN) 웹 사이트를 방문 하십시오.
http://msdn.microsoft.com/en-us/library/aa559628.aspx

디하이드레이션 임계값을 조절

오케스트레이션 64 비트 호스트에서 실행 되는 경우 기본 메모리 디하이드레이션 임계값 디하이드레이션 너무 많이 발생할 수 있습니다. 이 문제에 대 한 자세한 내용은 다음 Microsoft 개발자 네트워크 (MSDN) 웹 사이트에서 디하이드레이션 기본 속성 항목을 참조 하십시오.
http://msdn.microsoft.com/en-us/library/aa560586.aspx
참고 64 비트 호스트 BizTalk Server 2006 및 이후 버전에서 지원 됩니다.

32 비트 호스트 인스턴스에서 동일한 하드웨어에서 임계값을 조절 기본 메모리 디하이드레이션 사용 하 여 동일한 오케스트레이션을 실행할 때 관찰 된 디하이드레이션 명목상입니다.

확장 된 메모리 주소 공간이 64 비트 아키텍처를 제공 하므로 (16 TB 4GB 대신), 64 비트 호스트 인스턴스는 32 비트 호스트 인스턴스 보다 훨씬 더 많은 메모리 할당 됩니다. 이 기본 메모리 조절 임계값은 초과할 수 발생할 수 있습니다.

이 문제를 해결 하려면 BTSNTSvc64.exe.config 파일의 VirtualMemoryThrottlingCriteria 및 PrivateMemoryThrottlingCriteria 값을 변경 합니다. Process\Virtual 바이트 및 Process\Private 바이트 성능 모니터 카운터를 사용 하 여 큰 오케스트레이션 인스턴스를 할당 하는 메모리 양을 결정 합니다.
  • 다음 사항에 따라 두 속성에 대 한 OptimalUsage 값을 설정 합니다.
    VirtualMemoryThrottlingCriteria: \Process\Virtual 바이트 값 + 10 %
    PrivateMemoryThrottlingCriteria: \Process\Private 바이트 값 + 10 %
  • MaximalUsage 속성을 OptimalUsage 값 + 30%는 모두에 대 한 설정
예를 들어, \Process\Virtual 바이트 성능 모니터 카운터 값 오케스트레이션 인스턴스에 대 한 5,784,787,695 바이트 (5,517 MB) 이면 VirtualMemoryThrottlingCriteria 6,069 MB (5,784,787,695 * 1.10 = 6,363,266,464.5 바이트)에 대 한 OptimalUsage 값을 설정 합니다. VirtualMemoryThrottlingCriteria 7,889 MB (6,363,266,464.5 * 1.30 = 8,272,246,403.85 바이트)에 대 한 MaximalUsage 값을 설정 합니다.

\Process\Private 바이트 성능 모니터 카운터 값을 435689400 바이트 (415 m B) 되 면 PrivateMemoryThrottlingCriteria (435689400 * 1.10 = 479258340 바이트) 457 mb에 대 한 OptimalUsage 값을 설정 합니다. PrivateMemoryThrottlingCriteria (623035842 = 479258340 * 1.30) 594 MB에 대 한 MaximalUsage 값을 설정 합니다.

이 예제에 대 한 제한을 줄일 수 BTSNTSvc64.exe.config 파일에서 다음 값이 지정 됩니다.
표 축소표 확대
성능 모니터 카운터메모리 할당OptimalUsageMaximalUsage
\Process\Virtual 바이트5784787695 바이트 (5517 MB)60697889
\Process\Private 바이트435689400 바이트 (415 m B)457594
이 값이 다음 BTSNTSvc64.exe.config 파일에는 다음과 같이 나타납니다.
<xlangs>
      <Configuration>
                  <Dehydration>
                              <VirtualMemoryThrottlingCriteria OptimalUsage="6069" MaximalUsage="7889" IsActive="true" />
                              <PrivateMemoryThrottlingCriteria OptimalUsage="457" MaximalUsage="594" IsActive="true" />
                  </Dehydration>
      </Configuration>
</xlangs>
오케스트레이션 호스트 인스턴스를 실행 중인 확인 하려면 ID 프로세스 \BizTalk:Messaging\ID 프로세스에서에서와 \Process\ID 프로세스 성능 모니터 카운터를 일치 시킬 수 있습니다. 그런 다음 해당 \Process\Virtual 바이트 및 \Process\Private 바이트 성능 모니터 카운터에 대 한 평균 값을 확인 하십시오.

참고 SQL Server 2008에 BizTalkMsgBoxDb 데이터베이스를 실행 하는 경우 높은 디하이드레이션 성능이 크게 저하가 될 수 있습니다.

BizTalk Server 서비스 팩 및 누적 업데이트

BizTalk Server 서비스 팩과 누적 업데이트는 최신 수정 프로그램이 포함 됩니다. 이러한 알려진된 System.OutOfMemoryException 문제에 영향을 주는 포함 됩니다.

2281783 BizTalk Server 2006 R2 서비스 팩 및 누적 업데이트 목록

BizTalk Server 2004 서비스 팩 2

HeapDeCommitFreeBlockThreshold

기본적으로 theHeapDeCommitFreeBlockThreshold 레지스트리 키 값을 0입니다. 값이 0 이면 힙에서 즉 관리자는 사용할 수 있는 각 4 킬로바이트 (KB) 페이지를 취소할. 커밋 해제 작업에는 가상 메모리 조각화가 발생할 수 있습니다. 힙 관리자에 HeapDeCommitFreeBlockThreshold 설정의 크기는 작업의 종류에 따라 달라 집니다에 시스템을 수행 하 고 있습니다. 권장 되는 시작 0x00040000 크기가입니다. 값입니다.

값을 변경 하기 전에 다음 정보를 고려 하십시오. 의의
HeapDeCommitFreeBlockThreshold
레지스트리 키:
  • 이 변경 메모리 조각화에만 적용 문제가 발생 했습니다.
  • 이 변경 시스템입니다. 따라서 대부분의 프로세스는 시작에 더 많은 메모리를 사용 합니다.
  • 만이 변경 된 BizTalk 시스템에 대 한 고려 서버를 자신의 주요 임무로 합니다.
가상 메모리 조각화를 줄일 수를 늘릴 수 있습니다. HeapDeCommitFreeBlockThreshold 설정 값을 변경 하 여 힙 관리자에서의 크기를 다음 레지스트리 키:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session 관리자


값 이름: HeapDeCommitFreeBlockThreshold
값 종류: REG_DWORD
값 데이터: 0x00040000 (권장 되는 시작 값입니다.)
기본 값: 없음
HeapDeCommitFreeBlockThreshold 레지스트리 키에 대 한 자세한 내용은 Microsoft 기술 자료의 다음 문서 번호를 클릭 합니다.
315407"HeapDecommitFreeBlockThreshold" 레지스트리 키

변환 작업

수신 포트, 송신 포트, BizTalk Server 매우 큰 메시지 XML 변환 연산을 수행 하거나, XLANG에 XSL 변환 하면 전체 메시지를 메모리에 로드 합니다.

하 이 문제를 해결 하려면 다음 방법 중 하나를 사용 하십시오.
  • 해당 BizTalk Server 메시지 개수 줄이기 동시에 프로세스입니다.
  • 중인 XML 메시지 크기 줄이기 변환 합니다.
System.Policy.Security.Evidence 개체 변환에서 자주 사용 되 고 많은 메모리를 사용할 수 있습니다. 인라인 C# (또는 기타 인라인 언어)을 사용 하는 scripting 펑 토이 드 맵을 포함 되 면 어셈블리가 메모리에서 생성 됩니다. System.Policy.Security.Evidence 개체는 실제 호출 하는 어셈블리의 개체를 사용합니다. 이 상황은 BizTalk 서비스를 다시 시작할 때까지 삭제 되는 루트 개체를 만듭니다.

대부분의 기본 BizTalk 펑 토이 드 인라인 스크립트로 구현 됩니다. 이러한 항목은 System.Byte 개체를 메모리에서 수집할 수 발생할 수 있습니다. 메모리 사용량을 최소화 하기 위해 이러한 펑 토이이 드 작은 어셈블리로 사용 하는 지도 두는 것이 좋습니다. 그런 다음 해당 어셈블리를 참조 합니다. 다음 차트를 사용 하 여 인라인 스크립트는 펑 토이 드를 사용할지를 결정 하 고 어떤 펑 토이 드 인라인 스크립트를 사용 하지 마십시오.

두 번째 열에 "예"이 펑 토이이 드 인라인 스크립트로 구현 되 고 있는 메모리에 System.Byte 개체를 수집 하면 됩니다. "No"이 펑 토이이 드 인라인 스크립트로 구현 하지 않음을 System.Byte 개체를 메모리에서 수집 발생 합니다 의미 합니다.
표 축소표 확대
펑 토이 드인라인 스크립트?
모든 문자열 펑 토이 드예]
모든 수치 펑 토이 드예]
IsNil 제외 하 고 모든 논리적 펑 토이 드예]
논리 IsNil 펑 토이 드아니요
모든 날짜/시간 펑 토이 드예]
모든 변환 펑 토이 드예]
모든 공학용 펑 토이 드예]
모든 누적 펑 토이 드예]
모든 데이터베이스 펑 토이 드아니요
고급 펑 토이 드인라인 스크립트?
Looping 펑 토이 드아니요
값 매핑 펑 토이 드를 병합 합니다.아니요
펑 토이 드를 어설션 합니다.아니요
테이블 추출기 펑 토이 드아니요
표 Looping 펑 토이 드아니요
Scripting 펑 토이 드 인라인 C#과 함께예]
Scripting 펑 토이 드에 인라인 JScript.NET예]
Scripting 펑 토이 드에 인라인 Visual Basic.NET예]
인라인 XSLT를 scripting 펑 토이 드아니요
Scripting 펑 토이 드에 인라인 XSLT 호출 템플릿아니요
외부 어셈블리를 호출 하는 스크립트 펑 토이 드아니요
Nil Value 펑 토이 드아니요
값 매핑 펑 토이 드아니요
대량 복사 펑 토이 드아니요
반복 펑 토이 드아니요
인덱스 펑 토이 드아니요
레코드 개수가 펑 토이 드아니요
BizTalk Server 2006 및 이후 버전에 대 한 메모리 관리를 크게 향상 큰 문서입니다. 이렇게 하려면 구성 가능한 메시지 BizTalk Server 구현 합니다. 크기 임계값을 변형 작업을 수행할 문서를 메모리로 로드 합니다. 기본 메시지 크기 임계값은 1MB입니다. TransformThreshold 설정에 대 한 자세한 내용은 참조 하십시오 있는 다음 Microsoft 개발자 네트워크 (MSDN) 웹 사이트:
http://msdn2.microsoft.com/en-us/library/aa560481.aspx

큰 특성 값과 큰 요소 값

BizTalk Server 수신 실행 하는 경우 페이로드 파이프라인 또는 송신 파이프라인에서 XML 문서를 처리 다음 엔티티 중 하나를 문서에 있는 경우 메모리:
  • 큰 특성 값
  • 큰 요소 값
  • 큰 특성 또는 요소 태그
이 문제를 해결 하려면 이러한 엔터티의 크기를 제한 합니다. 이 경우 메서드 수 없습니다, 그리고 BizTalk 호스트 인스턴스를 여러 개를 처리 하지 않습니다 있는지 확인 이와 동시에 같은 문서입니다.

사용자 지정 파이프라인 구성 요소

전체 로드 하는 사용자 지정 파이프라인 구성 요소를 사용 하는 메모리로 스트림입니다. BizTalk Server 포함 된 모든 구성 요소, 변환을 제외 하 고, 스트리밍을 지원 합니다. 이러한 구성 요소에 최대한 사용 하지 않는 스트리밍 시 메모리입니다. 그러나 사용자 지정 파이프라인 구성 요소를 지원 하지 않습니다. 스트리밍.

높은 스트레스를 스트리밍

이러한 과도 한 스트레스 상태에서 작동할 때 호스트 메모리 부족 실행을 보냅니다. BizTalk Server 파이프라인 보내고 어댑터 지원 스트리밍 전송 합니다. 에서 스트리밍, 각 구성 요소는 스트림의 작은 조각을 메모리로 로드 합니다. 각 메시지는 메시지와 함께 다른 데이터 구조를 포함 하기 때문에 큰 또는 작은 수 있는 컨텍스트,이 동작은 Biztalk의 동작을 영향을 미칩니다. 스트레스가 서버입니다.

BizTalk Server 동작에 영향을 받습니다. 미리 구성 된 많은 메시지는 엔진을 로드 하기 때문입니다. 개수 엔진을 로드 하는 메시지에 표시 되는 값에 따라 해당 LowWaterMark 필드 및 Adm_serviceClass 테이블의 HighWaterMark 필드입니다. Adm_serviceClass 테이블에서 BizTalk 관리 데이터베이스입니다. 이러한 값 BizTalk Server 처리 하거나 시에 보내는 메시지 수를 제어를 같은 시간.

HighWaterMark 값인 엔진을 처리 하는 메시지의 총 수 동시에. 기본값은 CPU 당 200 메시지입니다. 그러므로에 8 개의 프로세서가 있는 서버로 송신 호스트 (200 * 8) 1, 600 메시지 처리를 하려고 합니다. 같은 시간입니다. 각 메시지 50 KB 임을 가정 하면, 메시지 80 같음 MB (1, 600 * 50 = 80, 000 KB)

이 문제를 해결 하려면 HighWaterMark 값과 데이터베이스에서 LowWaterMark 값을 변경할 수 있습니다. 사용할 값의 크기에 따라 달라 집니다. 메시지입니다.

일반적인 원인에 대 한 자세한 정보는 메모리 부족 조건, "메모리 증가에 BizTalk 메시징" 절을 참조 하십시오. 다음 Microsoft 웹 사이트:
http://blogs.msdn.com/biztalkperformance
BizTalk Server 2006 및 이후 버전에 대 한 기본 호스트를 변경할 수 있습니다. 설정을 조절 합니다. 기본 호스트를 변경 하는 방법에 대 한 자세한 내용은 조절 설정, 다음 Microsoft 개발자 네트워크 (MSDN) 웹 사이트를 방문 하십시오.
http://msdn2.microsoft.com/en-us/library/aa559628.aspx

이 문제를 간단 하 게 하려고 합니다.

메모리 누수를 식별 한 경우 원인을 파악 하려고 사용자 지정 구성 요소를 제거 또는 맵을 단순화 합니다. 또한 재현해 봅니다 간단한 오케스트레이션 또는 간단한 솔루션을 사용 하 여 문제가 있습니다. 일반적으로 사용 별도 만들어야 합니다 받을 수신 어댑터를 호스트에 대 한. 또한 해야 송신 어댑터에 대 한 별도 송신 호스트를 만듭니다. 이 메서드를 사용 하면 각 어댑터는 별도 프로세스에서 실행할 수 있습니다. 따라서, BizTalk Server 프로세스에서 메모리 부족 조건이 발생 하는 경우 합니다. 어떤 구성 요소가 관련 된 알 수 있습니다.

문제 해결 단계

메모리 부족 조건에서 문제를 해결 하려면 디버그를 사용 합니다. 시간이 지남에 따라 메모리 할당을 모니터링 하려면 진단 도구입니다. 디버그 진단 도구를 만들어 메모리 누수 덤프 파일 (.dmp)을 분석할 수 있습니다. 때를 메모리 누수 문제를 해결 하 고 목표의 높은 전에 Leaktrack.dll 첨부할 것 시간이 지남에 따라 메모리 증가 캡처하려면 메모리 상태를 발생 합니다. Leaktrack.dll 디버그 진단 도구에 포함 되어 있습니다.
  1. 디버그 진단 도구를 설치 합니다.

    Microsoft 다운로드 센터에서 다운로드할 수 있는 다음 파일은 다음과 같습니다.

    그림 축소그림 확대
    다운로드
    디버그 진단 도구 패키지 다운로드

    Microsoft 지원 파일을 다운로드 하는 방법에 대 한 자세한 내용은 Microsoft 기술 자료의 다음 문서 번호를 클릭 합니다.
    119591 온라인 서비스 로부터 Microsoft 지원 파일을 구하는 방법
    Microsoft는이 파일을 스캔. Microsoft는 파일을 게시 한 날짜에 사용할 수 있었던 최신 바이러스 검색 소프트웨어를 사용 합니다. 파일은 무단된 변경을 방지 하기 위해 보안이 강화 된 서버에 저장 됩니다.
  2. 성능 모니터를 사용 하 여 시스템에 대 한 데이터를 수집 합니다. 성능입니다. 이 데이터의 효율성에 대 한 주요 표시기를 제공할 수 있습니다. BizTalk Server 환경입니다. 캡처 프로세스 성능 목표가입니다. 시간이 지남에 따라. 따라서 메모리 누수가 발생 하기 전에 성능 모니터 로깅 사용 발생합니다.

성능 모니터 로깅 사용 방법

로그 데이터를 선택 합니다.
로그 데이터를 선택 하려면 적절 한 방법을 사용 합니다. 운영 체제:
  • Windows Server 2008 및 Windows Server 2008 r 2에 대 한
    1. 관리 도구에서 열기 안정성 및 성능 모니터.
    2. 마우스 오른쪽 단추로 클릭 성능 모니터를 클릭 다음을 클릭 하 고 데이터 수집기 집합.
    3. 이름 상자에 설명이 포함 된 이름을 입력 하 고 누른 다음 다음.
    4. 루트 디렉터리를 적어 놓은 다음 클릭 다음.
    5. 클릭 이 데이터 수집기 세트를 지금 시작를 클릭 하 고 다음을 누릅니다. 마침.
    6. 확장 데이터 수집기 집합확장 사용자 정의 및 다음 파일을 선택 합니다.
    7. 마우스 오른쪽 단추로 클릭 시스템 모니터 로그를 클릭 하 고 다음을 누릅니다. 속성.
    8. 클릭 추가성능 카운터 탭 다음 개체를 선택 하 고을 클릭합니다 추가 각 개체를 선택한 후:
      • .Net CLR 예외
      • .Net CLR 메모리
      • BizTalk: 메시징
      • BizTalk:TDDS
      • 메모리
      • 프로세스
      • 프로세서
      • XLANG/s 오케스트레이션
      또한 SQL Server 로컬 있으면 다음 개체를 추가 합니다.
      • SQLServer:Databases
      • SQLServer:General 통계
      • SQLServer:Memory 관리자
    9. 클릭 확인.
    10. 변경의 샘플 간격 값 수 상자 5 초.

      참고 샘플 간격 값을 모니터링할 시작 시간 주관적입니다. 메모리 누수를 재현 하는 경우 이러한 값에 따라 다릅니다. 로그 파일은 매우 커질 수 있기 때문에 서버 처리량을 초과 하지 않고 필요한 정보를 얻을 수 있는 간격을 지정 합니다.
    11. 클릭 확인.
    데이터 수집을 중지 하려면 클릭 합니다. 중지동작 메뉴입니다.
  • Windows XP 또는 Windows Server 2003에 대 한
    1. 확장 성능 로그 및 경고.
    2. 마우스 오른쪽 단추로 클릭 카운터 로그다음 클릭 새 로그 설정. 는 새 로그 설정대화 상자가 나타납니다.
    3. 이름 상자에 입력 한 설명 이름과 클릭 확인.
    4. 로그 파일 위치를 note입니다. (클릭 수도 있는 로그 파일 탭을 클릭 하 고 구성 하 로그 파일 위치를 변경 합니다.)
    5. 클릭 카운터를 추가 합니다..
    6. 선택 모든 카운터모든 인스턴스.
    7. 성능 개체 목록에서 선택 다음 개체입니다. 클릭 추가 각 개체를 선택한 후.
      • .Net CLR 예외
      • .Net CLR 메모리
      • BizTalk: 메시징
      • BizTalk:TDDS
      • 메모리
      • 프로세스
      • 프로세서
      • XLANG/s 오케스트레이션
      또한 SQL Server 로컬 있으면 다음 개체를 추가 합니다.
      • SQLServer:Databases
      • SQLServer:General 통계
      • SQLServer:Memory 관리자
    8. 클릭 닫기.
    9. 값 변경 데이터 샘플링 간격 5 초.

      참고 데이터 샘플링 간격 값을 모니터링할 시작 시간 주관적입니다. 메모리 누수를 재현 하는 경우 이러한 값에 따라 다릅니다. 로그 파일은 매우 커질 수 있기 때문에 서버 처리량을 초과 하지 않고 필요한 정보를 얻을 수 있는 간격을 지정 합니다.
    10. 클릭 확인.
    데이터 수집을 중지 하려면 카운터 로그의 이름을 마우스 오른쪽 단추로 클릭 하 고을 클릭합니다 중지.
덤프 파일을 구합니다
덤프 파일을 얻으려면 다음 방법 중 하나를 사용 하십시오.
  • 방법 1: 자동
    함께 DebugDiag 메모리와 핸들 누수 규칙 만들기 방법이 권장된 메모리 덤프를 캡처할 수 있습니다. Leaktrack.dll 메모리 및 핸들 누수 규칙에 자동으로 연결합니다. 이 메모리 할당을 추적 하는 데 사용 됩니다. 메모리 및 핸들 누수 규칙을 만들려면 다음과이 같이 하십시오.
    1. 디버그를 시작 합니다. 진단 도구 1.1
    2. 선택 메모리 및 핸들 누수및 다음을 누릅니다. 다음.
    3. 선택은 Btsntsvc.exe 프로세스 및 클릭 다음.
    4. 누수 규칙 구성 페이지에서 다음이 단계를 수행 하십시오.
      1. 선택 하는 규칙이 즉시 활성화 될 때 추적 메모리 시작 확인란입니다. 그렇지 않으면 LeakTrack.dll BTSNTSvc.exe 프로세스에 주입 되는 전에 준비 시간을 지정할 수 있습니다.
      2. 클릭 구성를 클릭 하 고 다음 작업을 수행 합니다.
        • 확인 자동 생성 크래시 규칙 선택 되어 있습니다. BTSNTSvc.exe 프로세스가 중지 된 경우이 옵션을 선택 하면 메모리 덤프 자동으로 만들어집니다.
        • 선택 하는 가상 바이트 도달할 때에 userdump를 생성 합니다. 확인란 및 기본값을 유지 합니다. 1024.
        • 선택 하는 각 추가 확인란 및 200 기본 유지 합니다.
        가상 바이트 선택 하 여 옵션을 사용 하 고 메모리 덤프 자동으로 때 만들어집니다 1024 MB 가상 바이트를 사용 하 여. 200 MB 가상 바이트 증가 하면 다른 메모리 덤프 자동으로 만들어집니다.
      3. 저장 & 닫기를 클릭 합니다.
      4. 다음을 클릭 합니다.
    5. 덤프 위치 및 규칙 이름 선택 페이지에서 클릭 합니다. 다음.

      참고 또한 덤프 파일의 경로 변경할 수 있는 Userdump 위치 이 페이지에 있는 상자입니다.
    6. 클릭 마침 규칙 지금 활성화.
    참고 규칙 상태 이제 추적 됩니다. 메모리 덤프를 만들 때마다 Userdump 개수 열에 있는 규칙 탭에서 값이 늘어납니다. 기본 메모리 덤프 위치는 C:\Program Files\DebugDiag\Logs입니다.
  • 방법 2: 수동
    또한 수동으로 Leaktrack.dll 첨부할 하 고 수동으로 메모리 덤프 파일을 얻을 수 있습니다. 이렇게 하면 메모리 덤프를 만들 때 제어할 수 있습니다. 이렇게 하려면 다음과이 같이 하십시오.
    1. 디버그를 시작 합니다. 진단 도구 1.1
    2. 클릭 하 여 프로세스 탭입니다.
    3. 마우스는 Btsntsvc.exe 프로세스 및 클릭 누수에 대 한 모니터링.
    4. 디버그 진단 도구 대화 상자 상자에서 클릭 예]를 클릭 하 고 다음을 누릅니다. 확인.
    메모리 덤프를 만들기 전에 프로세스가 중지 될 경우 동일한 Btsntsvc.exe 프로세스를 모니터링할 크래시 규칙을 만듭니다.
    1. 시작 디버그 진단 도구 1.1
    2. 선택 크래시를 클릭 하 고 다음을 누릅니다. 다음.
    3. 선택 특정 프로세스를 클릭 하 고 다음을 누릅니다. 다음.
    4. 동일한 Btsntsvc.exe 프로세스를 선택 하 고을 클릭합니다 다음.
    5. 고급 구성 (옵션) 페이지에서 클릭 다음.
    6. 덤프 위치 및 규칙 이름 (선택 사항)을 선택 합니다. 대화 상자에서 클릭 다음.
    7. 선택 지금 규칙 활성화를 클릭 한 다음 마침을 클릭 합니다.
    프로세스가 RAM의 60%에 80%에 도달 하면 Btsntsvc.exe 프로세스를 마우스 오른쪽 단추로 클릭 하 고을 클릭합니다 전체 Userdump 만들기. 사용자 덤프를 만들기 전에 BizTalk 프로세스를 중지 하는 경우 크래시 규칙을 적용 하 고 메모리 덤프를 생성 해야 합니다.
성능 모니터 로깅 중지
메모리 덤프와 성능 모니터 데이터를 캡처하는 경우 메모리 덤프를 만든 후 약 2 분 정도 성능 모니터 로깅 중지.
덤프 파일 분석
메모리 누수 원인을 확인 하려면 Debug 사용 덤프 파일을 분석 하는 진단 도구입니다. 이렇게 하려면 다음과이 같이 하십시오.
  1. 클릭 하 여 고급 분석탭입니다.
  2. 클릭 데이터 파일 추가및 다음 찾아 여 .dmp 파일입니다.
  3. 선택은 메모리 압력 분석스크립트를 누른 다음 분석 시작.
기본적으로 분석 보고서 파일 (.mht) 분석이 끝나면 C:\Program Files\DebugDiag\Reports 폴더에 만들어집니다. 또한 보고서 파일이 브라우저에 표시 됩니다. 보고서 파일 분석의 결과가 나와 있습니다. 또한 보고서 파일을 포함할 수 있습니다. 메모리 누수를 해결 하는 방법에 대 한 권장 사항

사용자 지정을 사용 하는 경우 Dll에서 기호 경로 분석에 대 한 사용자 지정.pdb 파일을 추가할 수 있습니다. 작업을 수행 하 따라서 이러한 단계를 수행 하십시오.
  1. 디버그 진단 도구를 엽니다.
  2. 도구 메뉴를 클릭 옵션 및 설정.
  3. 디버깅을 위한 기호 검색 경로상자에서 기호 경로 입력 합니다.
덤프 파일을 분석 하는 도움이 필요한 경우 Microsoft에 문의 하십시오. 고객 지원 서비스입니다. 고객 지원 서비스의 전체 목록은 번호 및 지원 비용에 대 한 정보를 전화, 다음을 방문 하십시오 Microsoft 웹 사이트:
기술 지원 서비스 안내
하면 고객 지원 서비스에 문의 하기 전에, 덤프 파일, 성능 모니터 로그, 분석 보고서 파일 및 업데이트 된 이벤트 로그 (.evt 파일) 압축. 이 파일을 BizTalk Server 지원 엔지니어를 보내야 할 수 있습니다.

속성

기술 자료: 918643 - 마지막 검토: 2012년 6월 13일 수요일 - 수정: 2.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft BizTalk Server Branch 2010
  • Microsoft BizTalk Server Developer 2010
  • Microsoft BizTalk Server Enterprise 2010
  • Microsoft BizTalk Server Standard 2010
  • Microsoft BizTalk Server 2009 Branch
  • Microsoft BizTalk Server 2009 Developer
  • Microsoft BizTalk Server 2009 Enterprise
  • Microsoft BizTalk Server 2009 Standard
  • Microsoft BizTalk Server 2006 R2 Branch
  • Microsoft BizTalk Server 2006 R2 Developer Edition
  • Microsoft BizTalk Server 2006 R2 Enterprise Edition
  • Microsoft BizTalk Server 2006 R2 Standard Edition
  • Microsoft BizTalk Server 2006 Enterprise Edition
  • Microsoft BizTalk Server 2006 Developer Edition
  • Microsoft BizTalk Server 2006 Standard Edition
  • Microsoft BizTalk Server 2004 Enterprise Edition
  • Microsoft BizTalk Server 2004 Developer Edition
  • Microsoft BizTalk Server 2004 Partner Edition
  • Microsoft BizTalk Server 2004 Standard Edition
키워드:?
kbhowto kbmt KB918643 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.
이 문서의 영문 버전 보기:918643

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com