IRONSOFTWAREHOME

Linux/WSLで for .NETプロセスメモリの監視

Curtis Chau
Curtis Chau
Updated: 2026年6月29日

OCR、PDF生成、画像処理のようなリソース集約型 for .NET作業は、WSL (Windows Subsystem for Linux) などの制約された環境やLinuxコンテナで形状サイズを比べることができません。 プロセスのメモリ消費をリアルタイムでログすることができ、または標準のLinuxツールを使用して外部から監視することができます。

前提条件

  • .NET SDKがインストールされており、バージョン5.0以降であること。
  • Linux環境、ネイティブまたはWSL経由。
  • 基本的な.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秒ごとに1回の読み取りにペースします。 出力をファイルまたは別のプロセスにパイプするか、使用がしきい値を超えたときにアラートを発するために使用してください。

コンソール出力

Memory Usage: 214 MB
Text

オプション:Linuxツールで外部から監視

アプリ外部からプロセスを監視するには、標準ユーティリティの1つを使用します。 <pid>はプロセスIDで、オペレーティングシステムが実行中の各プロセスに割り当てるユニークな番号です。

htop: 単一プロセスをライブで監視します。

top -p <pid>
SHELL

ps: メモリフィールドのワンショットスナップショットを印刷します。

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

ここでRSSは常駐セットサイズ、すなわち使用中の物理メモリです。

**smem:**より詳細なプロセスごとの内訳のためにインストールしてください。

sudo apt install smem
smem -p <pid>
SHELL

ベストプラクティス

  • 本番環境に展開する前にテスト環境でメモリ追跡を実行します。
  • 長時間実行されるサービスやAPIの場合、PrometheusやGrafanaのようなメトリクススタックを統合します。
  • GC.Collect()はデバッグ専用に予約します。
警告: 本番コードではGC.Collect()を呼び出さないでください; デバッグ中にのみ使用します。
Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

...
詳しく読む

準備はできましたか?

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"をブラウズして選択

ライセンスは$999から

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

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料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"をブラウズして選択

ライセンスは$999から