Sponsor-Board.de
Proxmox freeze sobald er swappt

+- Sponsor-Board.de (https://www.sponsor-board.de)
+-- Forum: Community (/forumdisplay.php?fid=56)
+--- Forum: Hilfe (/forumdisplay.php?fid=102)
+---- Forum: Linux-Server (/forumdisplay.php?fid=105)
+---- Thema: Proxmox freeze sobald er swappt (/showthread.php?tid=58000)


Proxmox freeze sobald er swappt - italian-power - 06.12.2015 19:09

Hallo,

ich hab ein kleines Problemchen:

Ich war heute mal ein wenig am testen gemäß "was wäre wenn", also habe ich getestet was wäre wenn mein Server swappen muss.

Naja sobald er swappt friert er ein, CPU geht auf 100%, Load schießt hoch und letztendlich startet sich der Host neu.

in der sysctl konfig habe ich folgendes angepasst:

vm.swappiness=100 #Swappen so oft wie möglich
vm.min_free_kbytes=5000000 #5GB

Die Konfig scheint auch zu Funktionieren.

Server Specs:
pve-manager/4.0-57/cc7c2b53 (running kernel: 4.2.3-2-pve)
Intel Xeon
32 GB RAM ECC DDR4
64GB SWAP
Onboard Graka + Dedizierte Graka
1x SSD
3x HDD

Swap und OS befindet sich auf der SSD, VMS ausschließlich auf der HDD.

Ich glaube weniger, dass es an der Proxmox Konfiguration liegt, irgendwo scheint der Wurm drin zu sein.

Gerade beim booten der Windows VMS kommt es zum engpass, theoretisch bräuchte ich 60 GB RAM, nach dem Start (alle nacheinander und mit pausen) liegen knapp 50 GB im KSM, das passt ja auch soweit, die Windows VMS sind ja auch leer und derzeit nur zum testen installiert.

Jemand ne Ahnung was man noch anpassen könnte?
Derzeit wartet er bis knapp 27 GB RAM voll sind, dann haut er sofort 2-4 GB in den Swap und hängt sich auf =(

Code:
vm.admin_reserve_kbytes = 8192
vm.block_dump = 0
vm.compact_unevictable_allowed = 1
vm.dirty_background_bytes = 0
vm.dirty_background_ratio = 10
vm.dirty_bytes = 0
vm.dirty_expire_centisecs = 3000
vm.dirty_ratio = 20
vm.dirty_writeback_centisecs = 500
vm.dirtytime_expire_seconds = 43200
vm.drop_caches = 0
vm.extfrag_threshold = 500
vm.hugepages_treat_as_movable = 0
vm.hugetlb_shm_group = 0
vm.laptop_mode = 0
vm.legacy_va_layout = 0
vm.lowmem_reserve_ratio = 256   256     32
vm.max_map_count = 65530
vm.memory_failure_early_kill = 0
vm.memory_failure_recovery = 1
vm.min_free_kbytes = 5000000
vm.min_slab_ratio = 5
vm.min_unmapped_ratio = 1
vm.mmap_min_addr = 65536
vm.nr_hugepages = 0
vm.nr_hugepages_mempolicy = 0
vm.nr_overcommit_hugepages = 0
vm.nr_pdflush_threads = 0
vm.numa_zonelist_order = default
vm.oom_dump_tasks = 1
vm.oom_kill_allocating_task = 0
vm.overcommit_kbytes = 0
vm.overcommit_memory = 0
vm.overcommit_ratio = 50
vm.page-cluster = 3
vm.panic_on_oom = 0
vm.percpu_pagelist_fraction = 0
vm.stat_interval = 1
vm.swappiness = 100
vm.user_reserve_kbytes = 131072
vm.vfs_cache_pressure = 100
vm.zone_reclaim_mode = 0


Proxmox Konfig:

Code:
root@n1:~# pvecm status
Quorum information
------------------
Date:             Sun Dec  6 18:00:41 2015
Quorum provider:  corosync_votequorum
Nodes:            2
Node ID:          0x00000001
Ring ID:          696
Quorate:          Yes

Votequorum information
----------------------
Expected votes:   2
Highest expected: 2
Total votes:      2
Quorum:           2
Flags:            Quorate

Membership information
----------------------
    Nodeid      Votes Name
0x00000001          1 192.168.1.1 (local)
0x00000002          1 192.168.1.3
root@n1:~# service pve-cluster status
● pve-cluster.service - The Proxmox VE cluster filesystem
   Loaded: loaded (/lib/systemd/system/pve-cluster.service; enabled)
   Active: active (running) since Sun 2015-12-06 17:05:27 CET; 55min ago
  Process: 1174 ExecStartPost=/usr/bin/pvecm updatecerts --silent (code=exited, status=0/SUCCESS)
  Process: 1155 ExecStart=/usr/bin/pmxcfs $DAEMON_OPTS (code=exited, status=0/SUCCESS)
Main PID: 1171 (pmxcfs)
   CGroup: /system.slice/pve-cluster.service
           └─1171 /usr/bin/pmxcfs

Dec 06 17:05:32 n1 pmxcfs[1171]: [status] notice: starting data syncronisation
Dec 06 17:05:32 n1 pmxcfs[1171]: [status] notice: received sync request (epoch 1/1171/00000001)
Dec 06 17:05:32 n1 pmxcfs[1171]: [dcdb] notice: received all states
Dec 06 17:05:32 n1 pmxcfs[1171]: [dcdb] notice: leader is 2/593
Dec 06 17:05:32 n1 pmxcfs[1171]: [dcdb] notice: synced members: 2/593
Dec 06 17:05:32 n1 pmxcfs[1171]: [dcdb] notice: waiting for updates from leader
Dec 06 17:05:32 n1 pmxcfs[1171]: [dcdb] notice: update complete - trying to commit (got 2 inode updates)
Dec 06 17:05:32 n1 pmxcfs[1171]: [dcdb] notice: all data is up to date
Dec 06 17:05:32 n1 pmxcfs[1171]: [status] notice: received all states
Dec 06 17:05:32 n1 pmxcfs[1171]: [status] notice: all data is up to date


http://ixde.eu/files/pve_freeze2.JPG(!https)
http://ixde.eu/files/pve_freeze3.JPG(!https)http://ixde.eu/files/pve_freeze.JPG(!https)


RE: Proxmox freeze sobald er swappt - DebianDEV - 07.12.2015 09:42

Hallo italian-power,

ich werfe jetzt einfach mal folgende Behauptung in den Raum:

"Das hat primär nichts mit deinen VMs zu tun"

Du kannst da auch ne DB drauf laufen lassen, die 31,999GB Ram braucht. Das System braucht mehr als 10MB Ram - sobald das System bzw. deren Prozesse nur 1 MB mehr RAM brauchen, als zur Verfügung steht, legen die sich zwandsmäßig lang - ich beschreibe das jetzt mal als normalen Prozess. Der Swap ist eine "Auslagerungsdatei" kein RAM-Ersatz -> das mal nur am Rande.

SWAP:

Ist für Dateien geeignet, die nicht häufig verwendet werden, aber wenn sie gebraucht werden, schnell geladen werden müssen - hierfür eignet sich eine SSD wie du sie nutzt.
SWAP ist nicht dazu gedacht, den Hintern hinzuhalten, wenn der Ram voll läuft, nichtmal für 1 Sekunde - nicht mal für 1 ms.


Du sorgst als Betreiber des Server dafür, dass das nicht passiert, was dir passiert ist Wink

PS:
i/o Load geht hoch, da das System so schnell auf deine SSD zuzugreifen, wie auf den Ram, sofern im SWAP Teiles des Betriebssystems o. ä. liegen!

PPS: Neustart durch Kernel panic


PPPS:
Hier mal eine etwas genauere Erklärung:

Alle deine VMS brauchen zusammen 31,995GB Speicher. Das System allokiert sich 50MB - das sind rein rechnerisch 32GB - braucht das System jetzt 1KB mehr Speicher, muss das System feststellen, dass dieser KB nicht mehr zur Verfügung steht und schiebt den 1KB Speicher in den SWAP. So da aber das System diesen 1KB Speicher regelmäßig benötigt, versuicht er im gleichen Intervall darauf zuzugreifen, wie auf die 50MB im RAM - das Problem ist aber, dass weder eine HDD noch SSD diese enorme Geschwindigkeit liefern können.

So also geht der Rattenschwanz los:

Das System versucht auf diesen 1KB Speicher zuzugreifen - die SSD versucht diesen 1KB auszuliefern, aber bevor die SSD das schafft, sendet das System schon wieder eine neue Anfrage an den SWAP mit den 1KB - da die Reaktionszeit der SSD im Vergleich zum RAM unglaublich groß ist, passiert dieser Vorgang einiege Male, bevor die SSD dieses 1KB überhaupt einmal ausgeliefert hat. Also stellen sich die Systemanfrage in eine Warteschlange an - diese Warteschlange ist der I/O Delay (I/O Load). Diese Warteschlange wird irgendwann so riesig, dass der System Kernel irgendwann sagt "Halt stopp, jetzt rede ich - TSCHÜSS!".

Ich hoffe man kann verstehen, was ich zu sagen versuche.


RE: Proxmox freeze sobald er swappt - Phinitris - 07.12.2015 14:40

Hey,
ich kann mich Nico nur anschließen Wink Desweiteren solltest du nicht vm.swapiness auf 100 setzen.
Das würde bedeuten, dass das System einfach versucht alles zu swappen, was geht, daher auch Systemdateien und eine SSD ist nicht gemacht um den RAM zu ersetzen. Theoretisch ersetzt du den RAM fast komplett durch deine SSD damit. Wenn dann würde ich vm.swapiness auf 60(Default) setzen und den RAM
ein wenig belasten.

Gruß
Phinitris


RE: Proxmox freeze sobald er swappt - italian-power - 07.12.2015 20:22

vm.min_free_kbytes=5000000 #5GB

Sorgt dafür, dass für das System IMMER 5 GB an RAM frei bleiben.

Also drehen wir uns hier im Kreis.

Der Server soll ja nicht andauernd im SWAP hängen, so wie ich das sehe bringt mir der SWAP 0, einfach weil er den niemals benutzt und wenn doch, dann schmiert er direkt ab.

Zum Verständnis nochmal:

Ich will eine VMs laufen lassen, die viel Ram zur Verfügung haben, Windows allokiert beim Start 100% des zugewiesenen RAMS, in meinem Fall sind es 3 VMs mit 25 GB RAM, nachdem alle VMs gestartet sind, von mir aus auch im SWAP kommt ja der KSM zum Einsatz, was der macht muss man ja nicht erklären.

Einmal hat es ja funktioniert die Frage ist nur wieso, muss ich evtl was im BIOS umstellen?


http://ixde.eu/files/pve_work.jpg(!https)


"Das hat primär nichts mit deinen VMs zu tun"

Natürlich nicht, es liegt an Proxmox, dem System - derzeit glaube ich eher an irgendeinen Kernel Bug


RE: Proxmox freeze sobald er swappt - italian-power - 02.01.2016 19:05

Problem wurde ausfindig gemacht.

Es liegt an einer VM, die mittels PCI passthrough eine Fiberchannelkarte durchgereicht bekommt.
Scheint wohl alles nicht so dolle ausgereift zu sein das ganze KVM -

Wenn ich Zeit hab versuch ichs nochmal mit ESXi.

Danke trotzdem für eure Mühen