2

I have a brand new laptop computer and I have been having some trouble with processes taking up a lot of CPU, disk and memory resources. After a lot of tinkering, I fixed every problem except for having 40% memory usage at idle. I still think having such a high memory usage at idle is a red flag, but then I remembered that this is not my desktop PC, I have very modest specs on this laptop.

  • CPU: 7th gen i5
  • RAM: 4GB
  • Memory/Storage: 128GB SSD
  • OS: Windows 10 Pro

Maybe 4GB of RAM is barely enough to keep the core processes afloat? Can anyone with some experience on the matter let me know what they think? I'd like to know what is a good baseline for performance so I know when I should stop troubleshooting for leaks/other issues.

enter image description here

  • 4
    1.6GB sounds at idle sounds normal. Maybe this thread will help. – SpiderPig Oct 10 '17 at 6:52
  • I get the same or more with Ubuntu in a PC with the same amount of RAM. – user772515 Oct 10 '17 at 8:53
  • 3
    Memory usage looks pretty normal, except for one large mapped file. If that file persists across reboots check if you always open a program which uses it, Alternative you can try to do a normal reboot (` shutdown /s /f /t 0`) to get rid of it.But I've only seen that happen trice with win10. – Hennes Oct 10 '17 at 16:21
  • 5
    Any RAM that's not used is wasted. So you're really asking why your computer is wasting so little RAM. – David Schwartz Oct 10 '17 at 17:27
  • 1
    Wake up people, tired of hearing that "RAM that's not used is wasted" nonsense from people who'd rather not look at what's really going on. Whatever amount of RAM Microsoft decides to allocate to stuff that's not useful to you (tracking you, serving ads, useless services...) that RAM is truly wasted. Let them continue to own you or recclaim your space, it's up to you. – lemonsqueeze Feb 1 '18 at 13:58
5

The amount of RAM that Windows shows as "in use" on an idle system is almost always practically meaningless.

Windows (like Linux) is a demand-paged, virtual memory operating system: The OS pages things in when and as they're needed (that's the "on demand" part). "Need" is evidenced by hard page faults. "Things" are sets of pages of code and data.

A great deal of this happens when the OS starts up. At OS startup time a great many programs that are parts of the OS, plus many more that you installed, are launched. After their initialization steps, most of them don't do much most of the time - this is why your CPU usage will show near-zero.

Now, if you don't need the RAM for anything else (because the system is, as you say, idle and has been since startup) the OS has no reason to page any of that stuff out - and since some of those programs might need some of it again soon, there is reason to keep it in RAM.

But if new programs that you start later need more RAM than what's currently available, Windows will automatically reduce the amount of RAM held (the "working sets") by idle processes to make room. Writing to the pagefile is one method used here, but not the only one.

You don't need to worry about it, and you don't need to do anything to "optimize" it, unless you have performance issues when running the apps you need to run. In which case you're no longer worried about Windows' idle memory usage. ;)

See my longer answer here.

1

The memory usage is pretty normal except that the Non-Paged Pool is a bit too high with over 300MB. Normally the non pages pool is larger and paged is around 100MB after boot. Use poolmon/xperf to analyze with driver causes the a bit higher usage.

With Processhacker you can see the peak memory usage

enter image description here

if the peak is larger that 4GB Windows needed to page out data first to the new memory compression and later still to the pagefile. Here should add new RAM to avoid paging.

  • I wouldn't call 300 MB "too high" for NPP. My system is running 450 MB NPP, 1.1GB paged pool. It's fine. – Jamie Hanrahan Dec 17 '17 at 4:25
  • @RickBrant it depends what you run. paged is always higher compared to NON paged. with his low amount of installed RAM (4GB) every 100mb is expensive and hurts his UX when using normal desktop programs – magicandre1981 Dec 17 '17 at 8:07
  • Paged is NOT always higher than nonpaged. They are independent allocations and there is nothing in the OS or in the driver environment that says that either must always be higher than the other. If more pool has been allocated of type NonPagedPool vs PagedPool, then nonpaged will be larger. Indeed it depends on what you run and what you're doing with it. Some drivers need a lot of nonpaged pool for buffer space. (Maybe you're thinking that nonpaged pool is a permanently-resident subset of paged pool? No. They're requested and counted separately.) – Jamie Hanrahan Dec 22 '17 at 0:29
  • @RickBrant non paged memory is more expensive because it can't be paged out, so should be ONLY used for operation were a paging is NO option (DISPATCH_LEVEL). If you run into low memory situation, the paged pool can be paged out into pagefile and if only NON paged is used, the user is out of luck and get OOM errors. that is why paged is more used and has higher values for normal working system. – magicandre1981 Dec 22 '17 at 15:11
  • I've been writing drivers for the NT family since before NT 3.1 first shipped, and for VMS for over ten years before that, so I am pretty well aware of what paged and nonpaged pool are. My statement stands. It is true that it is better to use paged pool where you can. However, sometimes the job to be done requires the use of more nonpaged pool than paged pool, and in such a case, who is to say that that's wrong? Your claim that "paged is always higher compared to nonpaged" is wrong. Usually, yes, but you can't claim "always". Not even "always on a normal working system". – Jamie Hanrahan Dec 28 '17 at 7:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.