See discussions, stats, and author profiles for this publication at: https://www.researchgate.
net/publication/337770344
Implementing Virtual Machine: A Performance Evaluation
Chapter · January 2020
DOI: 10.1007/978-3-030-36056-6_35
CITATIONS READS
5 2,536
5 authors, including:
Hazalila Kamaludin Nurul Ab Rahman
Universiti Tun Hussein Onn Malaysia Universiti Tun Hussein Onn Malaysia
17 PUBLICATIONS 154 CITATIONS 44 PUBLICATIONS 636 CITATIONS
SEE PROFILE SEE PROFILE
Noor Zuraidin Mohd Safar Suhaimi Abd Ishak
Universiti Tun Hussein Onn Malaysia Universiti Tun Hussein Onn Malaysia
32 PUBLICATIONS 116 CITATIONS 10 PUBLICATIONS 95 CITATIONS
SEE PROFILE SEE PROFILE
All content following this page was uploaded by Hazalila Kamaludin on 20 February 2020.
The user has requested enhancement of the downloaded file.
Implementing Virtual Machine:
A Performance Evaluation
Hazalila Kamaludin(&), Muhamad Yusmaleef Jamal,
Nurul Hidayah Ab Rahman, Noor Zuraidin Mohd Safar,
and Suhaimi Abd Ishak
Faculty of Computer Science and Information Technology, Universiti Tun
Hussein Onn Malaysia, Parit Raja Batu Pahat, Johor, Malaysia
{hazalila,hidayahar,zuraidin,suhaimiabd}@uthm.edu.my,
yusmaleef@gmail.com
Abstract. A hypervisor is a hardware virtualization technique that allows
multiple guest operating systems to run on a single host machine at the same
time. Each Virtual Machine (VM) or known as guest operating system emulates
all interfaces and resources of a real computer system. Virtualization is bene-
ficial as one of the educational tools to facilitate students’ hands-on experiences
and research activities. However, the performance of VM needs to be taken into
consideration. We investigate the performance of a set of VMs using Oracle
VirtualBox on several host machines, each of which has its own system spec-
ifications. We observe the resource utilization of each host machine in terms of
its CPU utilization, CPU speed as well as memory usage. Experimental results
show that the CPU utilization averages are 51.78%, 60.7% and 62.57% for cases
before memory allocation, 1/2 of memory capacity and 2/3 of memory capacity,
respectively. It is indicate that the utilization of a host processor is directly
proportional to the memory capacity assigned for a virtual machine.
Keywords: Virtual machine Guest operating system Virtualization
Performance
1 Introduction
A virtual machine (VM) uses virtualization infrastructure where it can be applied not
only to subsystems (e.g. disks), but to an entire machine such as Central Processing
Unit (CPU), Input/Output (I/O) and virtual resources [1]. The capability of performing
tasks as a replicate machine enables VM as an educational tool to facilitate students’
hands-on experiences and research activities in the virtualization of desktop, server and
storage [2, 3]. It also facilitates educational activities in investigating the emerging
technologies such as cloud computing and Internet of Things, as the real-world
implementation requires a costly high-end infrastructure.
In the case of Operating Systems (OS) course, investigating a number of different
OS types (i.e. open-source, closed-source, mobile) are useful to help undergraduate
students in understanding the real-world practice [4]. One of VM practical environ-
ments are students setting up the multiple guest OS case scenario in a VM using their
© Springer Nature Switzerland AG 2020
R. Ghazali et al. (Eds.): SCDM 2020, AISC 978, pp. 373–381, 2020.
https://doi.org/10.1007/978-3-030-36056-6_35
374 H. Kamaludin et al.
own computer to ensure they can work at anywhere and anytime (not limited to lab
hours).
Running multiple guest OS in a VM, essentially, requires either a high performance
of computers or a good virtual resources management for standard specifications of
computers. This is to avoid disruption in practical works. Inexperience undergraduate
students, however, might have a poor resources management skill that can lead to
computers’ low performance and students are subsequently demotivated to continue the
works. This study, therefore, is carried out to understand the appropriate virtual
resources management for standard computer specifications case which significantly
useful for undergraduate students to undertake VM practical tasks.
In this study, hands-on tasks of OS course were applied as a case study. Experi-
ments on several host machines were conducted to study the host performance of CPU
utilization, CPU speed and memory usage while using different selected guest OS. All
host machines were experimented using Oracle VirtualBox on few different guest
operating systems such as Ubuntu for Linux distro, Android for open source mobile
operating systems and several other open source mobile operating systems (alternative
to Android), for instance Phoenix OS, Lineage OS and Plasma Mobile. Oracle Vir-
tualBox is one of the VMs existed in market that enable a host machine to run multiple
operating systems in a single server. The readings of CPU utilization, CPU speed and
memory usage were taken in three scenarios, namely: (1) before allocation memory
size, (2) after allocates 1/2 of the host machine memory size to VM, and (3) after
allocates 2/3 of the host machine memory size to VM. All data taken were summarized
into table to study the differences. This paper describes a brief observation on the host
machine performance before and after running the guest OS.
There were few challenges and constraints arise while conducting this virtualization
study that must be aware of to ensure getting the best result such as:
1. What is the capability needed for the host machine?
2. What is the ideal host machine RAM size to run virtual machine smoothly?
3. What type of network connection should be used to allow internet connection?
Our specific contributions with reference to verify the performance of host machine
are:
• We design the experiment procedure of evaluating host machine performance
before and after running the guest OS.
• We evaluate the hosts performance of CPU utilization, CPU speed and memory
usage by allocating 1/2 and 2/3 of the host memory size after running the guest OS.
The rest of this paper is organized as follows. Section 2 gives a survey of the
related works. Section 3 defines the experiment settings. Section 4 presents the
experimental results and discussion. Section 5 concludes this paper.
Implementing Virtual Machine: A Performance Evaluation 375
2 Related Works
Application in a traditional computer system runs directly on the complete physical
machine. Study on virtualization however, demonstrates that virtualization techniques
allow a VM to work separately from the physical host [2–5]. By using virtualization
concept, applications are executed on VM and each VM typically running a single
application and a different operating system [6]. The virtualization techniques also
allow customized operating system and resource allocation in each of the VM.
These days, virtualization is employed extensively in data centers mostly to enable
cloud computing. A lot of research have been conducted which include VM placement
[10], performance [11, 12], migration and consolidation [13] as well as resource
management in VM [14–18].
In learning Operating System course, the hands-on experience is crucial for helping
students to experience and understand the complexity of managing a virtualized
environment for example regarding the utilization of primary hardware resources [4, 5]
such as CPU and memory. In order to help this, a virtual environment for instance the
VM allows multiple operating systems to be tested.
The main task of VM is to virtualize the memory, I/O devices and the processor.
Memory virtualization aims at mapping the physical memory of a VM to the actual
machine memory. I/O device virtualization makes sure that each VM acquires a virtual
device and processor virtualization pay attention of sensitive instructions [6].
A study on resource management by [5] observed that a huge element of the
operational costs in a virtualized environment was related to the inherent complexity of
determining good VM-to-host mappings. The difficulty is the requirement to balance
the utilization of multiple resources including CPU and memory simultaneously across
virtual machines and physical hosts.
According to [7], the standard personal computer processors provide inadequate
support for hardware virtualization and therefore, virtualization overhead can be as
high as 50% of total computing time [2].
The Xen developers, a well-known and widely used open source hypervisor
evaluated their hypervisor together with VMware a commercial hypervisor that mainly
used for server consolidation and User Mode Linux. The evaluation is done between
the hypervisors using several large applications. Results of the experiment showed that
all the three hypervisors introduced a significant slowdown with database and web
applications [6]. Another experiments also measured an up to 14% runtime overhead of
VMware with compute-intensive simulation applications in High Energy Physics [8].
A study in [3] examined virtual machines in different environments for education
purposes. The experiment is done between Windows7 ultimate and Linux mint 15 in
VirtualBox as the VM. Results of the experiment showed that there is a difference in
performance between single-core and multi-core even in a single test.
In summary, the performance of applications running on VMs has been studied
before. However, for implementing VMs in education, students are exposed to the case
study of running multiple guest OS in VM. These experiments essentially, require
either a high performance of computers or a good virtual resources management for
standard specifications of computers while giving them a better experience.
376 H. Kamaludin et al.
3 Experiment Settings
In order to enable an Internet connection for the three guest OS in VM, a network
configuration was set up. The connection used was Network Address Translation
(NAT) network connection as this network connection allows guest OS to access
external network. The NAT service works in a similar way to a home router, grouping
the systems that use it in the network and preventing external systems from directly
accessing the systems, but allowing the systems to communicate with each other and
use TCP externally and UDP over IPv4 and IPv6 systems.
Following is a network configuration set up for Ubuntu (the same way is applied to
every other guest OS).
1. Open the installed VM and choose the guest OS that is to be configured (e.g.
Ubuntu).
2. Right click on the guest OS and choose Settings as in Fig. 1.
Fig. 1. Open network configuration setting panel
3. Then, at the pop-out window named Ubuntu Settings, click Enable Network
Adapter, as shown in Fig. 2.
4. Add rule into Port Forwarding Rule and insert port to the added rule as in Figs. 3
and 4.
5. Click OK to save changes made to the guest OS network configuration.
6. Start the guest OS and try to access the Internet. It shows that the setting is correct
as the Internet is connected as shown in Fig. 5.
Next step is to observe the host performance while running the guest OS. Each
guest OS is run one after another and the CPU utilization, CPU speed and memory
Implementing Virtual Machine: A Performance Evaluation 377
Fig. 2. Setting up the network configuration
Fig. 3. Add rules
Fig. 4. Insert port
378 H. Kamaludin et al.
Fig. 5. Access to the internet is successful
usage were recorded. To have a more precise result, the memory size of the host was
allocated to 1/2 and 2/3 and the new reading of host performance after both allocations
were recorded and arranged into a table.
4 Results and Discussion
Table 1 presents the differences in performance of host machine when users undertake
browsing activities in a VM using three guest OS. The performance percentage of CPU
utilization, speed and memory usage were observed from 7 groups of students. The
observation involves three scenarios that are: (1) before allocation memory size,
(2) allocation of 1/2 memory size to VM, and (3) 2/3 allocation of memory size to VM.
Group 1 was using Ubuntu, Android and Plasma Mobile. Observation of Group 1
shows that Android has the highest workload on the resources, followed by Ubuntu and
Plasma Mobile, respectively.
Group 2 was using Ubuntu, Android and Phoenix OS. Similarly, observations from
Group 2 shows Android have the highest CPU utilization, speed performance and
memory usage followed by Ubuntu and Phoenix OS respectively. Phoenix OS presents
significant lowest memory usage in the scenario of 2/3 memory allocation compared to
the other two Guest OS.
Group 3 was using Ubuntu, Android and Lineage OS. In this group, Android shows
highest CPU utilization under scenario of 1/2 memory allocations and 2/3 memory
allocation, while other scenario presents percentage over 50%. It was noted that
Android has highest speed performance after 2/3 memory allocation.
Group 4 was using Ubuntu, Android and Phoenix OS. This group is presents full
workload of CPU utilization for the three OS and for speed performance all three OS
for three scenarios has exceed the host machine base speed making the percentage
Implementing Virtual Machine: A Performance Evaluation 379
Table 1. The results of experiments
Group System performance CPU Speed (%) Memory
utilization (%) usage (%)
Memory size 1 1/2 2/3 1 1/2 2/3 1 1/2 2/3
1 Ubuntu 19 69 84 35 80 98 77 61 71
Android 68 100 100 73.6 123.6 123.6 78 78 75
Plasma Mobile 18 13 23 35.6 33 36.4 66 65 68
2 Ubuntu 65 50 67 123 106 116 70 72 75
Android 89 100 100 119.2 115.2 121.6 71 90 91
Phoenix OS 61 81 79 123.6 102.8 109.2 70 70 71
3 Ubuntu 3 20 14 45 46 49 79 92 82
Android 3 22 21 45 63 62 79 90 92
Lineage OS 3 15 16 45 78 49 79 92 92
4 Ubuntu 100 100 100 123.6 123.6 124.4 44 58 61
Android 100 90 100 124 126 125.6 57 59 66
Phoenix OS 100 100 100 123.6 125.6 123.6 67 67 75
5 Ubuntu 39 81 78 114 114 111 80 75 78
Android 39 42 73 114 113.6 114 71 72 72
Lineage OS 35 61 85 114 100.3 114 67 67 72
6 Ubuntu 39 34 17 110.4 112.5 86.3 97 95 92
Android 15 33 26 82.9 97.9 112.9 92 92 92
Phoenix OS 87 49 15 110 112.9 88.3 92 92 95
7 Ubuntu 30 55 62 110.4 112.5 86.3 79 95 92
Android 59 59 70 94 99.6 109.9 74 85 82
Lineage OS 49 56 65 81.2 100 102.5 79 82 85
reading become more than 100%, while Ubuntu denotes the lowest memory usage
under the three scenarios.
Group 5 was using Ubuntu, Android and Lineage OS. Ubuntu and Android show
same CPU utilization reading for scenario (1) and all Guest OS show similar reading
for speed performance in scenario (1). Similar with group 4, workload of speed
exceeding 100% was observed. Lineage OS, on the other hand, presents the lowest
memory usage.
Group 6 was using Ubuntu, Android and Phoenix OS. In group 6, both Ubuntu and
Phoenix OS present lowest CPU utilization and speed performance after 2/3 memory
allocation, while Android presents highest speed performance after 2/3 memory allo-
cation. All the three OS present over 90% of memory usage for the three scenarios.
Group 7 was using Ubuntu, Android and Lineage OS. Ubuntu shows the lowest
CPU utilization before memory allocations, while other scenarios present more than
50% of utilization for the three OS. Ubuntu has over 90% of speed performance and
memory usage in the scenario of (2) but lower than 90% in scenario (3) of speed
performance and in scenario (1) of memory usage.
380 H. Kamaludin et al.
5 Conclusion
The percentage of CPU utilization and CPU speed will increase when opening or
running an application. Task Manager in the host machine is used to observe the
percentage of CPU utilization, CPU speed and memory usage. As power consumption
increase when CPU utilization increase, the percentage of CPU utilization will rise
temporarily during opening an application, play video or doing activities on web and
the percentage of CPU usage will drop back to lower level once the in-depth process of
CPU completes. The percentage of CPU utilization increases significantly when run-
ning the guest OS in the virtual machine. For example, the CPU utilization reading
reach 100% when carried out intensive browsing activities in the guest OS. The
computer will slow down and therefore, it has to regularly free up processing power for
different processes.
Overall, the results showed that all the three VM from each group introduced a
significant slowdown while opening an application, play video or web browsing.
Obviously, even though virtualized machine reduces the overall number of physical
systems and related recurring costs, it introduces overhead which results in a perfor-
mance loss when applications run on a VM rather than directly on the physical
machine. With the evolving technologies such as cloud computing, grid computing and
Internet of Things, performance of virtualized machines becomes therefore a research
topic.
For future work, this study plans to observe the host performance while running
open source OSs targeting for IoT devices. These operating systems focus on low
power IoT devices [9] (memory constraint device) such as Contiki, RIOT OS, Free-
RTOS, TinyOS, OpenWSN, nuttX OS, Embedded Configurable Operating System
(eCos), mbedOS and so on. Even though the device is low on its power and memory, a
device should still must be able to monitor inputs, update event and as well as receiving
commands from gateway/devices. Therefore an operating system for this device must
have the following abilities:
• Task management and scheduling
• Interrupt servicing
• Inter process communication
• Memory management
Furthermore, the extraction of the performance levels produce by this study will
benefit the development of machine learning approach to predict the performance of an
open source in virtual environment.
Acknowledgments. The authors express appreciation to the Ministry of Higher Education
(MOHE) and Universiti Tun Hussein Onn Malaysia (UTHM). This research is supported by the
Fundamental Research Grant Scheme (FRGS) grant (Vot 1640)
Implementing Virtual Machine: A Performance Evaluation 381
References
1. Smith JE, Nair R (2007) Introduction to virtual machines. Virtual Machines. Elsevier, pp 1–26
2. Nabhen R, Maziero C (2006) Some experiences in using virtual machines for teaching
computer networks. In: Education for the 21st century—impact of ICT and digital resources,
pp 93–104
3. Mateljan V, Juricic V, Moguljak M (2014) Virtual machines in education. In: 37th
International convention on information and communication technology, electronics and
microelectronics (MIPRO), pp 603–607
4. Nieh J, Vaill C (2005) Experiences teaching operating systems using virtual platforms and
linux. ACM SIGCSE Bull 37(1):520–524
5. Gulati A, Holler A, Ji M, Shanmuganathan G, Waldspurger C, Zhu X (2012) Vmware
distributed resource management: Design, implementation, and lessons learned. VMware
Tech J 1(1):45–64
6. Tao J, Furlinger K, Wang L, Marten H (2012) A performance study of virtual machines on
multicore architectures. In: 2012 20th Euromicro international conference on parallel,
distributed and network-based processing, pp 89–96
7. Chen PM, Noble BD (2001) When virtual is better than real [operating system relocation to
virtual machines]. In: Proceedings eighth workshop on hot topics in operating systems,
pp 133–138
8. Gilbert L et al (2005) Performance implications of virtualization and hyper-threading on high
energy physics applications in a grid environment. In: 19th IEEE international parallel and
distributed processing symposium, p 10
9. Hahm O, Baccelli E, Petersen H, Tsiftes N (2015) Operating systems for low-end devices in
the internet of things: a survey. IEEE Internet Things J 3(5):720–734
10. Masdari M, Nabavi SS, Ahmadi V (2016) An overview of virtual machine placement
schemes in cloud computing. J Netw Comput Appl 66:106–127
11. Joy AM (2015) Performance comparison between linux containers and virtual machines. In:
2015 International conference on advances in computer engineering and applications. IEEE,
pp 342–346
12. Sharma P, Chaufournier L, Shenoy P, Tay YC (2016) Containers and virtual machines at scale: a
comparative study. In: Proceedings of the 17th international middleware conference. ACM, p 1
13. Ahmad RW, Gani A, Hamid SHA, Shiraz M, Yousafzai A, Xia F (2015) A survey on virtual
machine migration and server consolidation frameworks for cloud data centers. J Netw
Comput Appl 52:11–25
14. Arianyan E, Taheri H, Sharifian S (2015) Novel energy and SLA efficient resource
management heuristics for consolidation of virtual machines in cloud data centers. Comput
Electric Eng 47:222–240
15. Piraghaj SF, Calheiros RN, Chan J, Dastjerdi AV, Buyya R (2015) Virtual machine
customization and task mapping architecture for efficient allocation of cloud data center
resources. Comput J 59(2):208–224
16. Khan MA, Paplinski A, Khan AM, Murshed M, Buyya R (2018) Dynamic virtual machine
consolidation algorithms for energy-efficient cloud resource management: a review. In:
Sustainable cloud and energy services. Springer, Cham, pp 135–165
17. Gupta MK, Amgoth T (2018) Resource-aware virtual machine placement algorithm for IaaS
cloud. J Supercomput 74(1):122–140
18. Toosi AN, Sinnott RO, Buyya R (2018) Resource provisioning for data-intensive
applications with deadline constraints on hybrid clouds using Aneka. Futur Gener Comput
Syst 79:765–775
View publication stats