In general, techniques are described for dynamic resource allocation in virtual environments. A network device comprising physical resources, a first virtual machine (VM), a second VM and a hypervisor may implement these techniques. The first VM executes within a first partition of the physical resources to process a first portion of received network traffic, while the second MV executes within a second partition of the physical resources to process a second portion of the received network traffic. The first VM determines whether physical resources in addition to those allocated by way of the first partition are required to process the incoming network traffic and issues a request requesting additional physical resources based on the determination. Either the second VM or the hypervisor, in response to the request, dynamically reallocates at least a portion of the physical resources allocated to the second partition to the first partition.