Bewältigung der Bereinigung für Aufgaben, die möglicherweise OOMKilled sindPython

Python-Programme
Anonymous
 Bewältigung der Bereinigung für Aufgaben, die möglicherweise OOMKilled sind

Post by Anonymous »

Ich habe Python-Code in k8s ausgeführt, der in einigen Fällen OOMKilled ist und mir keine Zeit zum Aufräumen lässt, was zu schlechtem Verhalten führt.
Ich habe mehrere Ansätze ausprobiert, aber nichts scheint ganz richtig zu sein ... Ich habe das Gefühl, dass mir etwas fehlt.
Ich habe versucht, eine weiche Grenze im Code zu erstellen, um:

Code: Select all

resource.setrlimit(resource.RLIMIT_RSS, (-1, cgroup_mem_limit // 100 * 95)
aber manchmal wird mein Code immer noch vom OOMKiller getötet, bevor ich einen Speicherfehler erhalte.
(Wenn das passiert, ist es vollständig reproduzierbar)
Was meiner Meinung nach funktioniert, ist die Begrenzung durch RLIMIT_AS anstelle von RLIMIT_RSS, aber dadurch werde ich viel früher getötet, da AS viel höher ist als RSS (manchmal > 100 MB höher). Ich möchte diese Verschwendung vermeiden viel Erinnerung. (100 MB x Hunderte von Replikaten summieren sich)
Ich habe versucht, einen Sidecar für die Bereinigung zu verwenden, aber (zumindest so, wie ich es implementiert habe) bedeutet dies, dass beide Container eine API benötigen, die zusammen auch mehr als 100 MB kostete, also nicht wirklich geholfen hat.
Warum überschreite ich mein Speicherlimit? Mein System bewältigt oft sehr große Lasten mit vielen Aufgaben, die entweder klein oder groß sein können (und es gibt keine Möglichkeit, das im Voraus zu wissen, denken Sie an die Dekomprimierung). Um unsere Ressourcen optimal zu nutzen, testen wir jede Aufgabe mit einem Pod, der wenig Speicher hat (was eine hohe Anzahl von Replikaten ermöglicht), und wenn die Aufgabe fehlschlägt, schieben wir sie auf einen neuen Pod mit mehr Speicher.
Gibt es eine Möglichkeit, sanft beendet zu werden, bevor OOMKilled wird, während wir noch schauen etwas, das eher meinem tatsächlichen Gebrauch entspricht? Oder stimmt etwas mit meinem Design nicht? Gibt es einen besseren Weg, dies zu tun?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post