Wie kann man Chromium-Browser anweisen, eine URL als einzelne Instanz und nicht als mehrere Instanzen auszuführen?

7

Ich habe eine Webanwendung, die Daten crawlt, und jeder Browser, der sie zuerst herunterlädt, erhält diese Crawling-Informationen nicht.

Während ich den Chromium-Browser in einem PC benutze, starte ich wie folgt:

$ chromium-browser -kiosk "http://pbx/adminkiosk/index?language=EN&username=2002&password=1234" &
sun@sun-Alienware-X51:~$ ps aux | grep "chromium-browser"
sun      31816  0.7  1.5 613092 61384 pts/4    Sl   15:44   0:03 /usr/lib/chromium-browser/chromium-browser -kiosk http://pbx/adminkiosk/index?language=EN&username=2002&password=1234
sun      31818  0.0  0.1 264484  7248 pts/4    S    15:44   0:00 /usr/lib/chromium-browser/chromium-browser -kiosk http://pbx/adminkiosk/index?language=EN&username=2002&password=1234
sun      31819  0.0  0.0   6464   408 pts/4    S    15:44   0:00 /usr/lib/chromium-browser/chromium-browser-sandbox /usr/lib/chromium-browser/chromium-browser --type=zygote
sun      31820  0.0  0.4 281364 18012 pts/4    S    15:44   0:00 /usr/lib/chromium-browser/chromium-browser --type=zygote
sun      31824  0.0  0.1 281364  5404 pts/4    S    15:44   0:00 /usr/lib/chromium-browser/chromium-browser --type=zygote
sun      31849  1.1  2.3 1052972 91968 pts/4   Sl   15:44   0:05 /usr/lib/chromium-browser/chromium-browser --type=renderer --lang=en-US --force-fieldtrials=ForceCompositingMode/disable/InfiniteCache/No/OmniboxHQPReplaceHUPRearrangeNumComponents/Standard/OmniboxSearchSuggestTrialStarted2013Q1/5/OneClickSignIn/BlueOnWhite/Prefetch/ContentPrefetchPrefetchOff/Prerender/Prerender15minTTL/UMA-New-Install-Uniformity-Trial/Experiment/UMA-Session-Randomized-Uniformity-Trial-5-Percent/group_15/UMA-Uniformity-Trial-1-Percent/group_45/UMA-Uniformity-Trial-10-Percent/group_06/UMA-Uniformity-Trial-20-Percent/group_02/UMA-Uniformity-Trial-5-Percent/default/UMA-Uniformity-Trial-50-Percent/group_01/ --disable-gl-multisampling --disable-accelerated-2d-canvas --disable-accelerated-video-decode --channel=31816.0.281183995
sun      31981  0.0  0.0  13584   924 pts/4    S+   15:51   0:00 grep --color=auto chromium-browser

Da nun 2 Instanzen 2 URLs öffnen, werden die Daten, die gecrawlt werden, ohne Gleichgewicht an eine andere Instanz geliefert. Daher funktionieren meine Apps nicht mit Chromium, sondern mit Firefox / Opera.

Wie kann ich Chromium anweisen, dies zu stoppen? Und die URL nur mit einer Instanz ausführen, nicht zweimal?

BEARBEITEN:

Ich habe Flaggen ausprobiert, aber kein Glück

--process-per-site  
--single-process

quelle
1
Ich verstehe nicht alle psSpalten, aber ich denke, Sie sollten den Unterschied zwischen den beiden Prozessen in der STAT-Spalte, dem Slund, betrachten S. Auf den psManpages lbedeutet das Multithreading (Hyperthreading), was meiner Meinung nach mit dem Kernel zu tun hat und wie es mit Prozessoren umgeht, für die Hyperthreading aktiviert ist. pthreadund NPTLsind Schlüsselwörter, die ich gefunden habe. Diese Frage enthält möglicherweise einige Informationen für Sie.
Alaa Ali
@Alaa: Das Problem ist sehr seltsam und niemand versteht das eigentliche Problem, denke ich. 1) Nehmen wir an, eine Website wird jede Sekunde automatisch aktualisiert und hat einen Zähler, wie oft sie 100 Mal aktualisiert wurde. 2) statt 100 Mal echte Aktualisierung sehen Sie 200 Mal, wenn es aktualisiert wurde 3) weil es zweimal statt einmal ausgeführt wird
Wie viele Prozesse erhalten Sie, wenn Sie www.google.com nur mit Chrom mit derselben Befehlszeile laden?
EightBitTony
Warum nicht cURL oder wget oder PhantomJS
sparticvs

Antworten:

0

Es gibt viele Erklärungen, warum dies passieren kann.

Ich erinnerte mich, dass Chromium auch automatisch einen GPU-Prozess startet (allerdings nicht auf meinem Laptop), und da Sie Alienware verwenden, wird der GPU-Prozess vermutlich "eingeschlafen", wobei 0% auf die Anzeige einiger Grafiken warten.

Ich schlage vor, Sie versuchen die folgenden Flags:

--disable-gpu-process-prelaunch --disable-software-rasterizer

GPU (und Extras) deaktivieren

oder diese Flagge:

--in-process-gpu

um es als Thread auszuführen

Sie können es auch versuchen

process-per-tab

aber es scheint, als hätten Sie etwas Ähnliches ausprobiert, das nicht hilfreich war.

Bitte melden Sie sich mit Ihren Ergebnissen zurück :)

Reut Sharabani
quelle