oicfar
Captain
- Registriert
- Juni 2020
- Beiträge
- 3.569
Ich sehe da zwei Optionen:TomH22 schrieb:Es ist also vermutlich kein "Python-Problem" sondern eines im Zusammenspiel von LXC und Kernel.
- Threadripper mit 2TB RAM kaufen.
- Auf eine VM umstellen.
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
Ich sehe da zwei Optionen:TomH22 schrieb:Es ist also vermutlich kein "Python-Problem" sondern eines im Zusammenspiel von LXC und Kernel.
Ich würde anstatt des shutil.copy2 einfach ein cp commando aufrufen. Da du ja scheinbar wenige große Files kopierst, ist der shell overhead vernachlässigbar.
Abgesehen davon gibt es für dass, was Du vorhast, fertige Programme wie rsync…
Aber warum dann alles so komplex - reicht das kein bash-Skript mir RSYNC?
Was macht dein Skript. Kopiert Dateien von Links nach Rechts und wennUnBreakable schrieb:Also was ich genau wollte, habe ich einen Beitrag über dir geschrieben.
Es geht bestimmt irgendwie. Aber mir war auf den ersten Blick nicht ersichtlich wie.
Naja ich dachte mir, dann schreibe ich eben schnell ein kleines Python Script.
Ich dachte nicht, dass daraus so ein Drama wird ;-)
if(os.path.getsize(dest+element) == os.path.getsize(source+element)):
VM Aufsetzen und das was du brauchst einzurichten, sollte schon fix gehen.UnBreakable schrieb:Ich versuche es nun mit einer VM anstatt eines Containers. Das ist leider etwas mehr Aufwand und wird etwas dauern.
Dass das nicht perfekt ist, ist mir durchaus bewusst.Dein Skript ist ein guter Anfang. Aber bedarf einiger Verbesserungen.
Ja ich weiß. Mir ging es hier eher darum, falls der Kopiervorgang abgebrochen wurde.was ich eh nicht als Kriterium nehmen würde, wird die Datei links gelöscht. Es kann sein, dass die Dateigröße stimmt, aber die Quelle und Ziel nicht gleich sind.
Und löscht. Aber beim Ziel, nicht bei der Quelle. Außerdem werden nur bestimmte Dateien kopiert, nicht alle.Was macht dein Skript. Kopiert Dateien von Links nach Rechts und wenn
Ganz so einfach ist es nicht. Es geht auch noch im Firewall Settings, sowohl lokal, als auch am Router usw.VM Aufsetzen und das was du brauchst einzurichten, sollte schon fix gehen.
Mein Ziel ist es ja, nur die jüngste .VBK Datei zu kopieren und alle jüngeren .VIB Dateien dazu. Alles andere zu löschen. Unabhängig davon immer die .vbm Datei und nicht löschen.
Naja, man kann sowas schon auch mit einem eigenen Skript machen, wenn die Anforderung mit einem Tool evtl. nicht 100% umsetzbar ist. Ich wüsste jetzt auch nicht aus dem Stegreif, wie ich die Anforderung des TE mit rsync umsetzen würde, habe das bisher aber auch immer nur "straight-forward", sprich Quelle und Ziel synchron halten, benutzt.dms schrieb:Mit Verlaub, dein Skript zum lernen und wegwerfen mag das OK sein, die Architektur mehr als NAJA - erscheint überkomplex und von dir mit Verlaub unbeherscht .. jetzt also via VM
oicfar schrieb:Ich sehe da zwei Optionen:
- Threadripper mit 2TB RAM kaufen.
- Auf eine VM umstellen.
Ich vermute das Problem eher bei Python. SMB Zugriffe aus einem Container sind eigentlich kein Problem.TomH22 schrieb:Die Ausgangssituation war ja, dass der LXC Container einfach abgeschossen wird, wir haben nun rausgefunden, dass das sowohl mit shutily.copy2 als auch mit einem cp Kommando passiert. Vermutlich liegt es also nicht am Skript des TE, sondern daran, dass der Kopieren von einem SMB Share auf ein anderes SMB Share aus dem LXC Container heraus nicht stabil funktioniert.
Und wieso bricht er bei einem cp Komanndo da auch ab?riversource schrieb:SMB Zugriffe aus einem Container sind eigentlich kein Problem.
2024-02-13T14:43:39.434807+01:00 pve kernel: [12371970.567640] Memory cgroup stats for /lxc/108:
2024-02-13T14:43:39.434808+01:00 pve kernel: [12371970.567684] anon 0
2024-02-13T14:43:39.434809+01:00 pve kernel: [12371970.567684] file 256684032
2024-02-13T14:43:39.434810+01:00 pve kernel: [12371970.567684] kernel 11747328
2024-02-13T14:43:39.434811+01:00 pve kernel: [12371970.567684] kernel_stack 425984
2024-02-13T14:43:39.434812+01:00 pve kernel: [12371970.567684] pagetables 1261568
2024-02-13T14:43:39.434813+01:00 pve kernel: [12371970.567684] sec_pagetables 0
2024-02-13T14:43:39.434814+01:00 pve kernel: [12371970.567684] percpu 700440
2024-02-13T14:43:39.434815+01:00 pve kernel: [12371970.567684] sock 4096
2024-02-13T14:43:39.434815+01:00 pve kernel: [12371970.567684] vmalloc 487424
2024-02-13T14:43:39.434816+01:00 pve kernel: [12371970.567684] shmem 0
2024-02-13T14:43:39.434817+01:00 pve kernel: [12371970.567684] zswap 0
2024-02-13T14:43:39.434818+01:00 pve kernel: [12371970.567684] zswapped 0
2024-02-13T14:43:39.434819+01:00 pve kernel: [12371970.567684] file_mapped 0
2024-02-13T14:43:39.434820+01:00 pve kernel: [12371970.567684] file_dirty 655360
2024-02-13T14:43:39.434821+01:00 pve kernel: [12371970.567684] file_writeback 255520768
2024-02-13T14:43:39.434821+01:00 pve kernel: [12371970.567684] swapcached 0
Monitoring mit Influx/Grafana kann man easy einrichten.riversource schrieb:Ich vermute, dein Script hat ein Speicherleck oder missachtet das Memory Management. Behalte doch mal die Entwicklung der Speichernutzung während der Nutzung des Scripts mit htop oder btop im Auge. Oder zeige uns das Script.
Ich kann mich nur wiederholen: An dem Punkt sind wir nicht. Hier funktioniert irgendwas ganz fundamental nicht. Solange man das nicht löst, ist es sinnlos sich mit Monitoring zu beschäftigen...oicfar schrieb:Monitoring mit Influx/Grafana kann man easy einrichten.
Ist das https://www.techtarget.com/whatis/definition/write-back hier gemeint?TomH22 schrieb:Unter file und file_writeback stehen recht hohe Werte. Das ist vermutlich die Menge an Speicher die für den file Cache des Kernels in der cgroup verbraucht wird. Sicher bin ich mir da nicht, ich habe da eben mal ein wenig gesucht, aber das ganze cgroup Feature ist schon recht komplex, da steigt man nicht mal in ein paar Minuten durch.
Aber ich fürchte, wenn man das Problem lösen will, muss man sich damit beschäftigen.
Monitoring ist bei solchen Problemen hilfreich um zu sehen wie sich das System verhält. Und wenn man schon so was im Einsatz hat, dann setze ich ein bestehendes Monitoring eh voraus.TomH22 schrieb:Ich kann mich nur wiederholen: An dem Punkt sind wir nicht. Hier funktioniert irgendwas ganz fundamental nicht. Solange man das nicht löst, ist es sinnlos sich mit Monitoring zu beschäftigen...
Weils auch aus einem Python Script aufgerufen wird. Er hat ja nur den shutil Aufruf verändert.TomH22 schrieb:Und wieso bricht er bei einem cp Komanndo da auch ab?
Doch, nach wie vor werden die Aufrufe aus einem Python Script getätigt. Python und sein Memory Management ist also noch nicht raus.TomH22 schrieb:Der ursprüngliche Code des TE ruft shutil.copy2 in Python auf. Diese Python Routine nutzt laut Doku den sendfile syscall um die Datei zu kopieren, Python ist also für den eigentlichen Kopiervorgang gar nicht mehr im Spiel.
..und dem "SW-DING" willst du ein Backup anvertrauen?
Aber RSYNC was genau zu diesem Zweck unter Unixoiden sehr Jahren diese Dinge leistet ist dir zu komplex?
die Architektur mehr als NAJA - erscheint überkomplex und von dir mit Verlaub unbeherscht .. jetzt also via VM
Was ist denn das Ziel
Monitoring mit Influx/Grafana kann man easy einrichten.
https://grafana.com/grafana/dashboards/10048-proxmox/
Man muss den Host und die Guests im Auge behalten.
Ich kann mich nur wiederholen: An dem Punkt sind wir nicht. Hier funktioniert irgendwas ganz fundamental nicht.