Re: instabiler Browser

Oliver Fromme <[email protected]> Sat, 10 Mar 2018 14:41:05 +0100 (CET)
Newsgroups gmane.os.freebsd.questions.german
Message-ID <[email protected]>
Hallo Heino,

Heino Tiedemann wrote:
 > Mal was neues vom Firefox.
 > 
 > Szenario 1:
 > 
 > Firefox hat zwei tabs offen, im Seamonkey läuft ein youtibe video -
 > [...]
 > Es scheint, das für jeden EINZELNEN Tab ZWEI Prozesse gestartet
 > werden. Und die sind gierrig. Hier sind es - für den Momanbt sogar
 > noch drei..

Es liegt mir ja fern, Firefox zu verteidigen, aber wieviele
Prozesse ein Browser pro Tab startet, ist relativ gleichgültig.
Beispielsweise ist denkbar, dass ein Prozess fürs Rendern und
einer für I/O verwendet wird, und/oder ein separater Prozess
für client-side Skripte.  Sandboxing-Mechanismen (unterstützt
Firefox sowas?) benötigen i. allg. auch mindestens einen
weiteren Prozess.  Diese Aufteilung auf mehrere Prozesse oder
Threads hat auch den Vorteil, dass die Arbeit auf mehrere
CPU-Kerne verteilt werden kann.  Moderne Prozessoren werden
dadurch also besser ausgenutzt.

Wieviel CPU solche Prozesse verbrauchen, hängt wiederum in
erheblichem Maße vom Inhalt der jeweiligen Webseite ab, nicht
so sehr vom Browser.  Eine statische Webseite benötigt nahezu
null CPU, wohingegen eine Webseite, die in erheblichem Umfang
client-seitige Skripte ausführt, die CPU schon mal an den
Anschlag bringen kann.  Allein schon, wenn eine Webseite
viel Werbung enthält (animierte Banner usw.), kann dies eine
deutliche Grundlast erzeugen.  Bei Videos (Youtube oder andere)
hängt es auch von zahlreichen Variablen ab, z. B.:  Wie ist der
Browser diesbezüglich konfiguriert?  Wie ist Xorg konfiguriert?
Kann Hardware-Beschleunigung verwendet werden?  Welche Formate
und Protokolle (HTML5, Flash, etwas Proprietäres) und welche
Codecs (h.264 a.k.a. AVC, h.265 a.k.a. HEVC, VPx, Theora, ...)
verwendet die Webseite?  Und so weiter.

BTW:  Tödlich für die Performance ist es auch, wenn man den
Browser nicht auf dem lokalen Display startet, sondern über
eine Remote-X-Verbindung.  Das kann durchaus auch versehentlich
passieren, wenn man den Browser z. B. in einem Chroot oder
Jail startet, so dass er keinen direkten Zugriff auf den
lokalen X-Socket (via /tmp) hat und den Umweg über eine lokale
Netzwerkverbindung (localhost) gehen muss, möglicherweise
sogar mit Crypto-Overhead, wenn es durch ssh getunnelt wird.

 > Was für eine Kacke diese Software doch ist :(

Das lasse ich mal unkommentiert stehen.

Ich habe mal testweise auf einer Kiste mit AMD Phenom-II X6
(ca. 8 Jahre alt) Chrome mit Youtube geöffnet; das sieht
nicht viel anders aus als bei Dir:

  PID USERNAME THR PRI NICE   SIZE    RES STATE  C TIME   WCPU COMMAND
 1432 olli      16  20    0   809M   354M uwait  1 0:51 27.67% chrome
 1294 olli       6  24    0   410M   197M CPU5   3 0:29 10.21% chrome
 1290 olli      24  21    0   387M   170M select 3 0:17  6.61% chrome
  864 root       1  20    0 24674M 54244K select 1 0:27  1.43% Xorg
 1471 olli       1  20    0  7912K  3796K CPU2   0 0:00  0.07% top
 1341 olli       6  20    0   530M   134M uwait  5 0:00  0.03% chrome

Man beachte, dass die gewichtete WCPU-Angabe relativ zu einem
Kern ist.  Da es sich um einen 6-Kern-Prozessor handelt, ist
der Rechner insgesamt immer noch zu ca. 95 Prozent idle.

Mit Hilfe von sockstat, lsof, ktrace u. a. sieht man ziemlich
rasch, dass der Prozess 1290 für Netzwerk-I/O zuständig ist,
Prozess 1294 kümmert sich um das Rendern, und 1432 führt
offenbar JavaScript in der Webseite aus (wovon YouTube ja
ausgiebig Gebrauch macht).  Insgesamt ist das Ergebnis nicht
verwunderlich.

Wenn ich YouTube durch eine weitgehend statische Webseite
ersetze, z. B. de.wikipedia.org, geht die CPU-Nutzung fast auf
null herunter, wie zu erwarten:

  PID USERNAME    THR PRI NICE   SIZE    RES STATE   C   TIME    WCPU COMMAND
  864 root          1  20    0 24674M 54244K select  4   0:32   0.30% Xorg
 1648 olli          1  20    0  7912K  3812K CPU5    2   0:00   0.13% top
 1647 olli         16  20    0   687M   230M uwait   3   0:03   0.05% chrome
 1294 olli          6  20    0   402M   197M select  3   0:56   0.00% chrome
 1290 olli         28  20    0   413M   187M select  4   0:52   0.00% chrome
 1341 olli          6  20    0   531M   135M uwait   3   0:00   0.00% chrome

Ich nehme an, dass es sich bei Firefox genauso verhält.

Gruß
   Olli


-- 
Oliver Fromme, München   --   FreeBSD + DragonFly BSD

``We are all but compressed light'' - Albert Einstein


To Unsubscribe: send mail to [email protected]
with "unsubscribe de-bsd-questions" in the body of the message