OpenVZ Speicherproblem RAM

tomic

New Member
Hallo zusammen,

wenn ich meinen Root-Server einige Tage lang betreibe bekomme ich in der Console beim versuch mich in eine VM einzuloggen (vzctl enter id) die Meldung cannot allocate memory).

Ich denke das liegt generell an den Configs zu den einzelnen VM'S

Ich habe folgende Hardware
1 x core i3
8 GB Ram
1 TB Festplatte

Anbei findet ihr eine Textdatei mit der Ausgabe vom user_beancounters und eine der Standardconfigs welche ich für die einzelnen VM's verwende.

Irgendwas stimmt mit der Speicherverwaltung/Zuordnung nicht. Komme aber nicht weiter. Hat jemand eine Idee?
 

Attachments

Ich bin ziemlich müde, aber wenn ich noch richtig rechnen kann, gibst Du jeder Maschine ca. 4.6 GB (!) RAM, garantiert und burstable.

Was ist das für eine Standardkonfig? Selbst gebaut? Ich habe meine CentOS-/Debian-Standards mal durchgesehen und keine derartigen Werte darin gefunden. Unter welcher Distri lässt Du das laufen?
 
Vielleicht hat das Hostsystem nicht mehr genug Speicher für diesen Vorgang, während die VEs dahindümpeln? Allerdings dürften dann andere Sachen auch nicht mehr funktionieren.
 
Vielleicht hat das Hostsystem nicht mehr genug Speicher für diesen Vorgang, während die VEs dahindümpeln?
OpenVZ isoliert statt (para)virtualisiert, entsprechend ist im Hostsystem nur die RAM belegt wo die Container auch wirklich verbrauchen. (Und das Hostsystem swappt auch erst wenn sein eigener RAM voll ist, egal ob der vServer laut seiner Konfiguration schon lange im Swap ist da der Kernel das Wann und Wie entscheidet)

Funktioniert es nach einem Restart des Containers weiterhin nicht, respektiv ist der Container noch von aussen (SSH, ...) erreichbar?
Passiert es immer bei allen Container gleichzeitig oder erst nach und nach? Kontrolliert op ein Update auf eine neuere OpenVZ-Version verfuegbar ist? (Eventuell ein 'known & fixed bug')

Eventuell ist folgender Beitrag auch interessant: Link
 
Die Config wurde mittels vzsplit erstellt unter der Angabe dass es nur EINE CT geben wird.

@traced: cannot allocate memory
Die genaue Meldung sehe ich nur im Fall der Fälle welcher aktuell nicht vorhanden ist. Ich starte aktuell den Server alle 3-4 Tage neu um dem Problem zumindest vorerst aus dem Weg gehen zu können.

Wie müsste denn eine Konfig für die VM's aussehen was Speicher usw. angeht?
Wenn der Fehler auftritt hat das Hostsystem keinen freien Speicher mehr. Aus irgendeinem Grund lagert das Hostsystem aber auch nichts ins Swap aus. Ich denke das Hostsystem läuft voll (Speicher) worunter dann die einzelnen CT's leiden.

Auch in jeder meiner OpenVZ CT's sehe ich unter SWAP in Top 0kb. Kann openvz generell keine Swap-verwaltung?
 
Kann openvz generell keine Swap-verwaltung?
Jein. Es erlaubt dem Linux-Kernel die Entscheidung was geswappt werden soll und was nicht (sowie was er cached, ...) da dessen Leistung bedeutend besser ist als wenn ein Hypervisor dazwischen fummelt. In den Container hast du keine Swap-Anzeige (immer 0) was allerdings durch Tricks korrigiert werden kann.


Wenn der Fehler auftritt hat das Hostsystem keinen freien Speicher mehr. Aus irgendeinem Grund lagert das Hostsystem aber auch nichts ins Swap aus.
Sicher dass es keinen freien Speicher mehr hat? Dann duerften deine Container auch nicht mehr funktionieren da OpenVZ keine RAM den Container reserviert sondern eben bei Bedarf zuweist. (Genau genommen kontrolliert es nur wieviel RAM die einzelne Umgebung sich anfragt und blockiert die Anfrage wenn es ueber das Limit geht)
Was sagt denn "free" im Hostsystem?
 
@d4f & dev
- siehe Screenshot

Hatte heute erneut das Problem. Wenn der freie Speicher des Hostsystems auf unter 500MB sinkt schmiert mir immer mind. 1 DNS Server ab der in einer VM läuft. Wenn ich mich dann in die VM einloggen möchte (vzctl enter id) erscheint die Meldung: cannot allocate memory.

Ich bin gerne bereit meine config entsprechend anzupassen. Meine Config habe ich ja gepostet. wie würdet ihr diese Config anpassen unter Einbeziehung der vorhandenen Hardware?
 

Attachments

  • Bild 4.jpg
    Bild 4.jpg
    28.9 KB · Views: 97
Im Host werden lt. Screen nur ca. 1.5 GB benutzt, wie kommst Du auf den Verbrauch von > 7 GB?

Was sagt denn das syslog/messages-Log, wenn der Fehler eintritt?
 
Back
Top