This is exactly the same as any condition that arises due to insufficient hardware while on a physical system with the exception that dependent on platform (and availability of the supporting hardware) you can increase the available hardware for your virtual machine.
You may be unable to complete a task in the expected amount of time or may have additional errors and failures occur. File/Web servers may not be able to accept new requests for files or may time out during file transfer. Database servers may be unable to accept new queries or may return results after significant delay.
In many cases you can add additional CPU cores or increase system memory to meet exacting needs. It is even possible to allocate more hardware than is actually available and split it across multiple running instances. This is a key benefit to virtualization which allows multiple systems to use underutilized resources of another system.
If you wish to constrain a system to limited resources that is also possible. This could be a good way to throttle down a system or ensure something can’t run away with resources completely unchecked.
Keep in mind that more resources is not always the only solution. You have a few possible outcomes to “over prisoned” systems. Scale up (more resources per system), scale out (more simultaneously running systems), do nothing (it will just run hot at all times) or additional design changes to the system to ensure it requires less resources.
Your given system may provide performance tuning settings such as running forked processes where the ideal number depends on how much memory and CPU is available.
How you address such a situation really depends on the platform you are using and any problems you are encountering on the impacted platform.
Contrary to popular perception, the answer is not that straightforward. Both Google and Directi are excellent places to work, each of them will offer you a unique set of experiences.
At Google, I was working with a team in Bangalore that was involved with some Machine Learning projects. On account of Google’s size, one finds all aspects of a typical software engineering workflow highly stream-lined – starting from well-articulated tutorials for beginners to native tools for version control and build. and as you realize the fact that you are working and contributing (albeit in a minuscule proportion) to some of the biggest and most well-maintained C++ code bases in the world