.net core Process 获取Linux内存使用率
时间: 2023-09-30 11:13:04 浏览: 78
可以使用 Linux 系统提供的 `/proc/meminfo` 文件来获取系统的内存使用情况,示例代码如下:
```csharp
using System;
using System.IO;
class Program
{
static void Main(string[] args)
{
string meminfoPath = "/proc/meminfo";
string[] lines = File.ReadAllLines(meminfoPath);
long memTotal = 0, memFree = 0, memBuffers = 0, memCached = 0;
foreach (string line in lines)
{
if (line.StartsWith("MemTotal:"))
{
memTotal = ParseMeminfoValue(line);
}
else if (line.StartsWith("MemFree:"))
{
memFree = ParseMeminfoValue(line);
}
else if (line.StartsWith("Buffers:"))
{
memBuffers = ParseMeminfoValue(line);
}
else if (line.StartsWith("Cached:"))
{
memCached = ParseMeminfoValue(line);
}
}
long memUsed = memTotal - memFree - memBuffers - memCached;
double memUsage = (double)memUsed / memTotal * 100.0;
Console.WriteLine($"Memory usage: {memUsage:F2}%");
}
static long ParseMeminfoValue(string line)
{
string[] parts = line.Split(new char[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries);
return long.Parse(parts[1]) * 1024; // 单位为 KB,转换成字节
}
}
```
上述代码从 `/proc/meminfo` 文件中读取 `MemTotal`、`MemFree`、`Buffers` 和 `Cached` 等参数的值,并计算出已使用的内存量和使用率。其中,读取到的值的单位为 KB,需要转换成字节。