다음을 통해 공유


<GCHeapCount> 요소

서버 가비지 수집에 사용할 힙/스레드 수를 지정합니다.

<구성>
  <런타임>
    <GCHeapCount>

구문

<GCHeapCount
   enabled="nn"/>

특성 및 요소

다음 단원에서는 특성, 자식 요소 및 부모 요소에 대해 설명합니다.

특성

특성 설명
enabled 필수 특성입니다.

서버 가비지 수집에 사용할 힙 수를 지정합니다. 실제 힙 수는 지정한 힙 수와 프로세스에서 사용할 수 있는 프로세서 수의 최솟값입니다.

enabled 특성

Description
nn 서버 GC에 사용할 힙 수입니다.

자식 요소

없음

부모 요소

요소 Description
configuration 공용 언어 런타임 및 .NET Framework 애플리케이션에서 사용하는 모든 구성 파일의 루트 요소입니다.
runtime 어셈블리 바인딩 및 가비지 컬렉션에 대한 정보를 포함합니다.

설명

기본적으로 서버 GC 스레드는 각 프로세서에 대해 하나의 GC 힙, 하나의 서버 GC 스레드 및 하나의 백그라운드 서버 GC 스레드가 있도록 각각의 CPU와 고정적으로 연관됩니다. .NET Framework 4.6.2부터 GCHeapCount 요소를 사용하여 애플리케이션에서 서버 GC에 사용하는 힙 수를 제한할 수 있습니다. 서버 GC에 사용되는 힙 수를 제한하는 것은 서버 애플리케이션의 여러 인스턴스를 실행하는 시스템에 특히 유용합니다.

GCHeapCount는 일반적으로 두 개의 다른 플래그와 함께 사용됩니다.

  • GCNoAffinitize는 서버 GC 스레드/힙이 CPU에서 선호도가 높은지 여부를 제어합니다.

  • GCHeapAffinitizeMask는 GC 스레드/힙과 CPU의 친화도를 제어합니다.

GCHeapCount가 설정되고 GCNoAffinitize가 사용하지 않도록 설정된 경우(기본 설정), nn GC 스레드/힙과 첫 번째 nn 프로세서 사이에 유사성이 있습니다. GCHeapAffinitizeMask 요소를 사용하여 프로세스의 서버 GC 힙에서 사용되는 프로세서를 지정할 수 있습니다. 그렇지 않고 여러 서버 프로세스가 시스템에서 실행 중인 경우 해당 프로세서 사용량이 겹칩니다.

GCHeapCount가 설정되고 GCNoAffinitize가 사용하도록 설정된 경우 가비지 수집기는 서버 GC에 사용되는 프로세서 수를 제한하지만 GC 힙 및 프로세서를 선호하지는 않습니다.

예제

다음 예에서는 애플리케이션이 10개의 힙/스레드가 있는 서버 GC를 사용함을 나타냅니다. 이러한 힙이 시스템에서 실행 중인 다른 애플리케이션의 힙과 겹치는 것을 원하지 않으므로 GCHeapAffinitizeMask를 사용하여 프로세스가 CPU 0~9를 사용해야 함을 지정합니다.

<configuration>
   <runtime>
      <gcServer enabled="true"/>
      <GCHeapCount enabled="10"/>
      <GCHeapAffinitizeMask enabled="1023"/>
   </runtime>
</configuration>

다음 예에서는 서버 GC 스레드를 선호하지 않으며 GC 힙/스레드 수를 10으로 제한합니다.

<configuration>
   <runtime>
      <gcServer enabled="true"/>
      <GCHeapCount enabled="10"/>
      <GCNoAffinitize enabled="true"/>
   </runtime>
</configuration>

참고 항목