Closed Bug 1585598 Opened 5 years ago Closed 3 years ago

Validate list of sites used for testing Fission

Categories

(Testing :: Performance, task, P2)

Version 3
task

Tracking

(Fission Milestone:M7)

RESOLVED DUPLICATE of bug 1674157
Fission Milestone M7

People

(Reporter: davehunt, Unassigned)

References

(Blocks 1 open bug)

Details

(Whiteboard: fission-perf)

Attachments

(1 file)

Review the current list of sites used by Raptor and AWSY for suitability of testing Fission. We could start with identifying the unique site origins within each tp6 recording. This may help us to identify additional or replacement sites to test.

From bug 1583914
(In reply to :Nika Layzell (ni? for response) from comment #4)

The important thing is that the URL which Firefox sees loading (from the DOM point of view) has a distinct eTLD+1 (e.g. example.com vs mochi.test). Unfortunately, port # and subdomains don't count as different sites, so won't get different processe

I understand we need multiple domain in our recordings for this tests to work as effective as it can get...

Looking at the current recordings we have captured the "http_protocol" that the raw packages are using to communicate.
from this we can extract a list of eTLD that we have in our recordings.

Example:

 "http_protocol":{
      "detectportal.firefox.com":"HTTP/1.1",
      "snippets.cdn.mozilla.net":"HTTP/1.1",
      "push.services.mozilla.com":"HTTP/1.1",
      "www.youtube.com":"HTTP/2.0",
      "shavar.services.mozilla.com":"HTTP/1.1",
      "tracking-protection.cdn.mozilla.net":"HTTP/1.1",
      "fonts.googleapis.com":"HTTP/2.0",
      "i.ytimg.com":"HTTP/2.0",
      "s.ytimg.com":"HTTP/2.0",
      "yt3.ggpht.com":"HTTP/2.0",
      "www.gstatic.com":"HTTP/2.0",
      "fonts.gstatic.com":"HTTP/2.0",
      "googleads.g.doubleclick.net":"HTTP/2.0",
      "accounts.google.com":"HTTP/2.0",
      "www.google.com":"HTTP/2.0",
      "www.google.ro":"HTTP/2.0",
      "clients1.google.com":"HTTP/2.0"
   }

Not sure if this is the information that we are are looking for but it's what we have without digging through all the recordings.

Note: For some sites that use more info. Here is the http_protocol of CNN on a mobile site: https://paste.mozilla.org/LyReXHfz
It depends of the amount of adds and data that it's on the recorded page.

Is this the required information? What would be a good website example to test fission?

Flags: needinfo?(nika)

That sort of information would be useful, yes. In the example you gave above, one could extract the eTLD+1s from the domains. Some of these URLs won't be loaded as documents, however.

IIRC that would look something like this ((*) is the first instance of that eTLD+1) :

"detectportal.firefox.com"            => firefox.com (*)
"snippets.cdn.mozilla.net"            => mozilla.net (*)
"push.services.mozilla.com"           => mozilla.com (*)
"www.youtube.com"                     => youtube.com (*)
"shavar.services.mozilla.com"         => mozilla.com
"tracking-protection.cdn.mozilla.net" => mozilla.net
"fonts.googleapis.com"                => fonts.googleapis.com (*) (`googleapis.com` is on public suffix list)
"i.ytimg.com"                         => ytimg.com (*)
"s.ytimg.com"                         => ytimg.com
"yt3.ggpht.com"                       => ggpht.com (*)
"www.gstatic.com"                     => gstatic.com (*)
"fonts.gstatic.com"                   => gstatic.com
"googleads.g.doubleclick.net"         => doubleclick.net (*)
"accounts.google.com"                 => google.com (*)
"www.google.com"                      => google.com
"www.google.ro"                       => google.ro (*)
"clients1.google.com"                 => google.com

In this case the final set of eTLD+1s is:

  • firefox.com
  • mozilla.net
  • mozilla.com
  • youtube.com
  • fonts.googleapis.com
  • ytimg.com
  • ggpht.com
  • gstatic.com
  • doubleclick.net
  • google.com
  • google.ro

I'm guessing that a number of these (such as the mozilla related ones, ytimg.com, and fonts.googleapis.com), won't be loaded as documents, cutting down the number of processes being used substantially..

I don't have a canonical list of "good websites" to test fission with, but cnn is an example which we've observed to have as many as 17 oop iframes.

Flags: needinfo?(nika)

Bebe: Is this something to add to the recording process, or perhaps even better write a script that processes all of the JSON files from the manifests and provides a summary of site and total eTLD+1s? Can we get this assigned and prioritised as it would be good to identify if we should adjust our target sites for Fission suitability.

Flags: needinfo?(fstrugariu)

Tentatively moving all bugs whose summaries mention "Fission" (or other Fission-related keywords) but are not assigned to a Fission Milestone to the "?" triage milestone.

This will generate a lot of bugmail, so you can filter your bugmail for the following UUID and delete them en masse:

0ee3c76a-bc79-4eb2-8d12-05dc0b68e732

Fission Milestone: --- → ?

Blocks enabling Fission in Nightly (M6)

Fission Milestone: ? → M6
Assignee: nobody → fstrugariu
Status: NEW → ASSIGNED
Flags: needinfo?(fstrugariu)

added a patch to update the recording process
https://github.com/mozilla/raptor-studio/pull/27/commits/2f8b3e9578a2a47afcd968aa1560717d79cfefb0

I will make a list of all the recordings and current etdl

Attached file etdl results
Attachment #9111629 - Attachment mime type: text/plain → application/json

not sure how to present this data but this is the raw json that I have
I will make a google doc with more readable data

Here is a more readable doc:

https://docs.google.com/spreadsheets/d/1d70uX1-Ng8PFEhOtc8s5oyKxYShyZEvBMkf3_c4ZNws/edit?usp=sharing

:Nika, :sdoner can you confirm this is the correct information we need?

What is the next step after this?

Flags: needinfo?(stephen.donner)

(In reply to Florin Strugariu [:Bebe] (needinfo me) from comment #9)

Here is a more readable doc:

https://docs.google.com/spreadsheets/d/1d70uX1-Ng8PFEhOtc8s5oyKxYShyZEvBMkf3_c4ZNws/edit?usp=sharing

:Nika, :sdoner can you confirm this is the correct information we need?

What is the next step after this?

Thanks for doing this, :bebe, and apologies for the delay, here. The output in the spreadsheet looks good to me, as it breaks down the unique hostnames, number of eTLDs, etc. Leaving my need-info? open to remind me to follow-up soon on this issue.

From this, I'd imagine we start figuring out how to extend/augment, or perhaps make Fission-only variants of tests with high eTLD counts, or perhaps create a new test with unusually high eTLD counts (perhaps as a "stress test" for Fission), and see where those approaches get us.

Kris, while Nika's unavailable, would you have suggestions for the above/something else? Happy to go high-bandwidth Zoom chat with you and :bebe.

Flags: needinfo?(stephen.donner) → needinfo?(kmaglione+bmo)

I'm not sure how useful the numbers in that document are. It still counts the number of origins that any requests are made for, rather than only the origins that are loaded as documents. The first entry lists 53 origins, for instance, but when I load it locally, I only see 8 separate origins loaded into frames (which may not be the same as the number in the recording, but is certainly closer to the mark)

Flags: needinfo?(kmaglione+bmo)
Blocks: fission-perf

Florin, are you still working on this bug? If not please unassign and update the priority given our triage guidelines. Thanks.

Flags: needinfo?(fstrugariu)
Priority: P2 → P1
Assignee: fstrugariu → nobody
Status: ASSIGNED → NEW
Flags: needinfo?(fstrugariu)
Priority: P1 → P2
Blocks: 1601296
No longer blocks: 1582756

I there anything else we need to do here? Can I offer any assistance to close this bug?

Flags: needinfo?(nika)

Redirecting to :jesup, as he's taking over Fission performance work.

Flags: needinfo?(nika) → needinfo?(rjesup)

Mass-removing myself from cc; search for 12b9dfe4-ece3-40dc-8d23-60e179f64ac1 or any reasonable part thereof, to mass-delete these notifications (and sorry!)

No longer blocks: 1601296

Tracking for Fission M6b Nightly milestone.

Fission Milestone: M6 → M6b

(In reply to Stephen Donner [:stephend] Not actively reading bugmail from comment #10)

(In reply to Florin Strugariu [:Bebe] (needinfo me) from comment #9)

Here is a more readable doc:

https://docs.google.com/spreadsheets/d/1d70uX1-Ng8PFEhOtc8s5oyKxYShyZEvBMkf3_c4ZNws/edit?usp=sharing

:Nika, :sdoner can you confirm this is the correct information we need?

Unfortunately, this information is not correct (or at least not what we need).

This does list the number of eTLD+1's for those sites -- but not the number that would cause a process to be created for (i.e. eTLD+1's in an iframe). In theory we should also avoid double-counting multiple iframes to the same eTLD+1, but I don't know how common that is (if it's a google/doubleclick iframe for an ad, there might be several on a page).

Flags: needinfo?(rjesup) → needinfo?(fstrugariu)
Fission Milestone: M6b → M7

Randell how wold you suggest to count those process? is the a variable somewhere in firefox we can access from raptor to be able to output the necesary information?

Flags: needinfo?(fstrugariu) → needinfo?(rjesup)

You can get a list of all content processes (including preallocated/unused ones) as is seen here:
dom/base/test/browser_chromeutils_getalldomprocesses.js

You can probably then ask each ContentParent what it's type is (web for e10s processes, webIsolated=http(s)://xxxxxx for fission processes; there is also one other type relevant for sharedarraybuffers)

Flags: needinfo?(rjesup)

(In reply to Randell Jesup [:jesup] (needinfo me) from comment #19)

You can probably then ask each ContentParent what it's type is (web for e10s processes, webIsolated=http(s)://xxxxxx for fission processes; there is also one other type relevant for sharedarraybuffers)

I don't think the remote type is exposed yet, though I did write a patch to add that. I should put it up for review if it would be useful to somebody else.

Nika did say on Matrix "I think you can also kinda get it using ChromeUtils.requestProcInfo, but that's a bit heavyweight"

I have a patch up in bug 1656953 for adding remote type to that interface.

Flags: needinfo?(fstrugariu)
Whiteboard: fission-perf

Closing due to inactivity and that we have another bug similar to this one for adding tests with higher etld+1 counts.

Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → DUPLICATE

removing my ni?

Flags: needinfo?(fstrugariu)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: