Performance comparison between VMWare and VMLite
The performance data was captured using Windows Performance Monitor on the Host and the virtual machine. I captured %-Processor time and %-User time.
The host operating system is running on a Dell E6410 laptop using Windows 7 - Enterprise 64-bit with 8 GB of memory and an Intel I5 Processor that shows four CPU’s in Task Manager.
The laptop has two internal esata drives and an external esata drive. The host OS runs from one of the internal drives whereby the other two drives are used by the virtual client. This applies for both VMWare and VMLite.
The application that is tested is a heavy Java based application which showed significant performance degradations during startup\initialisation under VMLite workstation 3.2.6.
The performance data was captured during the startup of the application under VMWare and VMLite. For completeness performance data was also collected on the Host OS. However there was never any shortage on host capacity in regards to CPU or Memory.
The virtual client is a 64-bit, Windows 2003 Server (SP1). The client has been assigned two CPU’s in VMWare as well as in VMLite 4.x. Memory allocation is 4 GB and the application is configured equally under both virtual appliances. The disk configuration is also the same and uses SCSI as disk controller in both VMWare and VMLite.
The virtual client uses 4 virtual disks, one for OS, one for paging, one for database and one for data base log files. The OS and Paging virtual disks are together on one physical esata drive and the database and database log file virtual disks are on the external esata drive.
There is no host activity on either of these two physical esata drives.
Results:
Under VMLite 4.0 the startup time is now equal or close to the startup time under VMWare.
Under VMLite 3.2.x it was approx.. 2-3 times longer than the vmwarestartup time.
When I started testing with VMLite 4.x I experienced 50 % higher startuptimes (e.g 7 min under vmware and 11 min. under vmlite) until I changed the setting for the nested paging to enabled. The startup time than dropped significantly and got close to the startup time under vmware.
I also experienced sluggish behaviour of the mouse which I resolved by enabling absolute pointing device.
I can now confirm that all of my intial performance issues with VMLite 3.x are resolved with this new release of the product. Well done guys.
I thought I share some of the screenshots I have captured during testing. The graph was updated by perfmon every 10 seconds.
Between each of the test the Host system was completely restarted to ensure all OS buffers, etc. are flushed.
Startup under VMWare (7:10 minutes)
Perfmon collected on Host
% Processor time - Max. - 49.106, Avg. – 31.6
% User time-Max. - 5.7, Avg. 3.3
Perfmon collected on VMWare client
% Processor time - Max. – 84.6, Avg. – 48.1
% User time-Max. - 71.4, Avg. – 36.7
Startup under VMLite without nested paging (13:03 minutes)
Perfmon collected on Host
% Processor time - Max. - 49.067, Avg. – 35.4
% User time-Max. - 8.2, Avg. 4.1
Perfmon collected on VMLite client
% Processor time - Max. – 98.2, Avg. – 63.3
% User time-Max. – 66.6, Avg. – 24.9
Startup under VMLite with nested paging enabled (6:46 minutes)
Perfmon collected on Host
% Processor time - Max. - 48.209, Avg. – 25.2
% User time-Max. – 19.7, Avg. 4.6
Perfmon collected on VMLite client
%Processor time - Max. – 89.3, Avg. – 37.4
% User time-Max. – 73.5, Avg. – 28.2
We can see that setting the nested paging and absolute pointing device made a huge difference and brought the elapsed time of the application startup close to what it is under VMWare. I have done these same tests many times to confirm the elapsed times.
Summary
VMWare server appears to use approx. 500 MB more memory on the host compared to VMLite even that the clients memory allocation is the same under both (4 GB). This is another plus I have seen while comparing the two products.
I have been trying to further improve the elapsed time under VMLite by adding another CPU and also adding another GB of memory. However the elapsed time didn’t improve which indicates to me that most of that time is spent in IO.
I have also tried using theSata drivers instead of SCSI and could see an improvement of 5 % in elapsed time for the startup of the application. However when activating the caching at the Controller level the memory consumption on the host increased by about 500 MB and the restart time of the application improved by approx. 25 % compared to not using the caching option.
I also removed all network adapters and only used the bridged network adapter to make sure the network doesn’t cause any overhead.
As you can also see using the above graphs there is no issue on the host in regards to CPU shortage or memory shortage. The host was never an issue here.
I would appreciate if you could give me some more recommendations on what configuration settings I could try in VMLite to further improve the startup times of the application. I would assume it would be at the IO level only (e.g. using different drivers). Also please keep in mind that I can’t change the OS of the client.
Again, I am very impressed with the results and the work you have done with the new release. I am now a candidate to move over to VMLite workstation.
Let me know if you would like to have more detailed performance data captured (e.g. IO’s, Disk queue lengths, etc.). I can repeat the tests at any time.
Congratulation and thanks again for the great work.