Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

This question already has an answer here:

sometimes I feel my server not responding as smoothly as I would expect (i have a Intel(R) Xeon(TM) CPU 2.80GHz Quad Core), given that for example, the 'top' commands reports a low load < 0.5, CPU are almost completely idle ...

I maybe have internet connectivity issues, so I don't really know if it's me or if it's the server itself.

Is there anykind of benchmarking script (or something analogous) I could run and see the actual performance of the server ?

share|improve this question

migrated from stackoverflow.com Jun 10 '10 at 0:03

This question came from our site for professional and enthusiast programmers.

marked as duplicate by Michael Hampton Apr 10 at 18:51

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

drive there and ask to take a look? –  mdma Jun 9 '10 at 23:25

5 Answers 5

The virt-what script will identify many different types of hypervisors and container technologies. It's pre-packaged for most major Linux distributions (e.g. apt-get install virt-what or yum install virt-what) and its output is suitable for use in shell scripts. It correctly performs its detection from inside the virtual guest.

Current types of virtualization detected:

  • hyperv Microsoft Hyper-V
  • kvm Linux Kernel Virtual Machine (KVM)
  • lxc Linux Containers
  • openvz OpenVZ or Virtuozzo
  • powervm_lx86 IBM PowerVM Lx86 Linux/x86 emulator
  • qemu QEMU (unaccelerated)
  • uml User-Mode Linux (UML)
  • virtage Hitachi Virtualization Manager (HVM) Virtage LPAR
  • virtualbox VirtualBox
  • virtualpc Microsoft VirtualPC
  • vmware VMware
  • xen Xen
  • xen-dom0 Xen dom0 (privileged domain)
  • xen-domU Xen domU (paravirtualized guest domain)
  • xen-hvm Xen guest fully virtualized (HVM)

The Puppet tool facter uses virt-what internally to determine the type of virtualization in use, so if you are using Puppet, you already have this installed.

share|improve this answer
This is a wonderful solution... that doesn't work on anything that isn't Linux (or doesn't have a linux-like /proc). All the world is not a Linux box... –  voretaq7 Dec 4 '13 at 19:53
@voretaq7 It only uses /proc to detect Linux containers and UML; it uses dmidecode and calling Intel's CPUID instruction from assembly for everything else. It should be portable to BSD with minimal modification. –  Michael Hampton Dec 4 '13 at 19:59

On Linux, it is possible to look for tell-tale signs of virtualisation depending on the type of hypervisor used. You can typically start by looking in /proc/cpuinfo for the CPU type. Some hypervisors report fake CPU types such as "QEMU Virtual CPU". If it is running VZ, you can find /proc/user_beancounters that report resource usage. With Xen, you will find a /proc/xen directory.

So, it is possible to guess if you are running under some sort of virtualisation.

share|improve this answer
so does this mean that /proc/cpuinfo never lies abour what CPU you have ? –  arod Jun 10 '10 at 3:03
No! I cat /proc/cpuinfo on my vmware virutal machine and cpu is Genuine Intel Xeon... –  lg. Jun 10 '10 at 7:48
@siran - it's possible to lie but like I said, that's just a place to start, and it is a process of elimination. @lg - you can check /proc/vmware to know that it is running vmware. –  sybreon Jun 10 '10 at 14:10

If you can run perl scripts (depending on your OS), there's one called imvirt which can detect quite a few based on various system info (/proc/cpuinfo, dmidecode, etc.) - it sounds like you're on ubuntu, so there are packages for Jaunty, Karmic and Lucid, or you can grab it from Sourceforge.

share|improve this answer

There are things that were looked at by the antivirus companies for detecting blue pill virus variants.

Basically it's extremely hard for a VM to match the real time clock with the CPU counters. If you have access to install a driver, you should be able to put the system into no interrupts and watch the counters. If you have a virtualised system then your clock will drift in chunks when the VM is switched out by the hypervisor (which is supposedly impossible based on the interrupt bit).

share|improve this answer
this sound interesting... how can this be done in a Ubuntu Linux box ? –  arod Jun 10 '10 at 3:06

Look for steal cpu cycles. You can get this in top for example. "If your VM displays a high %st in top (steal time), this means CPU cycles are being taken away from your VM to serve other purposes."

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.