Hi esteemed Proxmox-users,
[background]
I'm migrating a few ESXi and Hyper-V hypervisors to Proxmox.
One thing that has been bothering me is the question the swap-partition.
I am currently setting up two environments, one having swap (around 32GB on an SSD) and one completely without swap. Both PVE-nodes are standalone (no cluster) and have 64GB ECC RAM.
In the one without swap I have already seen a container die from too low provisioned RAM, but I'm thinking at least that gave an indicator of the containers needs and upping the RAM has not caused trouble since.
Now for this learning experience I was hoping to learn what the role of swap in a modern hypervisor really is, and maybe learn a thing about overprovisioning and the real usage of RAM. I usually don't run out of RAM, i usually see failures because I'm too strict on the containers/VMs.
[/background]
My questions are:
- Is a non-swap environment ever going to be attractive? In terms of stability and performance.
- (and if so) in what environment would you drop swap? What would be needed?
- Can a swap/file/partition now be put in a ZFS-dataset or best left to a MDAM-type volume?
- Does setting the RAM for an LXC-container really reserve all that RAM or is it more of a ballooning-type reservation where excess RAM is given back to the hypervisor?
- swap seems to be involved with a lot more than running out of memory, why does the hypervisor write to swap before utilizing available RAM in many cases?
- I'd like my VMS and containers to just grab the memory they need and if necessary, put restrictions up, but I have yet to discover a way to do this besides trial and error.
I don't expect an answer to address all of those questions, if there is a good resource for this already I'm sorry my search-fu failed me.
Best,
[background]
I'm migrating a few ESXi and Hyper-V hypervisors to Proxmox.
One thing that has been bothering me is the question the swap-partition.
I am currently setting up two environments, one having swap (around 32GB on an SSD) and one completely without swap. Both PVE-nodes are standalone (no cluster) and have 64GB ECC RAM.
In the one without swap I have already seen a container die from too low provisioned RAM, but I'm thinking at least that gave an indicator of the containers needs and upping the RAM has not caused trouble since.
Now for this learning experience I was hoping to learn what the role of swap in a modern hypervisor really is, and maybe learn a thing about overprovisioning and the real usage of RAM. I usually don't run out of RAM, i usually see failures because I'm too strict on the containers/VMs.
[/background]
My questions are:
- Is a non-swap environment ever going to be attractive? In terms of stability and performance.
- (and if so) in what environment would you drop swap? What would be needed?
- Can a swap/file/partition now be put in a ZFS-dataset or best left to a MDAM-type volume?
- Does setting the RAM for an LXC-container really reserve all that RAM or is it more of a ballooning-type reservation where excess RAM is given back to the hypervisor?
- swap seems to be involved with a lot more than running out of memory, why does the hypervisor write to swap before utilizing available RAM in many cases?
- I'd like my VMS and containers to just grab the memory they need and if necessary, put restrictions up, but I have yet to discover a way to do this besides trial and error.
I don't expect an answer to address all of those questions, if there is a good resource for this already I'm sorry my search-fu failed me.
Best,