2017-01-27 9 views
3

Ich habe ein Web Scrapper Setup auf einem t2.micro EC2-Instanz mit Ubuntu. Der Scrapper ist in Python geschrieben, es verwendet Selenium und PhantomJS. Die Daten werden an eine separate RDS-Instanz gesendet. Ich setze einen Cronjob, um das Skript alle 15 Minuten auszuführen, was es tut. Hier ist mein Problem: My CPU activityT2.micro läuft Python Scraper - unkontrollierbare CPU

Das Skript läuft gut (rote Kästen) und ganz plötzlich, es wird überlastet und meine Instanz wird wirklich langsam. Mein Skript läuft von ein paar Sekunden bis zu 10 Minuten läuft einfach nicht.
Während dieser Bursts verwendet die Instanz CPU-Credits. Meine CPU-Credits sind jedoch gestiegen. Ich habe festgestellt, dass ein Neustart der Instanz das Problem löst.
Irgendeine Idee, was passiert?

+0

Ich habe ein gleiches Problem auf IEdriver-Instanz (http://stackoverflow.com/questions/41679405/multiple-tests-on-the-same-iedriver-instance-memory-issues) und fand noch keine Lösung, nur Neustart der Instanz hilft. :/ – acikojevic

+0

Ich habe einen automatischen Neustart durchgeführt, wenn die CPU für 10 Minuten über die üblichen 10 Minuten geht, um das Problem zu umgehen, aber ich würde es lieber nicht neu starten müssen ... – nickfrenchy

+1

Offenbar schließt PhantomJS nach dem Ausführen des Skripts nicht Schließen Sie den Phantomjs-Prozess. Schlimmer noch, es erstellt jedes Mal, wenn das Skript gestartet wird, ein neues. – nickfrenchy

Antwort

0

Ich hatte das gleiche Problem, als ich auf ein t2.medium aktualisiert das Python-Skript lief viel schneller. Wenn Ihr Python würde ich empfehlen, am Ende des Codes, kann der Browser manchmal alle Speicher saugt und verlangsamt das Skript vor allem, wenn Ihr Betrieb einen Selen in einer Schleife mit psutil

for proc in psutil.process_iter(): 
    if proc.name() == 'phantomjs': 
     proc.kill() 

setzen, dass.