6

I have the problem that Google Chrome will limit itself to about 32 GB of RAM split over many tabs and processes.

When it approaches 32 GB RAM usage it will start to load pages really slowly, or show the out of memory error on some tabs.

All search results that I found about Chrome RAM consumption issues are about it taking too much memory. But my problem is it's not using enough.

My test was done with about ~500 tabs, no single process is using a huge chunk of memory, the usage is spread out evenly across many processes.

I tested this on a laptop with 64 GB physical RAM and 4 cores. And on a desktop computer with 128 GB physical RAM and 12 cores. According to TaskManager / Process explorer there should be plenty free memory that Chrome is not taking advantage of. And yet rather than use more memory it is slowing down or throwing out of memory errors.

At first, I thought maybe this is a problem with the GPU acceleration reserving extra memory that I don't see. But I don't think this is the case any more since I tested on the desktop computer which is not in any GPU memory limit as far as I can tell and doesn't have an iGPU.

Tested with: Chrome Version 100.0.4896.127 (Official Build) (64-bit) Windows version: 10.0.19044.1645 (21H2). But I had this problem for the last 2 years at least. It's not a recent regression. I am using a Pro license not a Home license for Windows 10 if that makes a difference.

My question is:

  1. Am I overlooking some inherent or configurable Chrome memory self limit?
  2. Am I running into some limit in Windows 10 where it will not give more than half the memory or 32 GB to a single group of processes or anything similar?

I would be happy to do any additional tests and or provide more information!

Update: I have tried disabling automatically managed page size in Windows and set a static size instead (min+max size are now both same size as physical RAM size) according to this blogpost, found via this comment and rebooted. I also tried to start Chrome without extensions. But neither did help. I am still getting the same OOM errors "Not enough memory to open this page Try closing other tabs or programs to free up memory" at about 32 GB / 64 GB used on the laptop and 40 GB /128 GB used on the desktop.

What is a bit suspicious to me is that the error occurs not at half the RAM used on the desktop but approximately 8 GB higher than on the laptop. That's pretty much the size of the desktop's Nvidia GPU's on-board GDDR. Maybe I should try starting Chrome without GPU acceleration and see if it wants to use more memory then?

Update 2022-09-13:

The issue is gone if I disable "Use hardware acceleration when available" in the settings. I have tested it with 900 tabs over at least a month and I had no problems with out of memory errors. Of course disabling hardware acceleration completely is not a satisfactory fix.

Update 2023-06-09:

I have now disabled #enable-gpu-rasterization in chrome://flags/ as a workaround. This doesn't disable hardware accelerated video decoding, unlike completely disabling "hardware acceleration". It still feels like a hack, but it made the issue less frequent enough so I can tolerate it. I am still looking for a proper solution though.

14
  • 2
    So you have 50 Chrome Windows and across those instances you have 450 tabs opened?
    – Ramhound
    Commented May 9, 2022 at 21:39
  • 1
    @user643011 - why? Commented May 10, 2022 at 10:48
  • 2
    @Michael Harvey Why not? That's how I use my computer. Any idea why the Chrome browser doesn't take advantage of all available RAM and runs out of memory with more than 60GB physical memory free?
    – user643011
    Commented May 10, 2022 at 18:50
  • 1
    I have a similar problem. Windows 10 and Chrome 103.0.5060.114 with 64 GB. Task Manager shows memory usage of under 50%—but Chrome still reports "Not enough memory to open this page."
    – user697473
    Commented Jul 22, 2022 at 17:42
  • 2
    Could you try launching Chrome with the switch --disable-backing-store-limit its description reads Disable limits on the number of backing stores. Can prevent blinking for users with many windows/tabs and lots of memory. You didn't mention any blinking issues but it sounds promising.
    – Baa
    Commented Aug 9, 2022 at 17:30

2 Answers 2

2

So until I find convincing evidence to the contrary I am strongly suspecting that the reason Chrome browser is crashing even though there was still enough memory free is due to a Windows hardcoded limit on GPU memory:

GPU Memory is Dedicated GPU memory + Shared GPU memory.

task manager - performance tab -gpu

You can view GPU Memory, Dedicated GPU Memory and Shared GPU memory size in Task Manger in the Performance - GPU tab.

Dedicated GPU memory depends on your graphics card and is usually somewhere between 1GB and 32GB for 2023 hardware. For your dedicated GPU it is the amount of GPU memory on the card. For some integrated graphics cards the Dedicated GPU memory has to be segmented off the main system memory and this allocation can be configured in the BIOS. See for example this video for how to change dedicated GPU memory size for AMD integrated graphics on an ASRock BIOS. Or this link on how to change dedicated GPU memory for Intel integrated graphics via BIOS or Registry edit.

Shared GPU memory is limited to half your system memory. The best way to fix the crashes would be to make this configurable in Windows but unfortunately I didn't find any way to change this allocation. This source claims it is a hardcoded Windows limitation. And this more detailed post and this official Microsoft documentation seems to confirm this. Most of the tutorials that claim to explain how to change the shared GPU memory actually explain how to change dedicated GPU memory allocation for integrated graphics.

So if you run into this problem while having hundreds of tabs open you can:

  1. Buy more RAM. Half your additional system RAM will contribute to a higher upper bound on shared GPU memory and thus to the total GPU memory.
  2. Disable #enable-gpu-rasterization in chrome://flags/ to ease on GPU memory requirements.
  3. Close other programms.
  4. dwm.exe was using a large amout (>10GB) of shared GPU memory on my computer. Try this: https://superuser.com/a/496506/182880 Be aware that the system wide available shared GPU memory means something completely different than the similarly named shared GPU memory that is required by a process as shown if you enable that column in the process "details" tab of the Task Manger.
  5. The Chrome "Memory saver" feature that was released with Chrome 110 in 2023 will also mostly allow you to have 1000 tabs open, yet unloaded, because it will make make it unlikely that you will run into "out of memory" crashes, or slowdowns when you have dozens of GB of system RAM. In my experience this works much more reliably, and recouperates memory more agressively than earlier approaches of discarded tabs, or the 3rd party "The Great Discarder" browser extension.
1

I've been going through a similar investigation on my own ultra powerful computer.

I found that task manager is really inaccurate for physical memory usage, and only shows active memory usage.

There's a tool built into windows called "Resource Monitor" that you can use to look at "Standby Memory". When you run into a memory issue, you almost certainly will have a lot of "Standby Memory".

This however is NOT the OS stealing memory that could be used by your application. This is the OS specifying resources that aren't currently being accessed, and also exist on the hard drive. The OS is allowing that RAM to be overwritten if needed based on a prioritization matrix. What is likely happening is your memory is full and unneeded memory is being cleared only to be needed again later on.

There is another tool published by Microsoft called RAMMap. This can help you further understand the memory issues, and narrow down areas for improvement.

1
  • What you say is mostly correct but it is not useful and not a solution to my question or I didn't understand you correctly. Yes, standby memory is Windows' file cache. And you can display standby memory usage with RAMMap. But this cache memory can always be cleared by Windows when an application needs more memory. Why would Chrome throw Out of Memory errors instead of working correctly because of this cache? Especially when there are still multiple 10s of GB of physical memory that are not used by applications.
    – user643011
    Commented Apr 25, 2023 at 12:16

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .