I have access to Redhat linux 5.7 guests on vmware ESX (probably 4) hosts which I suspect is often overloaded ( CPU and IO ).
I have no visibility on the ESX host which is managed by another company.
Is it possible to get some information on host state by vmware agent?
Which are the best OS parameter to monitor to get info on host state?
I don't believe you'll have any visibility into the host's specifications or resources from your RHEL guests. That's probably by design. What leads you to believe that the host is overloaded? You should treat your VM like a physical server and check resources using traditional methods. How any vCPU's were you allocated? Did you
cat /proc/cpuinfo
to acquire CPU specs?Check utilities like top, vmstat, sar (if installed), nmon, htop. Check CPU and I/O wait percentages. If you're concerned about I/O, run the usual benchmarks like Bonnie++ or Iozone to get realistic values of the VM's capabilities.
You could also run an overall benchmark like unixbench to see how your virtual setup compares.
Windows VMs apparently have this capability using perfmon counters that are passed from the host to the guest IFF the host admin even allows this. Since you have Linux VMs, this is not even a possibility for you.
You can't determine host state from a VM. It is not possible due to the inherent nature of ESX. The way the hypervisor is able to do what it does is by abstracting all physical resources (CPU, RAM, disk, network, etc.) and presenting them to the guest in a way in which the guest has no idea it is a VM. For this reason, the guest OS has no concept of the host it is running on. All it knows is it can't do what it wants to do for an unknown reason. The host admin dictates what resources your VM can have, and you have no way of determining how much of those resources have been allocated to your VMs.
I suggest gathering as much data as you can using the utilities suggested by ewwhite above, and going to your ESX host management company with the data to see if they can resolve the issues. Alternatively, you may discover in gathering the data that it is indeed a problem in the guest OS somewhere. You can try looking in the vSphere 4.1 Performance Troubleshooting Guide since you "think" the hosts are ESX 4, but you should probably ask them the version first (if they'll tell you). The guide's main audience is ESX(i) admins, but there are a couple of things in there to look for in the guest OSes (uni-processor kernel running on a SMP VM, single-threaded app, etc.)