Ausführen eines Prozesses, der 5 GB RAM benötigt

387
picmate 涅

Ich führe einen Python-Prozess aus, der ungefähr 5 GB RAM benötigt, was täglich etwa 5 Minuten auf meinem Laptop dauert. Jetzt möchte ich jedoch den Prozess automatisieren und auf einem Server ausführen (um zuverlässiger zu sein). Ich sah mich um und stellte fest, dass es VPSs gab, die die Arbeit erledigen konnten. Da ich die Ressourcen jeden Tag nur für 5 Minuten brauche, ist nicht wirklich sicher, ob ich eine komplette VPS abonnieren sollte. Gibt es andere Mittel, um die Aufgabe zu erledigen? Wie AWS Lambda? (Wenn ich das überprüft habe, können mit Lambda nur etwa 1 GB RAM verwendet werden)

1
Lambda ist maximal [1,5 GB RAM] (https://aws.amazon.com/lambda/pricing/). Wenn Sie den Speicherbedarf reduzieren können, wäre dies ideal für diesen Anwendungsfall und würde wahrscheinlich in den freien Rang fallen. Tim vor 7 Jahren 1

2 Antworten auf die Frage

1
lungj

Ein VPS ist definitiv ein Overkill, wenn Ihre Auslastung niedrig ist. Möglicherweise können Sie einen Deal mit einem Serveroperator über LowEndTalk abwickeln oder so etwas wie die Spot-Instanzen von AWS EC2 oder On-Demand-Instanzen (je nach Ihren genauen Anforderungen) oder Microsoft Azure verwenden . Sie zahlen stundenweise für EC2 und Azure. Ich habe keine EC2-Instanz erstellt, da Microsoft meinem Unternehmen eine Reihe kostenloser Gutschriften (obligatorischer Plug-In für Sponsor!) Zur Verfügung stellt. Ich kann also nicht sagen, wie einfach dies ist (es ist jedoch unkompliziert) verwendete EC2-Instanzen zuvor). Ich war daran gewöhnt, das Provisioning-System von VirtualBox zu verwenden, und empfand das Azure-Provisioning-System als etwas komplizierter, aber nicht allzu schwierig.

Eine Standard-Azure-VM mit 5 GB RAM würde 28 Cent / Stunde kostenpflichtig berechnen. Das bedeutet für Sie, dass Sie für 5 Minuten Nutzungsdauer pro Tag etwa 30 US-Dollar pro Jahr zurückzahlen müssen, plus etwas mehr für den Speicher (ich gehe davon aus, dass Sie einen dauerhaften Speicher benötigen) und Ihre anfängliche Einrichtung. Also vielleicht 40 Dollar pro Jahr. Diese wird mit einer Windows-Lizenz geliefert, falls Sie dies wünschen.

Ich bin nicht mit all den Gotchas für EC2 vertraut, aber der Preis für On-Demand-Preise für 8 GB RAM und zwei Kerne beträgt 9 Cent / Stunde, wenn Sie kein Windows benötigen (es sind ein paar Cent mehr pro Stunde, wenn Sie dies tun). Wenn Sie nicht viel Speicher benötigen, denke ich, dass dies viel billiger ist. Und ich glaube nicht, dass Sie so viel Bandbreite in 5 Minuten pro Tag verbrauchen. Dies bedeutet wahrscheinlich etwa 120 US-Dollar pro Jahr, wenn Sie Ihren Job mit 5 Minuten pro Tag ausführen müssen (+ von Azures stündlicher Abrechnung pro Stunde aufgerundet) (oder weniger als die Hälfte davon mit Spot-Instance-Preisen), wenn Sie flexibel sind zum Zeitpunkt).

Danke für die Info dort. Auf jeden Fall nützlich. Ich schaue auf EC2. Meine Website ist bereits auf aws Lightsail installiert, also sollte EC2 gut funktionieren. picmate 涅 vor 7 Jahren 0
@picmate 涅 - Entschuldigung, ich habe mich geirrt - EC2 Rechnungen stundenweise. Azure wird von Minute zu Minute abgerechnet. lungj vor 7 Jahren 0
Ich denke, das bedeutet, dass sie bei der Abrechnung auf die nächste Stunde aufrunden picmate 涅 vor 7 Jahren 0
AWS EC2 wird stundenweise für die gesamte Laufzeit der Instanz abgerechnet. Auf diese Weise werde ich belastet, selbst wenn die Instanz im Leerlauf ist. obwohl ich es 5 Minuten am Tag benutze. Daher glaube ich nicht, dass die von Ihnen gegebenen Lösungen richtig sind. picmate 涅 vor 7 Jahren 0
In Azure erstellen Sie eine permanente Festplatte zum Speichern des Betriebssystems und starten / stoppen dann eine virtuelle Maschine, die die Festplatte verwendet. Sie zahlen den Speicher für die gesamte Zeit (für einige Gigabyte sehr günstig) und nur für die Pünktlichkeit der VM selbst. Sie können Starts und Stopps auch automatisch einplanen: https://blogs.msdn.microsoft.com/stevenedouard/2017/01/13/automate-azure-vm-startup-and-shutdown/. Ich habe eine VM auf Azure, die ich zum Sichern verwende. Ich starte nur einen Synchronisierungsjob und es ist billig. lungj vor 7 Jahren 0
Vielen Dank. Mein Anwendungsfall ist jedoch etwas anders. Im Laufe des Tages lade ich einige Inhalte aus dem Internet herunter (von einem alten Job). Jeder Auszug dauert etwa 30 Sekunden. Führen Sie dann am Ende des Tages den Python-Prozess für den heruntergeladenen Inhalt aus. Es ist also ein bisschen schwierig, jedes Mal eine neue Instanz hochzufahren. Außerdem müssen Sie einige Vorbereitungen treffen, bevor Sie etwas ausführen (z. B. das Laden der erforderlichen Python-Module usw.). picmate 涅 vor 7 Jahren 0
In diesem Fall könnte der Vorschlag von @ Keltari derjenige sein, den Sie möchten (wenn Sie über den Platz und die Neigung für die Wartung eines physischen Servers verfügen und einen Server finden, der in Ihr Budget passt). Oder fragen Sie bei LowEndTalk (oben) nach, ob Ihnen jemand einen guten Preis geben kann. Die Menschen dort können und werden individuelle Verträge erstellen, die Ihren Bedürfnissen entsprechen. Ihr Anwendungsfall klingt nach einem guten Kandidaten, wenn die 5 GB RAM nur gelegentlich benötigt werden. lungj vor 7 Jahren 0
Ja. Übrigens, eine Idee zu diesen Leuten: https://www.ovh.com/us/vps/vps-ssd.xml. Ich habe nichts dagegen, $ 13 / Monat für einen VPS zu investieren. Kann es auch für etwas anderes verwenden. picmate 涅 vor 7 Jahren 0
1
Keltari

Warum kaufen Sie nicht einfach einen alten, billigen PC? Ich habe gerade einen alten PC für 10 US-Dollar gekauft, 10 TB Speicherplatz darin gesteckt und Linux als Dateiserver installiert. Wenn Sie nur einen Python-Befehl ausführen, müssen Sie die Bank nicht brechen.

Einem billigen alten PC fehlt wahrscheinlich die Zuverlässigkeit, die von OP erwähnt wird, wie etwa Beständigkeit gegen Hardwareausfälle, Zuverlässigkeit des Netzwerks / Stroms und Diebstahl. Um einen "alten PC" mit 5 GB RAM zu betreiben, Energie bereitzustellen und dafür zu sorgen, denke ich, dass die Abrechnung pro Minute kostengünstiger ist. Dies ist vor dem Umdenken bei den Kosten für den Ersatz einer ausgefallenen Komponente + Zeit, insbesondere wenn es sich um einen Festplattenausfall handelt. lungj vor 7 Jahren 0
@lungj billige alte PCs sind nicht weniger zuverlässig als jeder andere PC. Die Dinge, die wahrscheinlich versagen, sind auf allen Computern gleich. In einem solchen Fall würde ich einen Preis von 10 US-Dollar für jede andere Lösung verwenden. Keltari vor 7 Jahren 0
Ich weiß nicht ... wir vergleichen einen billigen PC mit einem Unternehmen, das Betriebszeiten garantiert (drei Neunen auf der untersten Ebene). Klar, ein billiger alter PC kann eine lange Zeit halten (kürzlich habe ich zwei Maschinen offline geschaltet, die einwandfrei liefen und dies seit etwas mehr als vier Jahren rund um die Uhr waren; wir diese Computer wurden 2004 hergestellt und haben sie gerettet). Aber einige Komponenten altern einfach. Wie Lüfter, Kondensatoren und natürlich Flash-Verschleiß. Selbst ohne Alter sind sie statistisch gesehen weniger zuverlässig als der 2008er-Server mit 150 USD, den ich durch einen Server mit 25 Festplatten in einem Pool, redundanter Stromversorgung und ECC-RAM ersetzt habe. lungj vor 7 Jahren 0
Wenn Sie mich an einen 10-Dollar-PC mit 5 GB RAM (oder mehr), der zuverlässig oder nicht zuverlässig ist, nach Kanada geschickt werden, wäre das großartig. Ich würde es gerne verwenden, um Testumgebungen für kontinuierliche Integration zu virtualisieren. lungj vor 7 Jahren 0
@lungj Goodwill, Heilsarmee oder gleichwertig. Sie würden staunen, was die Leute verschenken. Keltari vor 7 Jahren 0