IRONSOFTWAREHOME

Linux/WSL에서 .NET 프로세스 메모리 모니터링

Curtis Chau
Curtis Chau
Updated: 2026년 6월 29일

OCR, PDF 생성, 이미지 처리와 같은 리소스 밀집형 .NET 작업은 WSL(Windows Subsystem for Linux) 또는 Linux 컨테이너와 같은 제한된 환경에서 크기를 측정하기 어렵습니다. 콘솔 애플리케이션에서 실시간으로 프로세스의 메모리 사용량을 로그로 남길 수 있으며, 또는 표준 Linux 도구를 사용하여 외부에서 감시할 수 있습니다.

필수 조건

  • .NET SDK가 설치되어 있으며 버전 5.0 이상.
  • 네이티브 또는 WSL을 통한 Linux 환경.
  • 기본 .NET 콘솔 앱.

해결책

1. 메모리 사용량을 콘솔에 로깅

프로세스의 개인 메모리 크기를 읽어 메가바이트로 출력하세요:

using System;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
// Trigger your memory-consuming logic here (e.g., OCR, PDF generation, etc.)
// Log memory usage
Process currentProcess = Process.GetCurrentProcess();
long memorySize = currentProcess.PrivateMemorySize64; // In bytes
Console.WriteLine($"Memory Usage: {memorySize / (1024 * 1024)} MB");
}
}
C#

PrivateMemorySize64 는 프로세스가 독점적으로 할당하고 다른 프로세스와 공유하지 않는 메모리의 양(바이트)을 반환합니다. 이는 애플리케이션이 얼마나 무겁게 실행되고 있는지에 대한 확실한 지표입니다.

2. 메모리 지속적으로 추적

장기 실행 프로세스의 경우, 사용 샘플을 시간 경과에 감지하기 위해 읽기를 루프에 감쌉니다:

while (true)
{
var memory = Process.GetCurrentProcess().PrivateMemorySize64;
Console.WriteLine($"Memory Usage: {memory / (1024 * 1024)} MB");
Thread.Sleep(5000); // Log every 5 seconds
}
C#

Thread.Sleep(5000) 호출은 로깅을 5초에 한 번씩 읽도록 속도를 조절합니다. 출력을 파일 또는 다른 프로세스로 파이프하거나, 사용량이 임계치를 초과할 때 경고를 발생시키는 데 사용할 수 있습니다.

콘솔 출력

Memory Usage: 214 MB
Text

옵션: Linux 도구를 사용하여 외부에서 모니터링

앱의 외부에서 프로세스를 감시하려면 표준 유틸리티 중 하나를 사용하세요. <pid> 는 프로세스 ID로, 운영 체제가 각 실행 중인 프로세스에 할당하는 고유 번호입니다.

top 또는 htop: 단일 프로세스를 실시간으로 관찰합니다.

top -p <pid>
SHELL

ps: 메모리 필드의 일회성 스냅샷을 출력합니다.

ps -o pid,vsz,rss,comm -p <pid>
SHELL

여기서 VSZ 는 KB 단위의 가상 메모리 크기이고 RSS 는 사용 중인 물리적 메모리인 상주 세트 크기입니다.

smem: 보다 자세한 프로세스별 분석을 위해 설치하세요.

sudo apt install smem
smem -p <pid>
SHELL

모범 사례

  • 배포 전에 테스트 환경에서 메모리 추적을 실행하세요.
  • 장시간 실행 서비스 또는 API의 경우 Prometheus 또는 Grafana와 같은 메트릭스를 통합하세요.
  • GC.Collect() 을 디버깅에만 예약하세요.
경고: 생산 코드에서 GC.Collect()를 호출하지 마세요; 디버깅 중일 때만 사용하세요.
Curtis Chau
기술 문서 작성자

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.

...
더 읽어보기

시작할 준비 되셨나요?

Nuget Downloads 21,105,021버전:2026.9방금 출시

지금 바로 30일 무료 체험판 키를 받으세요.
신용카드나 계정 생성은 필요하지 않습니다.
PDF용 C# NuGet 라이브러리
NuGet을 사용하여 설치하세요

버전: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 솔루션 탐색기에서 참조를 마우스 오른쪽 버튼으로 클릭하고 NuGet 패키지 관리를 선택합니다.
  2. 찾아보기를 선택하고 "IronPDF"를 검색하세요.
  3. 패키지를 선택하고 설치하세요
C# PDF DLL
DLL 다운로드

버전: 2026.9

또는 여기에서 Windows 설치 프로그램을 다운로드하십시오.

  1. IronPDF를 다운로드하고 솔루션 디렉터리 내의 ~/Libs와 같은 위치에 압축을 푸세요.
  2. Visual Studio 솔루션 탐색기에서 참조를 마우스 오른쪽 버튼으로 클릭합니다. 찾아보기를 선택하고 "IronPDF.dll"을 선택합니다.

라이선스 가격은 749달러 부터 시작합니다.

Key in blue circle

무료 30일 체험 키를 즉시 받으세요.

Your trial license will be sent to your email address

제한 없음. 100% 무제한 이용. 신용카드 불필요.

OR
bullet_checked신용카드나 계정 생성은 필요하지 않습니다.제한 없음. 100% 무제한 이용. 신용카드 불필요.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
무료 라이브 데모를 예약하세요
Booking Badge

전 세계 수백만 엔지니어들이 신뢰하는 제품입니다.

Iron Software의 고객 로고
부담 없는 무료 상담을 받아보세요
아래 양식을 작성하시거나 sales@ironsoftware.com으로 이메일을 보내주세요.
고객님의 정보는 항상 비밀로 유지됩니다.
전 세계 수백만 엔지니어들이 신뢰하는 제품입니다.
Iron Software의 고객 로고
지금 바로 30일 무료 체험판 키를 받으세요.
신용카드나 계정 생성은 필요하지 않습니다.
PDF용 C# NuGet 라이브러리
NuGet을 사용하여 설치하세요

버전: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 솔루션 탐색기에서 참조를 마우스 오른쪽 버튼으로 클릭하고 NuGet 패키지 관리를 선택합니다.
  2. 찾아보기를 선택하고 "IronPDF"를 검색하세요.
  3. 패키지를 선택하고 설치하세요
C# PDF DLL
DLL 다운로드

버전: 2026.9

또는 여기에서 Windows 설치 프로그램을 다운로드하십시오.

  1. IronPDF를 다운로드하고 솔루션 디렉터리 내의 ~/Libs와 같은 위치에 압축을 푸세요.
  2. Visual Studio 솔루션 탐색기에서 참조를 마우스 오른쪽 버튼으로 클릭합니다. 찾아보기를 선택하고 "IronPDF.dll"을 선택합니다.

라이선스 가격은 749달러 부터 시작합니다.