Virtual Machine Auto-configuration for Web Application

3 downloads 14141 Views 166KB Size Report
benchmark on multi-layer web applications deployed on networked virtual .... configurations as many as possible and build up an initial feature set. Table 1 ...
Virtual Machine Auto-configuration for Web Application Yang Wang

Mengyu Qiao

Department of Computer Science and Engineering New Mexico Institute of Ming and Technology Socorro, NM, USA [email protected]

Department of Computer Science and Engineering New Mexico Institute of Ming and Technology Socorro, NM, USA [email protected]

Abstract—With the booming trend of cloud computing, ondemand resource management is overwhelming static and dedicated strategy. The increasing demands introduce multiple challenges including energy efficiency, performance enhancement, and fault tolerance. Virtualized computing environment decouples OS and applications with hardware to best facilitate these on-demand cloud services. In this paper, we propose an online learning approach for resource autoconfiguration of distributed virtual machines to support multilayer web applications. Based on performance metrics from host OS, virtual machine, and application server, the approach is able to adjust resource configuration and direct virtual machine migration corresponding to service demand variations. Support vector regression is applied to control reconfiguration and migration. The approach will be evaluated by using TPC-E benchmark on multi-layer web applications deployed on networked virtual machines. Our approach will guide systems with proactive changes to improve dependability, efficiency, and reduce the power consumption.

I.

INTRODUCTION

Concurrent web based application is usually designed as multi-layer hierarchy, which make a loose coupling among different layers. In each layer, decentralized design enhances parallelism to meet the requirement of availability, and load balancing. In order to limit the cost, multiple applications may be deployed on one physical server. In cloud computing environment, service provider must enable network access to configurable computing resource, and server organization and network topology are transparent to users. The variable demands require convenient provision and release mechanism with minimum management effort. Therefore, cloud computing introduce new challenges for web based applications: (1) Resource management dynamically changes resource allocation and revocation according to demand; (2) Service isolation provides comparable performance to physical machines. Virtual machine technology generates an additional layer of abstraction for distributed systems, which enable multiple logic machines share computing resource on the same physical machine. This technology provides dynamic re-configurability of virtualized hardware and system level isolation for different applications. Controlling virtual machine reconfiguration and migration according to performance metrics will enhance resource utilization, improve load balancing and reduce power consumption. Both web system and virtual machine auto-

978-1-4244-9328-9/10/$26.00 ©2010 IEEE

configuration have been studied during the past few years. Fu [1] introduced a failure-aware resource management for distributed virtual machines. Bu et al. [2] proposed a reinforcement learning approach to online web systems autoconfiguration. However the interactions between web application and virtual machine have barely studied. Coordinating performance metrics of different layers could enhance the resource management. In this paper, we propose an online learning approach for resource auto-configuration of distributed virtual machines to support multi-layer web applications. Performance metrics of host OS, virtual machine, and application server are extracted for online learning. Online support vector regression is applied to prediction status changes of system, and a scheduling agent control the resource reconfiguration and migration of virtual machines. The proposed approach will be evaluated by using TPC-E benchmark on multi-layer web applications. The rest of this paper is organized as follows. Section II introduces the virtual machine resource management with performance metrics for auto-reconfiguration. Section III presents our experiment settings, and performance evaluation. II.

VIRTUAL MACHINE RSOURCE AUTO-CONFIGRATION

Usually a web application service consists of three layers, including HTTP server, application server, and database. Besides, other services may also run on the same hosts, such as mail services. Nowadays, more and more companies tend to use virtualization technology above their physical machines, such as VMware, Xen, to achieve server consolidation and improve the reliability. In such cases, each component, i.e. different applications or different instance of the same application, is running on its own exclusive virtual machine [2]. In our system, a scheduling agent is introduced to monitor the status of the components and reallocate the resources when necessary. Figure 1 illustrates a structure of our system. The reason to deploy all the components on individual virtual machine is to more conveniently allocate and manage the resources between them. Even if one component crashes or abnormally tends to consuming too much resource, we can ensure other components’ resources, so the entire system becomes more reliable [3]. Another reason is that virtual machines bring the dynamic migration capability (live migration), so we can update configurations without shutting down the services.

TABLE 1. Performance metrics of different layers Host

Tomcat on VM

Tomcat on VM

MySQL on VM

Layer Xen

Host

Apache on VM

Host

Schedule Agent

Host MySQL on VM

Request Host

Tomcat on VM

FTP on VM

Apache Tomcat MySQL

Figure 1. The structure of a multi-layer web system

A. Scheduling Agent The scheduling agent is continuously monitoring the status of the apache, tomcat, MySQL and every virtual machine. The monitored metrics include CPU and memory utilization, number of sessions, response time of each tomcat, the response time of apache, etc. More status may be considered in future. When the status is considered to be inefficiency or nearly to crash, the scheduling agent will reallocate the resources and/or restart some virtual machines and applications.

In our system, online SVR is introduced to take performance metrics from different level as features to train the model incrementally, and predict near-optimal strategy for virtual machine reconfiguration. If current configuration tends to exhaust available resource of host machine, the agent will initiate live migration for the requesting virtual machine to other hosts with available resources.

At the beginning, we try to collect the status and configurations as many as possible and build up an initial feature set. Table 1 shows performance metrics extracted from different layers. The scheduling agent will tentatively change the configurations when system status changes. If some changes result in a performance improvement, the changes will be record with a higher priority according to current status. Otherwise the changes will be record as a lower priority.

CPU running time and utilization, VCPU numbers and running time, weight, cap, memory allocation and utilization, network traffic Serving workers count, idle works count, worker status (request count, traffic, etc.), running time, request rate, current CPU utilization memory utilization of JVM, request rate, current threads, processing time, network traffic, current sessions CPU and memory utilization, current clients, data receiving and sending

D. Coordinate VM and Service Migration When scheduling agent detects inappropriate configurations, it will initiate modifications to parameters or settings. In particular cases, all running virtual machines may exhaust resources of the host system. Therefore, we combine service level migration and virtual machine level migration to form a hybrid policy.

B. Online Support Vector Regression Support Vector Regression (SVR) [4] is designed to minimize the generalization error bound so as to achieve generalized performance. The idea of SVR is based on the computation of a linear regression function in a high dimensional feature space where the input data are mapped via a nonlinear function.

C. Performance Metrics for Prediction In the whole multi-layer system, there are many parameters, attributes, configurations to be set and status to be monitored. An inappropriate setting of configuration may lead to serious problems. The scheduling agent will continuously search inappropriate configurations and optimize them according to current status. On the other hand, the scheduling agent should incrementally learn to identify which configurations are critical to the system and which are not. For the critical ones, the agent will be more sensitive to status changes, and adjust the values rapidly.

Performance Metrics

1.

When a service requires more resources than available resources from the virtual machine, the agent will search for idle virtual machines, and initiate service level migration. During the migration, a snapshot of the service will be captured and restored on another virtual machine. Since this migration is fast and transparent, the user will not experience significant service delay. The service level migration will enhance the load-balancing among servers.

2.

If virtual machine requests more hardware resources than available resources from host system or the number of virtual machines tends to exceed the limit, the agent will start virtual machine live migration without shutting down services. At the destination of the migration, a new virtual machine configuration according to the predicted work load will be created to host the transferred virtual machine. III.

BENCHMARK AND EXPERIMENT

TPC-E [5] benchmark simulates the online transaction processing workload of a brokerage firm. Provide typical online business models, transactions and the scalability that represent the varied workloads for different size businesses. The performance evaluation of TPC-E is given in transactions per second (TPS). TPC-E will be used to evaluate the performance of our auto-configurable web systems. REFERENCES [1]

[2]

[3] [4]

[5]

S. Fu, "Failure-aware resource management for high-availability computing clusters with distributed virtual machines," Journal of Parallel and Distributed Computing, vol. 70, pp. 384-393, Apr 2010. Xiangping Bu, Jia Rao, Cheng-Zhong Xu, "A Reinforcement Learning Approach to Online Web Systems Auto-configuration," icdcs, pp.2-11, 2009 29th IEEE International Conference on Distributed Computing Systems, 2009 S. Fu and C. Xu, "Proactive resource management for failure resilient high performance computing clusters," 2009, pp. 257-264. D. Basak, S. Pal, and D. Patranabis, "Support vector regression," Neural Information Processing-Letters and Reviews, vol. 11, pp. 203-224, 2003. TPC-E, http://www.tpc.org/tpce/

Suggest Documents