In university, they stopped giving out software licenses for personal machines in favor of letting students connect to virtual machines they hosted. They allocated 8GB of RAM which wasn’t horrible at the time, but they only allocated 4GB of storage. Only time I’ve ever seen that ratio.
Probably because the RAM was pooled, but storage was not. So your RAM allocation is part of a larger pool that is shared between all currently logged in users. But your storage is allocated/reserved up front, and is used only by you.
So could the total amount of RAM be smaller than the total amount all the machines cumulatively think is available? How does the pool prevent all the machines from crashing if all of them fill up their memory?
Kind of. Think of the RAM allowance as a “maximum” limit, not a reserved allocation. The VM host might have 64 GB RAM, and perhaps allows 20 VMS running in it at once. Each VM can allocate up to a max of 8GB from that host. Not everyone is running their VM at the same time, even if they are, not everyone would be running at their limit of 8GB of memory. If it does happen that 20 users are trying to use 8GB at the same time on one host, then it’s the same as anytime an OS runs low on RAM, it would start paging out to disk, everything would slow down for everyone. If that happens too many times, they could shuffle some users’ VMs around to balance the loads across hosts.
In university, they stopped giving out software licenses for personal machines in favor of letting students connect to virtual machines they hosted. They allocated 8GB of RAM which wasn’t horrible at the time, but they only allocated 4GB of storage. Only time I’ve ever seen that ratio.
Probably because the RAM was pooled, but storage was not. So your RAM allocation is part of a larger pool that is shared between all currently logged in users. But your storage is allocated/reserved up front, and is used only by you.
So could the total amount of RAM be smaller than the total amount all the machines cumulatively think is available? How does the pool prevent all the machines from crashing if all of them fill up their memory?
Kind of. Think of the RAM allowance as a “maximum” limit, not a reserved allocation. The VM host might have 64 GB RAM, and perhaps allows 20 VMS running in it at once. Each VM can allocate up to a max of 8GB from that host. Not everyone is running their VM at the same time, even if they are, not everyone would be running at their limit of 8GB of memory. If it does happen that 20 users are trying to use 8GB at the same time on one host, then it’s the same as anytime an OS runs low on RAM, it would start paging out to disk, everything would slow down for everyone. If that happens too many times, they could shuffle some users’ VMs around to balance the loads across hosts.
That makes sense. They also pushed us to store everything on the cloud.