vmware ESX and slow syscalls
We have 2 physical machines in company. Both have the same HW configuration, running the same CPU:
Intel(R) Xeon(R) CPU E5420 @ 2.50GHz One is a regular linux, and on second one we have ESX, version 4. In the ESX we have linux, which should be almost identical with the linux on first machine. The kernel version is: (a bit old for these days, but needed cause of old project) Linux x 2.4.21-53.ELhugemem #1 SMP Wed Nov 14 03:46:17 EST 2007 i686 i686 i386 GNU/Linux The problem is that virtualized linux is running slower. I have read, that the overhead should be ~8%, which is something I could live with. But the performance hit can be seen by naked eye. I made 2 test programs: First was just doing some extensive work in userspace (e.g. giant loop and counting numbers). Here the performance hit is around 8%-10%, which is fine. Second program is doing syscalls - "close(0);" in loop. And this is where things aren't pretty anymore: Linux running on real HW: Code:
% time seconds usecs/call calls errors syscall Code:
Process 14702 detached Any ideas why this is happening? It seems, that the context switch is very expensive for some reason. |
You say the machines are configured the same, but how are the disks being accessed, have you verified there are no patches that apply to your hardware that need applied, do both systems use the same kind of underlying raid, do you have any other applications guests on the esx host, and did you install the vmware tools?
|
|
All times are GMT -5. The time now is 12:54 AM. |