2014-11-18 12 views
6

Ich hosting meine Rails App auf Ubuntu 12.04 VPS, Nginx + Unicorn, nach der Bereitstellung ist alles in Ordnung, aber ein paar Stunden später, wenn ich ssh zum VPS bekomme ich das NachrichtSSH und -bash: fork: Speicher kann nicht zugewiesen werden VPS Ubuntu

-bash: fork: Cannot allocate memory 

-bash: wait_for: No record of process 4201 

-bash: wait_for: No record of process 4201 

Wenn ich einen Befehl ausführen, wäre es nur zurück

-bash: fork: Cannot allocate memory. 

Antwort

10

scheint, dass Sie nicht genügend Arbeitsspeicher ausgeführt haben. Viele VPS-Server werden ohne Swap eingerichtet. Wenn Sie also keinen Speicher mehr haben, werden scheinbar zufällige Aktionen beendet.

Der einfachste Weg, um es zu beheben ist es, mehr Speicher für Ihre VPS zur Verfügung gestellt, wahrscheinlich kostet mehr Geld. Der nächste beste Weg (abgesehen davon, dass weniger Dinge und Speicher laufen, um alles zu optimieren, was läuft), wäre das Hinzufügen einer Auslagerungspartition oder Auslagerungsdatei.

Für eine 1 GB Auslagerungsdatei (als root):

dd if=/dev/zero of=/swapfile bs=1M count=1024 
mkswap /swapfile 
swapon /swapfile 

Seien Sie sicher, dass es hinzuzufügen/etc/fstab zu wie:

/swapfile none swap defaults 0 0 

, dass es nach dem Neustart kommen machen zurück.

+0

Danke dafür, ich habe auch darüber nachgedacht, aber ich habe 1G Ram, und eine neue Rails-App, die ohne Traffic bereitgestellt wurde, wie konnte sie ihren Speicher verbrauchen? – user1883793

+0

Mein Verdacht wäre etwas in der Rails App hält Daten unnötig im Speicher, wenn es damit fertig ist und vielleicht kann die Garbage Collection es nicht ernten? – Beirdo