Windows GUI node consume big amount of virtual memory

I discovered that for some reason my server with 17 nodes converted to hashstore, nodes turn off several time a day without log entry why node is off.
With grate help of littleskunk and Alexey we discovered that Error is Out of memory. So I started to monitor this stuff, and even when i have half of RAM free, nodes are steel go offline without log entry. My discovery that node allocate lot of virtual memory.


looks like node directly not use this memory but it allocate it.
windows usualy has 1.5x of virtual memory from amount of RAM.
Now I allocated 64GB of Virtual memory nodes work stable for several hours.
I have here 48GB ram and 17 nodes, All other server dont have this problem, because they all start from 64GB of RAM.
Task manager show only how much RAM process is using, but if put
in Powershell skript about to see how much realy memory is allocated


foreach ($process in $processes) {
    $totalVM = $process.VirtualMemorySize64 / 1MB
    $usedVM = $process.WorkingSet64 / 1MB
    $remainingVM = $totalVM - $usedVM

    $process | Format-Table @{Label = "Process Name"; Expression = {$_.Name}},
                            @{Label = "Total VM(MB)"; Expression = {$totalVM}},
                            @{Label = "Used VM(MB)"; Expression = {$usedVM}},
                            @{Label = "Remaining VM(MB)"; Expression = {$remainingVM}}
}`Preformatted text`
type or paste code here

then we see other picture.
Process Name Total VM(MB) Used VM(MB) Remaining VM(MB)


storagenode 5446.96484375 31.63671875 5415.328125

Does someone have any problem with big RAM consumption?
Or node turn OFF without Error in log
I migrated to Hashstore but not activated memtbl.
interesting that on other server, where memtbl is active memory consumption is the same.

Which Windows operating system is it 10, 11, Server ?

I use windows 10 pro, on every server

Windows Server 2022 looking very much the same…

Process Name Total VM(MB)   Used VM(MB) Remaining VM(MB)
------------ ------------   ----------- ----------------
storagenode  7976,3046875 1115,87890625    6860,42578125



Process Name Total VM(MB)   Used VM(MB) Remaining VM(MB)
------------ ------------   ----------- ----------------
storagenode  8208,4296875 1062,70703125    7145,72265625



Process Name Total VM(MB) Used VM(MB) Remaining VM(MB)
------------ ------------ ----------- ----------------
storagenode  6432,0390625   319,40625     6112,6328125


do you use memtbl? or pure hashstore?

My windows nodes using hashtbl.

After I allowed up to 80GB virtual RAM nodes working stable for more than 24h.

On my windows servers “automatically manage paging file size” is checked. So I did not run into memory problems because OS did the adjustment automatically.

My nodes dont use much - but on this server they are also very new nodes.

my nodes show about same RAM consumption, but virtual memory is little bit other thing.

i wonder if changing the environment:

  • STORJ_HASHSTORE_MEMTBL_MMAP=false (default)

would make any difference. (in the title it’s for memtbl anyway so it may not)

Not running Windows, but I wouldn’t be surprised if the difference comes from Linux automatic memory overcommit feature. Windows can’t do it as easily, and the outcome would then indeed be high memory usage on Windows.

1 Like

For example, if there are 100 nodes on the server, then you need to allocate 500 GB for the swap file?

Or allow the OS to handle it automatically.

It was before handled by OS, it it not worked normaly.

Interesting. Noted with thanks.

Алексей!
Не то что бы интересно, это скорее некомпетентность кодера, который такой код нацарапал, либо преднамерянное вредительство.
У меня сервер годами стоял и работал, и тут купила баба порося..
Черт дернул начать миграцию в хешстор.

au tebja mnogo nodov na 1 servere?

Вадим, много. Буду 3-4 тб под своп делать. Intel SSD DC P4618 Series 6.4 tb - выделю на нем 3-4 тб.

1 Like