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
ps
Spalten, aber ich denke, Sie sollten den Unterschied zwischen den beiden Prozessen in der STAT-Spalte, demSl
und, betrachtenS
. Auf denps
Manpagesl
bedeutet 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.pthread
undNPTL
sind Schlüsselwörter, die ich gefunden habe. Diese Frage enthält möglicherweise einige Informationen für Sie.Antworten:
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 :)
quelle