There are, as you said, a large number of warning messages related to 'virtual storage exhaustion'. I'm not sure how well you understand virtual storage, so forgive me if I seem to be preaching.
[TL-DR]
NewWorld.exe and Frostpunk.exe are your problem, they have memory leaks.
[/TL-DR]
Here is a typical virtual storage exhaustion warning message from your System log...
Code:
Log Name: System
Source: Microsoft-Windows-Resource-Exhaustion-Detector
Date: 06/07/2023 22:09:34
Event ID: 2004
Task Category: Resource Exhaustion Diagnosis Events
Level: Warning
Keywords: Events related to exhaustion of system commit limit (virtual memory).
User: SYSTEM
Computer: firestorm
Description:
Windows successfully diagnosed a low virtual memory condition. The following programs consumed the most virtual memory: NewWorld.exe (15600) consumed 14362222592 bytes, steamwebhelper.exe (3148) consumed 479412224 bytes, and NordVPN.exe (13700) consumed 348532736 bytes.
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Microsoft-Windows-Resource-Exhaustion-Detector" Guid="{9988748e-c2e8-4054-85f6-0c3e1cad2470}" />
<EventID>2004</EventID>
<Version>0</Version>
<Level>3</Level>
<Task>3</Task>
<Opcode>33</Opcode>
<Keywords>0x8000000020000000</Keywords>
<TimeCreated SystemTime="2023-07-06T19:09:34.9221025Z" />
<EventRecordID>125910</EventRecordID>
<Correlation ActivityID="{425a6415-924d-4bfa-8d97-68aa6c7ce484}" />
<Execution ProcessID="14176" ThreadID="11864" />
<Channel>System</Channel>
<Computer>firestorm</Computer>
<Security UserID="S-1-5-18" />
</System>
<UserData>
<MemoryExhaustionInfo xmlns="http://www.microsoft.com/Windows/Resource/Exhaustion/Detector/Events">
<SystemInfo>
<SystemCommitLimit>23840153600</SystemCommitLimit>
<SystemCommitCharge>23682207744</SystemCommitCharge>
<ProcessCommitCharge>19555442688</ProcessCommitCharge>
<PagedPoolUsage>571817984</PagedPoolUsage>
<PhysicalMemorySize>17129267200</PhysicalMemorySize>
<PhysicalMemoryUsage>14672547840</PhysicalMemoryUsage>
<NonPagedPoolUsage>398479360</NonPagedPoolUsage>
<Processes>198</Processes>
</SystemInfo>
<PagedPoolInfo>
<Tag_1>
<Name>MmSt</Name>
<PoolUsed>169786464</PoolUsed>
</Tag_1>
<Tag_2>
<Name>FMfn</Name>
<PoolUsed>66657616</PoolUsed>
</Tag_2>
<Tag_3>
<Name>Ntff</Name>
<PoolUsed>33138688</PoolUsed>
</Tag_3>
</PagedPoolInfo>
<NonPagedPoolInfo>
<Tag_1>
<Name>None</Name>
<PoolUsed>54539520</PoolUsed>
</Tag_1>
<Tag_2>
<Name>NVRM</Name>
<PoolUsed>53939536</PoolUsed>
</Tag_2>
<Tag_3>
<Name>ArL2</Name>
<PoolUsed>25222928</PoolUsed>
</Tag_3>
</NonPagedPoolInfo>
<ProcessInfo>
<Process_1>
<Name>NewWorld.exe</Name>
<ID>15600</ID>
<CreationTime>2023-07-06T17:40:07.1568595Z</CreationTime>
<CommitCharge>14362222592</CommitCharge>
<HandleCount>9343</HandleCount>
<Version>1.81.939.26868</Version>
<TypeInfo>201</TypeInfo>
</Process_1>
<Process_2>
<Name>steamwebhelper.exe</Name>
<ID>3148</ID>
<CreationTime>2023-07-06T17:39:04.8624018Z</CreationTime>
<CommitCharge>479412224</CommitCharge>
<HandleCount>759</HandleCount>
<Version>8.14.49.6</Version>
<TypeInfo>210</TypeInfo>
</Process_2>
<Process_3>
<Name>NordVPN.exe</Name>
<ID>13700</ID>
<CreationTime>2023-07-06T17:38:51.1376221Z</CreationTime>
<CommitCharge>348532736</CommitCharge>
<HandleCount>1825</HandleCount>
<Version>1.0.2.27</Version>
<TypeInfo>219</TypeInfo>
</Process_3>
<Process_4>
<Name>
</Name>
<ID>0</ID>
<CreationTime>1601-01-01T00:00:00.0000000Z</CreationTime>
<CommitCharge>0</CommitCharge>
<HandleCount>0</HandleCount>
<Version>0.0.0.0</Version>
<TypeInfo>0</TypeInfo>
</Process_4>
<Process_5>
<Name>
</Name>
<ID>0</ID>
<CreationTime>1601-01-01T00:00:00.0000000Z</CreationTime>
<CommitCharge>0</CommitCharge>
<HandleCount>0</HandleCount>
<Version>0.0.0.0</Version>
<TypeInfo>0</TypeInfo>
</Process_5>
<Process_6>
<Name>
</Name>
<ID>0</ID>
<CreationTime>1601-01-01T00:00:00.0000000Z</CreationTime>
<CommitCharge>0</CommitCharge>
<HandleCount>0</HandleCount>
<Version>0.0.0.0</Version>
<TypeInfo>0</TypeInfo>
</Process_6>
</ProcessInfo>
<ExhaustionEventInfo>
<Time>2023-07-06T19:09:33.9083282Z</Time>
</ExhaustionEventInfo>
</MemoryExhaustionInfo>
</UserData>
</Event>
There's a lot of detail there but we can isolate the important bits...
Code:
Windows successfully diagnosed a low virtual memory condition. The following programs consumed the most virtual memory: NewWorld.exe (15600) consumed 14362222592 bytes, steamwebhelper.exe (3148) consumed 479412224 bytes, and NordVPN.exe (13700) consumed 348532736 bytes.
This part of the message is pretty clear, it tells you that virtual storage was running low, and it shows you three processes that were consuming the most virtual storage. Notice that NewWorld.exe was consuming over 13GB of virtual storage!
Many of these messages report a different largest virtual storage user...
Code:
Windows successfully diagnosed a low virtual memory condition. The following programs consumed the most virtual memory: Frostpunk.exe (9144) consumed 10576523264 bytes, steamwebhelper.exe (3148) consumed 576827392 bytes, and chrome.exe (84) consumed 486969344 bytes.
Here it's Frostpunk.exe that's the biggest consumer at close to 10GB. As far as I can tell, and I've not checked every single message, these two processes are the main consumers of virtual storage.
There is other useful information in the XML part these messages, but I might need to explain what they mean. This is from the long message I showed you above (the one where NewWorld.exe was the largest consumer)...
Code:
<SystemInfo>
<SystemCommitLimit>23840153600</SystemCommitLimit>
<SystemCommitCharge>23682207744</SystemCommitCharge>
<ProcessCommitCharge>19555442688</ProcessCommitCharge>
<PagedPoolUsage>571817984</PagedPoolUsage>
<PhysicalMemorySize>17129267200</PhysicalMemorySize>
<PhysicalMemoryUsage>14672547840</PhysicalMemoryUsage>
<NonPagedPoolUsage>398479360</NonPagedPoolUsage>
<Processes>198</Processes>
</SystemInfo>
PhyscialMemorySize and PhysicalMemoryUsage relate to RAM, so you have 16GB of RAM and you're using 13.66GB of it - so how can you be out of virtual storage?
The important fields there are the SystemCommitLimit and the SystemCommitCharge. I'll explain these in case you don't know (apologies if you do). When any process wants to allocate memory it must ask the Windows Memory Manager to authorise the allocation. Note that, when a process allocates memory all Windows does is check that there is enough virtual storage to contain that allocation -
if the process were to actually use it.
At the time of allocation though, the process has just asked permission to use that memory, it hasn't actually written to any of it yet, so there is no change in memory used. However, Windows must remember that it's allowed the allocation, so it commits enough virtual storage to accommodate it by raising the SystemCommitCharge - which is the total amount of virtual storage memory allocations that the Memory Manager has approved.
When a process has finished with a memory allocation it deallocates it, this tells the Memory Manager to reduce the SystemCommitCharge by that amount. In a normal system then, the SystemCommitCharge is going up and down as processes use, and then free, memory.
Whenever the Memory Manager receives an allocation request it checks the SystemCommitLimit value - this is the maximum virtual storage that you have, it's the sum of your RAM plus the size of the paging file. It also checks the current SystemCommitCharge value, this is the amount of virtual storage already allocated (committed). If the requested allocation would cause the SystemCommitCharge value to exceed the SystemCommitLimit then the Memory Manager will refuse it and you'll see one of these log messages - and probably an application failure or instability.
In the example from your log you can see that the SystemCommitLimit is 22.22GB and the SystemCommitCharge is 22.05GB - that is why you're getting these out of virtual storage messages. You really are running out of virtual stroage.
Something is allocating vast amounts of memory that they're not using (because both RAM and the paging file are underutilised) and which they are not subsequently freeing - this is known as a memory leak. Notice that NewWorld.exe and Frostpunk.exe are allocating 13GB and 10GB respectively, the next highest virtual memory user (steamwebhelper.exe) is allocating only around 512MB.
The problem is NewWorld.exe and Frostpunk.exe - they have memory leaks.