Manchmal, wenn Daten aus der Datenbank entweder über den Python-Shell oder über einen Python-Skript, der Python-Prozess stirbt, und ein einziges Wort an das Terminal gedruckt abruft: Killed
Warum enden einige Django ORM-Abfragen abrupt mit der Meldung "Killed"?
, die buchstäblich alles, sagt sie. Es passiert nur bei bestimmten Skripten, aber immer bei diesen Skripten. Dies passiert konsistent mit dieser einen einzelnen Abfrage, die eine Weile dauert, und auch mit einer South-Migration, bei der eine Reihe von Zeilen einzeln zur Datenbank hinzugefügt wird.
Meine erste Ahnung war, dass eine einzelne Transaktion zu lange dauerte, also habe ich Autocommit für Postgres eingeschaltet. Hat das Problem nicht gelöst.
überprüfte ich die Postgres-Protokolle, und das ist das einzige, was da drin:
2010-08-19 22:06:34 UTC LOG: could not receive data from client: Connection reset by peer
2010-08-19 22:06:34 UTC LOG: unexpected EOF on client connection
ich googeln habe versucht, aber wie man erwarten könnte, ein Ein-Wort-Fehler Nachricht ist schwer zu googeln.
Ich benutze Django 1.2 mit Postgres 8.4 auf einer einzigen Ubuntu 10.4 Rackspace Cloud VPS, Lager Konfig für alles.
nur eine Sache, die ich an das denken könnte töten automatisch einen Prozess auf Linux -.. die OOM Killer. Was ist in den Systemprotokollen? –
'Aug 19 21:38:53 db kernel: [782904.033075] python aufgerufen oom-killer: gfp_mask = 0x200da, order = 0, oom_adj = 0' Sie haben Recht! Danke :) – Zain