Client 425, Memory Usage

Hello Guys,

yesterday I set up my Server (Debian 8, current Patchlevel, Full .NET 2.0.0 Prequisites) that is overpowered for what it is doing to help you simulate more gearing Strategies.

It ran from 1 am to approx 9 am this morning using 6 of 8 Cores and when I checked back the Container used almost the complete ram the Server has.

Currently it is running again and consumes 22G - 23G Memory of 32G, is this intended?

I don’t want to Hard Limit it with cgroups, but if it stays like this I see no other way…

Right now the client ildes but still uses 22 GB RAM

PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
15918 1001      20   0 22.346g 408488  46764 S   0.3  1.2   1115:29 amr

Load is down to 0.1 1.2 and 3.3

I haven’t seen that behavior before… I have a client that has been running the global network for several days in a row without restarting on an 8-core machine, and when idle it is using around 700MB of memory. Most of that is cached item and spell data. We also run it in server GC mode, which consumes a lot of extra memory to improve throughput.

It is certainly a CPU and memory-intensive program, though when idle, it is probable that were your computer to become busy it would release some of that memory.

Next time I fire up my cluster of linux machines I’ll try connecting to one to see how much memory it is using. I usually run ubuntu 16.04.

You could also try manually configuring it to use workstation GC mode, which would significantly reduce memory usage, but might slow it down a little. To do that, open up amr.runtimeconfig.json in both the AskMrRobotClient and AskMrRobotClient/version425 folder and set System.GC.Server to false or remove it entirely:

"System.GC.Server": false

Note that if the client auto-updates, you would need to manually change it in the versionXXX folder again.

I ran it for 24 hours on my freshly upgraded system with glonet set to background mode, as a stability test to make sure my hardware is configured right. It just passed the test, and total memory usage was only about 5gig for the entire machine (including operating system and a browser window to write this). Yesterday during my performance tests (glonet on maximum for several minutes) it certainly made the CPU work, but had negligible impact on memory.

Since you mentioned containers, I’m not sure if something else is at play here, but:

That’s not what that column means.
You want to look at RES (408.4 MB) or %MEM (1.2%) instead.

Further reading:
https://linuxaria.com/howto/understanding-the-top-command-on-linux
Uncover the Meaning of top's Statistics - Linux.com
top(1): tasks - Linux man page

1 Like

Hello Guys, maybe I over reacted: everything seems fine with your software.

It could have been any other programm running on the machine: It was on for over a year without a restart, but no Process really used that much and amr said 21G in VIRT so I assumed it has to be amr.

I restarted the whole thing and now it is fine at 5G RAM in use. amr still uses 21G in VIRT during idle… I never saw a programm with a RAM value that high…

Greetings ^^

Based on the reading that gnarfoz linked, RES is what you really want to look at to figure out how much memory is currently being used by the process, so in your data above, it was about 400MB, which is not that much. When it starts working it will probably go much higher, and it is higher on processors with more cores.

VIRT is kind of weird… if you read various articles about it, a process isn’t actually using all that memory. RES is what it is actually using.