Closed Bug 1305091 Opened 8 years ago Closed 7 years ago

Stop using content processes when they are using "too much" memory

Categories

(Core :: DOM: Content Processes, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla54
Tracking Status
e10s + ---
firefox54 --- fixed

People

(Reporter: benjamin, Assigned: benjamin)

References

Details

(Whiteboard: [e10s-multi:M3])

Attachments

(1 file)

When a content process starts using "too much" memory, it's much more likely to crash. Depending on why we're using memory, this can also correlate with high GC/CC pause times or other general jank.

So something I think we should do short-term is stop assigning new tabs to an existing content process when it has high memory. We'll call this a "deprecated content process".

More complex (move to another bug/later?) would be to move *existing* tabs to another process on page navigation.

Proposed criteria for marking a content process as deprecated:
* on any system (32-bit/64-bit) >1G private bytes
* on any system: more than one GC pause >500ms in the last hour
* on 32-bit systems: <512M largest available block of VM
tracking-e10s: --- → ?
Whiteboard: [e10s-multi:?]
Whiteboard: [e10s-multi:?] → [e10s-multi:M3]
Assignee: nobody → benjamin
Status: NEW → ASSIGNED
Comment on attachment 8834463 [details]
Bug 1305091 - Stop using content processes when they are running out of memory data-r?francois

https://reviewboard.mozilla.org/r/110398/#review111696

This looks good to me.
Attachment #8834463 - Flags: review?(ksteuber) → review+
Comment on attachment 8834463 [details]
Bug 1305091 - Stop using content processes when they are running out of memory data-r?francois

https://reviewboard.mozilla.org/r/110398/#review111820
Attachment #8834463 - Flags: review?(mrbkap) → review+
Comment on attachment 8834463 [details]
Bug 1305091 - Stop using content processes when they are running out of memory data-r?francois

https://reviewboard.mozilla.org/r/110398/#review111876

datareview+
Attachment #8834463 - Flags: review?(francois) → review+
Pushed by bsmedberg@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/63af206d8770
Stop using content processes when they are running out of memory, r=mrbkap+ksteuber data-r=francois
https://hg.mozilla.org/mozilla-central/rev/63af206d8770
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla54
(In reply to Benjamin Smedberg [:bsmedberg] from comment #0)
> More complex (move to another bug/later?) would be to move *existing* tabs
> to another process on page navigation.

I talked to Bill about this a while ago and the only realistic way to move tabs/windows between processes currently, would be to reload them (using session store, restore tab probably). Which could be done easily for background tabs, especially since there is also a plan to unload some of the background tabs in some cases. On the plus side that would not be terrible difficult to implement.

> 
> Proposed criteria for marking a content process as deprecated:
> * on any system (32-bit/64-bit) >1G private bytes
> * on any system: more than one GC pause >500ms in the last hour
> * on 32-bit systems: <512M largest available block of VM

I guess we will block this functionality on e10s-multi, because of service workers mainly, or do you plan to release it sooner? Do you plan to add a cap for the number of concurrent deprecated processes?
Flags: needinfo?(benjamin)
My current plan was to let this ride the trains now not blocking on e10s-multi, and monitor how frequently it happens. If it happens a lot to certain users (more than 4x/session)s, we may need to implement capping, but right now I doubt that will be a problem.
Flags: needinfo?(benjamin)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: