다음을 통해 공유


.NET 가비지 수집 구성

좋은 성능을 위해서는 사일로 프로세스에 대한 .NET 가비지 수집을 올바른 방법으로 구성하는 것이 중요합니다. 팀의 조사 결과를 토대로 한 가장 좋은 설정 조합은 gcServer=truegcConcurrent=true를 설정하는 것입니다. C# 프로젝트(.csproj) 또는 app.config에서 이러한 값을 구성할 수 있습니다. 자세한 내용은 가비지 수집의 버전을 참조하세요.

.NET Core 및 .NET 5 이상

이 메서드는 전체 .NET Framework에 대해 컴파일하는 SDK 스타일 프로젝트에서 지원되지 않습니다.

<PropertyGroup>
    <ServerGarbageCollection>true</ServerGarbageCollection>
    <ConcurrentGarbageCollection>true</ConcurrentGarbageCollection>
</PropertyGroup>

.NET Framework

전체 .NET Framework에 대해 컴파일하는 SDK 스타일 프로젝트는 이 구성 스타일을 계속 사용해야 합니다. app.config XML 파일의 예제를 고려합니다.

<configuration>
    <runtime>
        <gcServer enabled="true"/>
        <gcConcurrent enabled="true"/>
    </runtime>
</configuration>

그러나 기본적으로 워크스테이션 GC를 사용하도록 구성된 Azure 작업자 역할의 일부로 사일로가 실행되는 경우에는 이 작업을 수행하는 것이 쉽지 않습니다. Azure 작업자 역할에 대해 동일한 구성을 설정하는 방법을 설명하는 관련 블로그 게시물이 있습니다. Azure의 서버 가비지 수집 모드를 참조하세요.

Important

서버 가비지 수집은 다중 프로세서 컴퓨터에서만 사용할 수 있습니다. 따라서 애플리케이션 .csproj 파일을 통해 또는 참조된 블로그 게시물의 스크립트를 통해 가비지 수집을 구성하더라도 사일로가 단일 코어가 있는 (가상) 머신에서 실행 중인 경우 gcServer=true의 이점을 얻을 수 없습니다. 자세한 내용은 GCSettings.IsServerGC 비고를 참조하세요.