Poor performance due to ignored "--process-per-tab"
Reported by
niklas.g...@gmail.com,
Nov 20 2016
|
|||||||
Issue descriptionUserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:51.0) Gecko/20100101 Firefox/51.0 Steps to reproduce the problem: 1a. Start Chrome with "--user-data-dir=.../profile1" 1b. Open about 150+ tabs that are at least bit resource heavy, e.g. YouTube videos 1c. Set Chrome to restore the previous session 1d. Restart that profile, circle through all tabs once and wait for them to load 2a. Start Chrome with "--user-data-dir=.../profile2" 2b. Open another bunch of tabs, usually 20 to 50 will do 3. Do the same with "--process-per-tab --renderer-process-limit=1024" What is the expected behavior? Given a fast system, especially with enough RAM (~16+ GB), the performance should mostly be the same for all tabs. What went wrong? All the tabs opened in step 2b will be loaded in one big renderer process (which can be verified with chromes task manager). Because of this: 1. all those tabs share one main thread 2. save their data in the same process. The obvious consequence of 1. is that response times are pretty poor (much worse than e.g in Firefox with the same amount of tabs in a single process). But it gets much worse once the process uses about 3 to 3.5 GB of RAM, even though enough free, non-virtual RAM is available and the process is 64 bit. At this point the performance degrades rapidly and ends up so poor that switching the active tab gives you a blank screen for a number of seconds and responses to clicks take up o a minute. Chrome is simply unusable. Starting ether, both or even all (after restart) chrome instances with "--process-per-tab" and/or "--renderer-process-limit=1024" doesn't do anything. Did this work before? N/A Chrome version: 55.0.2883.28 (Official Build) beta (64-bit) Channel: stable OS Version: 10.0 Flash Version: A similar issue is described here: https://productforums.google.com/forum/#!topic/chrome/X5HMGvH1dYQ The problem it appears to me is that at some point (total number of chrome processes on running on the system?) chrome decides that spawning new renderer processes would be to resource heavy and instead renders all tabs in one process (the one that opened them?). And a secondary problem seems to be that chrome cant handle more than ~3.5 GB of RAM per process. I have only used chrome with more than a hand full of tabs for about a year and observed this problem from the start.
,
Nov 21 2016
cc'ing creis@ for more insights on this bug.
,
Nov 29 2016
Based on offline Chat with creis@ "--process-per-tab" isn't really supported flag. creis@ can you please give more insights on what niklas.gollenstede@ is seeing.
,
Nov 29 2016
Based on steps 1a through 2b, it sounds like the problem is that the process limit may be counting Chrome processes from other --user-data-dir sessions (profiles). I'll see if we can repro that locally, since my first reaction is that we should let each profile see its own process budget. (I agree that effectively forcing a second profile into single process mode isn't a good outcome.) CC'ing nasko@ for this, since we both know about the limit. I think the --process-per-tab aspect is likely a red herring. It's not meant to change the process limit-- it prevents process swaps from happening for (browser-initiated) cross-site navigations in a tab. See: http://www.chromium.org/developers/design-documents/process-models As for renderer processes being limited to about 3-3.5 GB, I'll have to defer to someone else, and it should probably be tracked separately if it's not intentional. rschoen@ or hablich@, do you know if this should be considered a bug, or who to ask?
,
Nov 30 2016
The upper limit per process is currently working as intended. Since a few weeks ago V8 is supporting larger heaps which will enable Chromium in the future to support higher per process memory limits.
,
Dec 1 2016
Thanks for your replies! After having read about the process models in more detail, I'd agree that "--process-per-tab" actually has nothing to do with this. Also, I now think that multiple-tab "related browsing contexts" may be the actual cause of this. When I wrote to "Open another bunch of tabs" in step 2b, I have always done that by Ctrl+click'ing different links from a single tab, which (probably?) causes them to be related to their origin tab - even though there is no opener relation between them (only the document.referrer string) and I don't think they can actually access each other. So today I did step 2b without any other chrome instances open, and was able to produce the described effects without steps 1a-d. (I was reasonably sure that steps 1a through d are actually required to cause this, but maybe I was mistaken.) I'll have another look at this tomorrow.
,
Dec 13 2016
@niklas.gollenstede: Gentle ping, can you please provide an update as per your above comment. @creis:Request you to please take a look and respond as per the update provided in comment#6 if required. Thanks.!
,
Sep 20 2017
,
May 23 2018
Closing issue as Wontfix due to lack of feedback requested but not provided. If the issue still exists please open a new issue with the details requested. Thanks..! |
|||||||
►
Sign in to add a comment |
|||||||
Comment 1 by ajha@chromium.org
, Nov 21 2016