Closed Bug 1307713 Opened 8 years ago Closed 1 year ago

Firefox operations degrade after reaching 2gb of RAM

Categories

(Core :: General, defect)

45 Branch
defect

Tracking

()

RESOLVED INCOMPLETE

People

(Reporter: gmintheoffice, Unassigned)

Details

(Whiteboard: [MemShrink:P3])

Attachments

(1 file)

User Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:45.0) Gecko/20100101 Firefox/45.0
Build ID: 20160601155443

Steps to reproduce:

I run latest Firefox both 32 and 64 bit on different Win7 machines with minimum 8GB RAM.
I have hundreds of tabs open, though not all of them loaded. 
My daily routine involves opening/loading multiple (new) tabs, some of which JS and/or media heavy. Typical examples could be: Facebook, Youtube, Tumblr, Skyscrapercity, Soundcloud, ebay. I have a very few basic extensions/plugins: e.g. flash, adblock.


Actual results:

During the daily routine of loading new pages, RAM usage steadily increases. Once it hits 2GB, loading and displaying the pages significantly degrades: it takes a lot of time to load the page; content is not properly rendered, media/heavy/visual elements (e.g. pictures) are missing; Pages are loaded with some sort of white/blinking blocks (artifacts) on top of them.


Expected results:

While RAM usage could be expected to increase, I don't understand why after 2GB the browser function degrades. Certainly not on a system with 64bits and enough RAM. My only practical solution is to restart the browser as soon as it reaches 2GB of RAM and start it again. But given the hundreds of tabs, it usually starts already with 1GB of memory and it doesn't take too long to reach 2GB. Typically about once per day it, I need to restart it due to that reason.
Priority: -- → P3
Whiteboard: [good first bug]
Priority: P3 → --
Whiteboard: [good first bug] → [MemShrink]
Component: Untriaged → General
Product: Firefox → Core
Are you stuck with ESR 45 or is it possible to test the latest release [1] or even beta [2]? An about:memory report [3] would be useful when you are experiencing a slow down as well.

A profiler snapshot might also be helpful (only when you see a slowdown) in identifying what's causing the slowdown, you can create a recording with our built-in devtools by opening Tools > Web Developer > Performance.

[1] https://www.mozilla.org/firefox/channel/#firefox
[2] https://www.mozilla.org/firefox/channel/#beta
[3] https://developer.mozilla.org/en-US/docs/Mozilla/Performance/about:memory#How_to_generate_memory_reports
Flags: needinfo?(gmintheoffice)
Currently using 45.2.0 already, though I only update via the officially released versions.

All the described negative effects seems to appear when approaching close and after turning 2GB of RAM usage. Truth to be told, sometimes it was not so annoying up till 2,4GB, but you can see that it took more to load or never really finished loading pages (e.g. missing content and the looping icon of the page tab).

p.s. on my other machine, now FF and plugin container appear separately in a ration something like 60:40. And I would experience similar difficulties once the combined usage goes over 2GB (i.e. 1,2gb + 0,8GB plugin container). Also in the past, occasionally the FF actually crashed. But this was month ago and maybe even 32bit version I was running for a while. Unfortunately it took me some years till I decided to complaint about this issue and have more structured observations.

I have to see if I can do recording. Never done this before. Is there any personal data collected in it? I can not provide such from the office.
this is a memory report from about:memmory I produced as requested, when first signs of decrease in behavior were noticed. Used RAM 2,2GB
(In reply to Eric Rahm [:erahm] from comment #2)
> Are you stuck with ESR 45 or is it possible to test the latest release [1]
> or even beta [2]? An about:memory report [3] would be useful when you are
> experiencing a slow down as well.
> 
> A profiler snapshot might also be helpful (only when you see a slowdown) in
> identifying what's causing the slowdown, you can create a recording with our
> built-in devtools by opening Tools > Web Developer > Performance.
> 
> [1] https://www.mozilla.org/firefox/channel/#firefox
> [2] https://www.mozilla.org/firefox/channel/#beta
> [3]
> https://developer.mozilla.org/en-US/docs/Mozilla/Performance/about:
> memory#How_to_generate_memory_reports

please see attachment
(In reply to gmintheoffice from comment #3)
> Currently using 45.2.0 already, though I only update via the officially
> released versions.

Okay it sounds like you're on an ESR release [1]. The latest official (non-extended support) release is 49.0.1 [2], if you feel comfortable you can try that out.

> p.s. on my other machine, now FF and plugin container appear separately in a
> ration something like 60:40.

It sounds like you're using a newer release that has e10s enabled, two processes are indeed expected.

> I have to see if I can do recording. Never done this before. Is there any
> personal data collected in it? I can not provide such from the office.

The profiler will include the names of the websites you are on. If you can't provide that a screenshot of the 'Waterfall' tab (that should be the default selection) might be helpful. It will tell me if we're spending a lot of time on garbage collection and/or cycle collection.

(In reply to gmintheoffice from comment #4)
> Created attachment 8800136 [details]
> memroy report at 2,2gb as requested
> 
> this is a memory report from about:memmory I produced as requested, when
> first signs of decrease in behavior were noticed. Used RAM 2,2GB

The interesting bits:

> 1,781.47 MB (100.0%) -- explicit
> ├────676.09 MB (37.95%) -- js-non-window
> │    ├──379.94 MB (21.33%) -- zones
> │    │  ├──295.17 MB (16.57%) ++ zone(0x76b000)
> │    │  ├───53.34 MB (02.99%) ++ zone(0x75e000)
> │    │  └───31.43 MB (01.76%) ++ (3549 tiny)
> │    ├──179.05 MB (10.05%) ++ gc-heap
> │    └──117.09 MB (06.57%) -- runtime
> │       ├───59.44 MB (03.34%) ── script-data
> │       └───57.66 MB (03.24%) ++ (12 tiny)
> ├────485.81 MB (27.27%) -- window-objects
> │    ├──313.22 MB (17.58%) ++ (522 tiny)
> │    ├───37.77 MB (02.12%) ++ top(<anonymized-8>, id=8)
> │    ├───28.48 MB (01.60%) ++ top(<anonymized-8062>, id=8062)
> │    ├───24.69 MB (01.39%) ++ top(<anonymized-8173>, id=8173)
> │    ├───21.80 MB (01.22%) ++ top(<anonymized-7898>, id=7898)
> │    ├───21.08 MB (01.18%) ++ top(<anonymized-957>, id=957)
> │    ├───19.79 MB (01.11%) ++ top(<anonymized-8085>, id=8085)
> │    └───18.99 MB (01.07%) ++ top(<anonymized-1385>, id=1385)

So we have 3,551 js-non-window zones, which seems like it could certainly affect performance. There also 529 top-level windows which seems quite high.

>        47.49 MB ── d3d11-shared-textures
>         0.99 MB ── gfx-surface-win32
>       308.57 MB ── gpu-committed
>       192.55 MB ── gpu-dedicated
>        61.27 MB ── gpu-shared
>       975.23 MB ── heap-allocated
>       997.71 MB ── heap-committed
>     1,463.00 MB ── heap-mapped
>     2,239.11 MB ── resident-unique

The delta between resident-unique and heap-committed is quite high (1.2GB).

[1] https://www.mozilla.org/firefox/organizations/
[2] https://www.mozilla.org/firefox/49.0.1/releasenotes/
Flags: needinfo?(gmintheoffice)
gmintheoffice, it might be helpful to get the output of 'about:support', just navigate to about:support in your URL bar, then click 'copy text to clipboard' and you can paste the output here. Then  I suspect you may have some addons that are causing you issues.

On the other hand if your really do have 529 tabs open it's not unexpected for things to slow down.
Flags: needinfo?(gmintheoffice)
(In reply to Eric Rahm [:erahm] from comment #7)
> gmintheoffice, it might be helpful to get the output of 'about:support',
> just navigate to about:support in your URL bar, then click 'copy text to
> clipboard' and you can paste the output here. Then  I suspect you may have
> some addons that are causing you issues.
> 
> On the other hand if your really do have 529 tabs open it's not unexpected
> for things to slow down.

Hi, please find under the report. I obscured few personal information, but didn't remove content. Currently it is running on 2,4GB and I can't load a new page (the tab is blank and the icon is loading).

As for the tabs, I know I have many on the bar, but I am honestly surprised that they are over 500. I checked and this number probably is correct. However, only fraction of this is actually loaded! I mean isn't this the whole point of the option to load only when touched? I would expect tabs on the bar that are haven't yet been touched (under the current session/since last restart) to use if not 0 resources at least close to that!

p.s. unfortunately on this machine I can not choose what version of FF to use. If such tests are really necessarily, I could try on the other machine (with the two processes - "e10s enabled").

Detour: Please note that though I am an IT professional, I have no (dev) knowledge about FF and web browsers in general nor open source in that matter. My only desire and hope is to help improve the behavior and the performance of my beloved browser and provide as much constructive feedback as possible. Btw I am much unhappy about the Chrome I occasionally use and stumble much worse performance. For some reason it creates a separate process for each tab and they consume few hundreds gigs of RAM each. Needless to say, after just one or two dozens tabs it screws its and my machine's performance. Therefore FF is light years ahead for me, but it can still go better. To say it again, given that memory is in abundance, I don't see why reaching over 2GB causes problems.

Application Basics
------------------

Name: Firefox
Version: 45.4.0
Build ID: 20160905130425
Update Channel: esr
User Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:45.0) Gecko/20100101 Firefox/45.0
Multiprocess Windows: 0/3 (default: false)
Safe Mode: false

Crash Reports for the Last 3 Days
---------------------------------

All Crash Reports

Extensions
----------

Name: Adblock Plus
Version: 2.7.3
Enabled: true
ID: {d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}

Name: Firefox Hello Beta
Version: 1.1.14
Enabled: true
ID: loop@mozilla.org

Name: Firefox Hotfix
Version: 20160826.01
Enabled: true
ID: firefox-hotfix@mozilla.org

Name: Forecastfox
Version: 2.2.2.1-signed.1-let-fixed.1-signed
Enabled: true
ID: {0538E3E3-7E9B-4d49-8831-A227C80A7AD3}

Name: Session Manager
Version: 0.8.1.12
Enabled: true
ID: {1280606b-2510-4fe0-97ef-9b5a22eafe30}

Name: New Tab by Yahoo
Version: 1.3.5
Enabled: false
ID: jid1-G80Ec8LLEbK5fQ@jetpack

Graphics
--------

Adapter Description: NVIDIA GeForce GT 610
Adapter Drivers: nvd3dumx,nvwgf2umx,nvwgf2umx nvd3dum,nvwgf2um,nvwgf2um
Adapter RAM: 1024
Asynchronous Pan/Zoom: none
Device ID: 0x104a
Direct2D Enabled: true
DirectWrite Enabled: true (6.2.9200.21976)
Driver Date: 7-10-2016
Driver Version: 10.18.13.6881
GPU #2 Active: false
GPU Accelerated Windows: 3/3 Direct3D 11 (OMTC)
Subsys ID: 521519da
Supports Hardware H264 Decoding: Yes
Vendor ID: 0x10de
WebGL Renderer: Google Inc. -- ANGLE (NVIDIA GeForce GT 610 Direct3D11 vs_5_0 ps_5_0)
windowLayerManagerRemote: true
AzureCanvasBackend: direct2d 1.1
AzureContentBackend: direct2d 1.1
AzureFallbackCanvasBackend: cairo
AzureSkiaAccelerated: 0

Important Modified Preferences
------------------------------

accessibility.typeaheadfind: true
accessibility.typeaheadfind.flashBar: 0
browser.cache.disk.capacity: 358400
browser.cache.disk.filesystem_reported: 1
browser.cache.disk.hashstats_reported: 1
browser.cache.disk.smart_size_cached_value: 358400
browser.cache.disk.smart_size.first_run: false
browser.cache.disk.smart_size.use_old_max: false
browser.cache.frecency_experiment: 3
browser.download.importedFromSqlite: true
browser.download.manager.alertOnEXEOpen: true
browser.places.smartBookmarksVersion: 7
browser.sessionstore.upgradeBackup.latestBuildID: 20160905130425
browser.startup.homepage_override.buildID: 20160905130425
browser.startup.homepage_override.mstone: 45.4.0
browser.tabs.warnOnClose: false
browser.urlbar.userMadeSearchSuggestionsChoice: true
dom.apps.reset-permissions: true
dom.mozApps.used: true
dom.w3c_touch_events.expose: false
extensions.lastAppVersion: 45.4.0
font.internaluseonly.changed: false
gfx.crash-guard.d3d11layers.appVersion: 45.4.0
gfx.crash-guard.d3d11layers.deviceID: 0x104a
gfx.crash-guard.d3d11layers.driverVersion: 10.18.13.6881
gfx.crash-guard.d3d11layers.feature-d2d: true
gfx.crash-guard.d3d11layers.feature-d3d11: true
gfx.crash-guard.glcontext.gfx.driver-init.direct3d11-angle: true
gfx.crash-guard.glcontext.gfx.driver-init.webgl-angle: true
gfx.crash-guard.glcontext.gfx.driver-init.webgl-angle-force-d3d11: false
gfx.crash-guard.glcontext.gfx.driver-init.webgl-angle-force-warp: false
gfx.crash-guard.glcontext.gfx.driver-init.webgl-angle-try-d3d11: true
gfx.crash-guard.status.d3d11layers: 2
gfx.crash-guard.status.d3d9video: 2
gfx.crash-guard.status.glcontext: 2
gfx.direct3d.last_used_feature_level_idx: 0
gfx.direct3d.prefer_10_1: true
media.gmp-eme-adobe.abi: x86_64-msvc-x64
media.gmp-eme-adobe.lastUpdate: 1469706872
media.gmp-eme-adobe.version: 16
media.gmp-gmpopenh264.abi: x86_64-msvc-x64
media.gmp-gmpopenh264.lastUpdate: 1472452167
media.gmp-gmpopenh264.version: 1.6
media.gmp-manager.buildID: 20160905130425
media.gmp-manager.lastCheck: 1476857946
media.hardware-video-decoding.failed: false
media.webrtc.debug.aec_log_dir: C:\Users\{obscuredUser}\AppData\Local\Temp
media.webrtc.debug.log_file: C:\Users\{obscuredUser}\AppData\Local\Temp\WebRTC.log
network.cookie.prefsMigrated: true
network.predictor.cleaned-up: true
places.database.lastMaintenance: 1476434157
places.history.expiration.transient_current_max_pages: 104858
plugin.disable_full_page_plugin_for_types: application/pdf
plugin.importedState: true
plugin.state.flash: 1
plugin.state.npintelwebapiipt: 0
plugin.state.npintelwebapiupdater: 0
print.printer_\{obscuredPrinterLocation}.print_bgcolor: false
print.printer_\{obscuredPrinterLocation}.print_bgimages: false
print.printer_\{obscuredPrinterLocation}.print_colorspace:
print.printer_\{obscuredPrinterLocation}.print_command:
print.printer_\{obscuredPrinterLocation}.print_downloadfonts: false
print.printer_\{obscuredPrinterLocation}.print_duplex: -2147483575
print.printer_\{obscuredPrinterLocation}.print_edge_bottom: 0
print.printer_\{obscuredPrinterLocation}.print_edge_left: 0
print.printer_\{obscuredPrinterLocation}.print_edge_right: 0
print.printer_\{obscuredPrinterLocation}.print_edge_top: 0
print.printer_\{obscuredPrinterLocation}.print_evenpages: true
print.printer_\{obscuredPrinterLocation}.print_footercenter:
print.printer_\{obscuredPrinterLocation}.print_footerleft: &PT
print.printer_\{obscuredPrinterLocation}.print_footerright: &D
print.printer_\{obscuredPrinterLocation}.print_headercenter:
print.printer_\{obscuredPrinterLocation}.print_headerleft: &T
print.printer_\{obscuredPrinterLocation}.print_headerright: &U
print.printer_\{obscuredPrinterLocation}.print_in_color: true
print.printer_\{obscuredPrinterLocation}.print_margin_bottom: 0.5
print.printer_\{obscuredPrinterLocation}.print_margin_left: 0.5
print.printer_\{obscuredPrinterLocation}.print_margin_right: 0.5
print.printer_\{obscuredPrinterLocation}.print_margin_top: 0.5
print.printer_\{obscuredPrinterLocation}.print_oddpages: true
print.printer_\{obscuredPrinterLocation}.print_orientation: 0
print.printer_\{obscuredPrinterLocation}.print_page_delay: 50
print.printer_\{obscuredPrinterLocation}.print_paper_data: 9
print.printer_\{obscuredPrinterLocation}.print_paper_height: 11,00
print.printer_\{obscuredPrinterLocation}.print_paper_name:
print.printer_\{obscuredPrinterLocation}.print_paper_size_type: 0
print.printer_\{obscuredPrinterLocation}.print_paper_size_unit: 1
print.printer_\{obscuredPrinterLocation}.print_paper_width: 8,50
print.printer_\{obscuredPrinterLocation}.print_plex_name:
print.printer_\{obscuredPrinterLocation}.print_resolution: 432
print.printer_\{obscuredPrinterLocation}.print_resolution_name:
print.printer_\{obscuredPrinterLocation}.print_reversed: false
print.printer_\{obscuredPrinterLocation}.print_scaling: 1,00
print.printer_\{obscuredPrinterLocation}.print_shrink_to_fit: true
print.printer_\{obscuredPrinterLocation}.print_to_file: false
print.printer_\{obscuredPrinterLocation}.print_unwriteable_margin_bottom: 0
print.printer_\{obscuredPrinterLocation}.print_unwriteable_margin_left: 0
print.printer_\{obscuredPrinterLocation}.print_unwriteable_margin_right: 0
print.printer_\{obscuredPrinterLocation}.print_unwriteable_margin_top: 0
print.printer_PDF24_PDF.print_bgcolor: false
print.printer_PDF24_PDF.print_bgimages: false
print.printer_PDF24_PDF.print_colorspace:
print.printer_PDF24_PDF.print_command:
print.printer_PDF24_PDF.print_downloadfonts: false
print.printer_PDF24_PDF.print_duplex: -2147483575
print.printer_PDF24_PDF.print_edge_bottom: 0
print.printer_PDF24_PDF.print_edge_left: 0
print.printer_PDF24_PDF.print_edge_right: 0
print.printer_PDF24_PDF.print_edge_top: 0
print.printer_PDF24_PDF.print_evenpages: true
print.printer_PDF24_PDF.print_footercenter:
print.printer_PDF24_PDF.print_footerleft: &PT
print.printer_PDF24_PDF.print_footerright: &D
print.printer_PDF24_PDF.print_headercenter:
print.printer_PDF24_PDF.print_headerleft: &T
print.printer_PDF24_PDF.print_headerright: &U
print.printer_PDF24_PDF.print_in_color: true
print.printer_PDF24_PDF.print_margin_bottom: 0.5
print.printer_PDF24_PDF.print_margin_left: 0.5
print.printer_PDF24_PDF.print_margin_right: 0.5
print.printer_PDF24_PDF.print_margin_top: 0.5
print.printer_PDF24_PDF.print_oddpages: true
print.printer_PDF24_PDF.print_orientation: 0
print.printer_PDF24_PDF.print_page_delay: 50
print.printer_PDF24_PDF.print_paper_data: 9
print.printer_PDF24_PDF.print_paper_height: 11,00
print.printer_PDF24_PDF.print_paper_name:
print.printer_PDF24_PDF.print_paper_size_type: 0
print.printer_PDF24_PDF.print_paper_size_unit: 1
print.printer_PDF24_PDF.print_paper_width: 8,50
print.printer_PDF24_PDF.print_plex_name:
print.printer_PDF24_PDF.print_resolution: 432
print.printer_PDF24_PDF.print_resolution_name:
print.printer_PDF24_PDF.print_reversed: false
print.printer_PDF24_PDF.print_scaling: 1,00
print.printer_PDF24_PDF.print_shrink_to_fit: true
print.printer_PDF24_PDF.print_to_file: false
print.printer_PDF24_PDF.print_unwriteable_margin_bottom: 0
print.printer_PDF24_PDF.print_unwriteable_margin_left: 0
print.printer_PDF24_PDF.print_unwriteable_margin_right: 0
print.printer_PDF24_PDF.print_unwriteable_margin_top: 0
privacy.sanitize.migrateFx3Prefs: true
security.warn_viewing_mixed: false
services.sync.declinedEngines:
storage.vacuum.last.index: 1
storage.vacuum.last.places.sqlite: 1475047274

Important Locked Preferences
----------------------------

JavaScript
----------

Incremental GC: true

Accessibility
-------------

Activated: false
Prevent Accessibility: 0

Library Versions
----------------

NSPR
Expected minimum version: 4.12
Version in use: 4.12

NSS
Expected minimum version: 3.21.1 Basic ECC
Version in use: 3.21.1 Basic ECC

NSSSMIME
Expected minimum version: 3.21.1 Basic ECC
Version in use: 3.21.1 Basic ECC

NSSSSL
Expected minimum version: 3.21.1 Basic ECC
Version in use: 3.21.1 Basic ECC

NSSUTIL
Expected minimum version: 3.21.1
Version in use: 3.21.1

Experimental Features
---------------------
Can you try disabling a few addons to see if those are causing issues?
  - Forecastfox
  - Session Manager

If possible you could try updating AdBlock Plus, the latest version is 2.8.1 and older versions have been known to have memory impact before.
Flags: needinfo?(gmintheoffice)
Whiteboard: [MemShrink] → [MemShrink:P3]
Severity: normal → S3

gmintheoffice does this still reproduce for you?

Flags: needinfo?(gmintheoffice)
Whiteboard: [MemShrink:P3] → [closeme 2023-01-15][MemShrink:P3]

Redirect a needinfo that is pending on an inactive user to the triage owner.
:sdetar, since the bug has recent activity, could you have a look please?

For more information, please visit auto_nag documentation.

Flags: needinfo?(gmintheoffice) → needinfo?(sdetar)
Flags: needinfo?(sdetar)

Resolved per whiteboard

Status: UNCONFIRMED → RESOLVED
Closed: 1 year ago
Resolution: --- → INCOMPLETE
Whiteboard: [closeme 2023-01-15][MemShrink:P3] → [MemShrink:P3]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: