2

I upgraded my laptop a few days ago to Windows 10. I have my power plans set in such a way that my screens turn off after a few minutes if there is no activity (I have a secondary screen hooked up to my laptop). Ever since I upgraded, when I return to my laptop after a period of inactivity and wake up my screens, they wake up very slowly and I get a warning that Windows is running low on memory.

I already tried letting my monitors turn off with task manager open to see which process is taking up much memory. It appears that the "System" process uses up to 1GB of memory when the screen is off, which is a lot when having 4 GB in total. When the screens are back on again it stays at around 1 GB for around a minute and then drops back to normal levels of around 200 MB.

I did not have this problem when running Windows 8.1, so it leads me to believe it is related to the upgrade. I already looked at the suggestion for this question to use poolmon to look for a driver issue. From this it appeared that the problem may be related to the ReadyBoost driver, but I am not entirely sure.

The memory usage is fine under normal operation, or when I turn off the screens for a brief moment. It only seems to spike upon turning off my screens for a longer period of time.

Is anyone familiar with this issue, or perhaps know how to reduce RAM usage when my screens are turned off?

2 Answers2

3

After trying out a lot of different settings and configurations, it appears the problem is related to the settings of my secondary monitor.

The monitor has three different video inputs (VGA, DVI and HDMI) and it was set to automatically detect the correct input, based on which is connected. Since I only use HDMI, I have changed the input detection to “manual” and set it to HDMI. I do no longer run out of memory now.

It is remarkable though that I did not have this problem on Windows 7 and Windows 8.1, but I do have it on Windows 10.

Giacomo1968
  • 58,727
1

ok, In the trace I can see that the function ntoskrnl.exe!SmKmStoreHelperWorker of the Kernel starts to allocate memory.

enter image description here

I discovered this last week on sysinternals.

I've asked Microsoft about it and the answer is that this is by design. It is related to System Memory compression.

In the announcement of Windows 10 Build 10525, Microsoft explained it a bit:

In Windows 10, we have added a new concept in the Memory Manager called a compression store, which is an in-memory collection of compressed pages. This means that when Memory Manager feels memory pressure, it will compress unused pages instead of writing them to disk. This reduces the amount of memory used per process, allowing Windows 10 to maintain more applications in physical memory at a time. This also helps provide better responsiveness across Windows 10. The compression store lives in the System process’s working set. Since the system process holds the store in memory, its working set grows larger exactly when memory is being made available for other processes. This is visible in Task Manager and the reason the System process appears to be consuming more memory than previous releases.

So instead of writing memory data to the pagefile it compresses them. And this compressed memory is shown in the System process.