We've used OpenVZ, Xen and VMWare.
Xen and VMWare are complete virtualization machines, but suffer in performance quickly. VMWare is expensive and Xen is time consuming to work with.
OpenVZ is extemely fast but is somewhat limited by swap and kernel modules.
So it depends what you want to do. There is no one perfect solution for everyone.
For web hosting internet servers I'd recommend OpenVZ.
I hate to disagree with you here.
Xen will provide you 100% guaranteed access to the resources that are provided to your VPS. Meaning, you will ALWAYs have your 1GB of ram, regardless of what other VPSes are on the node itself.
OpenVZ and Virtuozzo on the contrary, excel at doing the so called "burst" which means, using a POOL of resources and spreading it between VPS's in a node. You can also limit the use per VPS in OpenVZ, but not quite as Xen.
OpenVZ and Xen use different virtualization approaches: OpenVZ uses OS level virtualization, while Xen uses paravirtualization. This is a pretty significant difference and proponents of each will argue it to their advantage. OpenVZ folks will say their approach allows for better resource usage and density. We feel paravirtualization provides good resource usage and superb isolation. Translation: your neighbor can’t bring the whole box down.
Xen also requires fixed memory and disk definitions, OpenVZ allows for burstable memory usage. That is the biggest difference you will see, burstable memory rates on Virtuozzo offerings, whereas Xen has hard, fixed caps. Burstable memory is great if you have control over all of the virtual servers (everyone is friendly), but when you have a diverse environment like ours, we prefer hard memory caps (you get what you pay for).