Here is just a quick rundown of some resource allocation settings that one would find. As many well know, messing with these settings without a plan can cause havoc in a virtual environment, so of course use caution.
Shares: Shares can help in fine tuning the importance of a vm within an environment or cluster. Specified by High, Normal or Low. All vms start with normal for a default, which is 1000 shares. During a point of say, host resource contention, two vms both with normal shares require resources. The resource scheduler will give each of the vms equal access to the cpu and memory.
Reservations: As per the documentation, reservation specifies the guaranteed minimum allocation for a virtual machine, which is for cpu or memory. For memory, this will guarantee that the selected virtual machine will have access to the physical memory selected, and with cpu this is pertaining to the guarantee fo clock cycles for the selected vm.
Limits: Basically this is a way of locking down the the resources a vm can consume, specifically cpu memory and storage I/O. ie vm01 is limited to 1000MHz it will never be able to use more than that from its host even if it was the only vm on said host and there was available resources.
Here is a link to the vSphere 6.7 Resource Management Guide: RM Guide