VMware can be tuned for remote access and you can return resources that you will not use to the system so it runs more snappily.
Here's what I did to the free VMware Server. It takes most of the same options that the paid VMware Workstation and GSX do.
1) Use the vmxnet network driver instead of vlance/pcnet32/e1000.
2) Turn off the virtual network driver's ROM boot code. I'm not sure why it's there.
3) Restrict video RAM to the smallest possible value to accommodate the text console only.
4) Disable 3D acceleration.
5) Turn off devices not in use (even the ones you cannot turn off from the VMware Console GUI, like the SCSI device on an IDE host). Note the values 'device.present = "FALSE"'.
6) Adjust performance, scheduling, and memory handling.
7) Make the backing store use the host computer's RAM instead of a file on disk (this is in the global config.ini, not the vmx file).
There are two files pasted below.
First is is the vmx file that you might use for a CENTOS/RHEL system.
Second is the global VMware settings file which goes into "c:/Documents and Settings/All Users/Application Data/VMware/VMware Server/config.ini".
Make sure you shut down all VMware services in the Services control panel before you change these because the VMware Console might over-write your changes.
VMware Console will honor your changes for the most part.
---cut here CENTOS.vmx---
config.version = "8"
virtualHW.version = "4"
numvcpus = "1"
displayName = "CENTOS"
guestOS = "rhel4"
uuid.bios = "whatever yours is"
uuid.location = "whatever yours is"
workingDir = "."
extendedConfigFile = "CENTOS.vmxf"
autostart = "none"
autostop = "softpoweroff"
memsize = "296"
MemTrimRate = "0"
sched.mem.pshare.enable=FALSE
priority.grabbed = "normal"
priority.ungrabbed = "normal"
svga.vramSize="1536000"
svga.maxWidth=640
svga.maxHeight=480
mks.enable3d = "FALSE"
snapshot.disabled = "TRUE"
tools.syncTime = "FALSE"
toolScripts.afterPowerOn = "TRUE"
toolScripts.afterResume = "TRUE"
toolScripts.beforePowerOff = "TRUE"
toolScripts.beforeSuspend = "TRUE"
ethernet0.addressType = "generated"
ethernet0.connectionType = "custom"
ethernet0.downWhenAddrMismatch = "TRUE"
ethernet0.features=0
ethernet0.generatedAddress = "whatever yours is"
ethernet0.generatedAddressOffset = "0"
ethernet0.ignoreMACAddressConflict = "FALSE"
ethernet0.noForgedSrcAddr = "FALSE"
ethernet0.noPromisc = "FALSE"
ethernet0.present = "TRUE"
ethernet0.reassignMAConResume = "TRUE"
ethernet0.startConnected = "TRUE"
ethernet0.virtualDev = "vmxnet"
ethernet0.vnet = "VMnet8"
vlance.noOprom = "TRUE"
vmxnet.noOprom = "TRUE"
ide0:0.fileName = "CENTOS.vmdk"
ide0:0.mode = "independent-persistent"
ide0:0.present = "TRUE"
ide0:0.redo = ""
ide1:0.autodetect = "FALSE"
ide1:0.deviceType = "cdrom-raw"
ide1:0.fileName = "G:"
ide1:0.present = "TRUE"
ide1:0.startConnected = "TRUE"
scsi0.present = "FALSE"
scsi0.virtualDev = "lsilogic"
scsi0:0.fileName = "CENTOS-SCSI.vmdk"
scsi0:0.mode = "independent-persistent"
scsi0:0.present = "FALSE"
scsi0:0.redo = ""
floppy0.present = "FALSE"
sound.present = "FALSE"
sound.autodetect = "TRUE"
sound.fileName = "-1"
usb.present = "FALSE"
usb.autoConnect.device0 = ""
vmmouse.present = "FALSE"
---cut here CENTOS.vmx---
--cut here config.ini---
datastore.name = "local"
datastore.localpath = "C:\Virtual Machines\"
security.host.ruissl = "FALSE"
prefvmx.useRecommendedLockedMemSize = "TRUE"
prefvmx.minVmMemPct = "100"
defaultVMPath = "C:\Virtual Machines"
priority.grabbed = "normal"
priority.ungrabbed = "normal"
mainMem.partialLazySave = "FALSE"
mainMem.partialLazyRestore = "FALSE"
mainMem.useNamedFile = "FALSE"
--cut here config.ini---