User Mode Linux: Coming to a Kernel Near You, Part 1 - page 2
What Exactly is User Mode Linux?
There are quite a number of uses for a feature such as UML. People like myself who install a lot of beta software or even just evaluate a lot of software can end up with a real mess on our hands, for example. I tend to use a second machine but it's much slower than my primary, and my setup requires me to bounce back and forth between computers using a switchbox so I can't see everything at once. UML would allow me to lock the beta software and whatnot into a virtual system on my main computer, ensuring that beta bugs only messed up the UML session and not my entire work machine.
Then there's the issue of services we don't quite trust, or don't dare trust. Worried that someone might break out of the FTP server space? Run your FTP server from within a UML, and even if the person does they can't reach the main machine. Worried about all of those BIND security warnings? Farm the nameserver onto a UML too.
Of course, there is a performance hit for using UML. You've got a virtual kernel for each UML instance, plus your main kernel, the programs running in your UMLs, and the programs running on your main machine. RAM is your friend when you're using UML. But, then, RAM is just as important with a tool like VMware.
The performance drag is most apparent when you're running many UML instances. Rather than running a co-location service, there are already people in the UML community running multi-UML services where each client or participant gets their own virtual machine on the same box, with their own root login and so on, to administer as they see fit. As people run more and more services in their UMLs, the whole machine's load increases, and so you can end up with one person hogging many of the CPU cycles if you're not careful.
To avoid this, you can specify how much RAM each UML is allowed to ask for. You set this value individually so you're not required to give every UML the same amount of RAM, so those services that you consider high priority can receive a larger allocation than the low priority ones. Fortunately, while you'll want to do the math to ensure that you've got enough RAM to suit everyone's needs, if all of your UMLs together ask for more RAM than is actually available, the main machine's kernel swaps out those requests just like any other RAM over usage. You can also assign swap space to the UMLs for their own use.