IRONSOFTWAREHOME

监控Linux/WSL中的.NET进程内存

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

资源密集型的.NET工作,如OCR、PDF生成或图像处理,在WSL(Windows Subsystem for Linux)或Linux容器等受限环境中可能难以计量。 您可以直接从控制台应用程序记录进程的内存消耗,或使用标准Linux工具在外部监视它。

前提条件

  • .NET SDK安装,版本5.0或更高。
  • 一个Linux环境,无论是本地的还是通过WSL。
  • 一个基本的.NET控制台应用程序。

解决方案

1. 将内存使用记录到控制台

读取进程的私有内存大小并以MB为单位打印出来:

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)调用每五秒记录一次日志。 将输出导管到一个文件或另一个进程,或当使用超过某个阈值时用它触发警报。

控制台输出

Memory Usage: 214 MB
Text

选项:使用Linux工具在外部监视

要在应用程序外部监视一个进程,请使用标准实用工具之一。 <pid>是进程ID,操作系统为每个正在运行的进程分配的唯一编号。

top 或 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。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

...
阅读更多

准备开始了吗?

Nuget Downloads 21,105,021版本:2026.9刚刚发布

立即获取您的免费30 天试用密钥。
无需信用卡或创建账户
C# 用于 PDF 的 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

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥。
无需信用卡或创建账户
C# 用于 PDF 的 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 起