-
Notifications
You must be signed in to change notification settings - Fork 5.4k
Closed
Description
I am playing with the Process.MaxWorkingSet API. I am getting results that I don't expect. Should the values be so different in Linux containers? Is that some container-ism or something wrong with our Linux PAL?
C:\testapps\workingset>dotnet run
Hello World!
MinWorkingSet: 204800
WorkingSet64: 15110144
MaxWorkingSet: 1413120
C:\testapps\workingset>docker run --rm -v C:\testapps\workingset:/app -w /app microsoft/dotnet:3.0-sdk dotnet run
Hello World!
MinWorkingSet: 0
WorkingSet64: 23556096
MaxWorkingSet: 9223372036854775807
C:\testapps\workingset>docker run --rm -m 60m -v C:\testapps\workingset:/app -w /app microsoft/dotnet:3.0-sdk dotnet run
Hello World!
MinWorkingSet: 0
WorkingSet64: 23568384
MaxWorkingSet: 9223372036854775807
C:\testapps\workingset>docker run --rm microsoft/dotnet:3.0-sdk uname -a
Linux b1a8742108c0 4.9.125-linuxkit dotnet/corefx#1 SMP Fri Sep 7 08:20:28 UTC 2018 x86_64 GNU/Linux
C:\testapps\workingset>docker run --rm -m 60m -v C:\testapps\workingset:/app -w /app microsoft/dotnet:3.0-sdk-alpine dotnet run
Hello World!
MinWorkingSet: 0
WorkingSet64: 25010176
MaxWorkingSet: 9223372036854775807
C:\testapps\workingset>docker run --rm -m 60m microsoft/dotnet:3.0-sdk-alpine cat /sys/fs/cgroup/memory/memory.limit_in_bytes
62914560
C:\testapps\workingset>docker run --rm microsoft/dotnet:3.0-sdk-alpine uname -a
Linux 0ba6cfe799f1 4.9.125-linuxkit dotnet/corefx#1 SMP Fri Sep 7 08:20:28 UTC 2018 x86_64 Linux
C:\testapps\workingset>type Program.cs
using System;
using System.Diagnostics;
namespace workingset
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
Console.WriteLine($"MinWorkingSet: {Process.GetCurrentProcess().MinWorkingSet}");
Console.WriteLine($"WorkingSet64: {Process.GetCurrentProcess().WorkingSet64}");
Console.WriteLine($"MaxWorkingSet: {Process.GetCurrentProcess().MaxWorkingSet}");
}
}
}
C:\testapps\workingset>Reactions are currently unavailable