SINGLE SERVER-SIDE AND MULTIPLE VIRTUAL SERVER-SIDE ARCHITECTURES: PERFORMANCE ANALYSIS ON PROXMOX VE FOR E-LEARNING SYSTEMS

ABSTRACT


I. INTRODUCTION
An educational institution can have more than one elearning system, which in practice generally uses a single server architecture type [1].A single server architecture is indeed not a problem if it is used for only one system, but if several systems are active simultaneously on it it will be risky, especially when an error occurs on the server then all services will stop meaning a low level of system availability [2].Another factor that needs to be considered is the aspect of performance and the efficient use of resources, both software and hardware so that they can support the performance and level of system availability [3].
To overcome the problems that exist in the single server architecture, multiple virtual server architecture types are used combined with the application of reverse proxy techniques for efficiency in terms of application software on the Proxmox server [4] [5].The reverse proxy allows the use of a domain name and SSL certificate for multiple applications or e-learning systems at once [6].Reverse proxy also has load balance and failover features which can increase server availability [7].Virtualization is the basis for creating cloud computing with the type of Infrastructure as a Service (IAAS) [8].Server virtualization can also be implemented for cost efficiency in terms of hardware.Virtualization can optimize the use of hardware and avoid wasting electricity so that it is cost-effective [8] [9].Proxmox Virtual Environment (PVE) is a high-availability hypervisor that can be used to create and manage virtual machines [10].PVE can also be used as a virtual server infrastructure in making practical webbased e-learning combined with noVNC technology [11].In addition to virtualization, storage clustering techniques can also be utilized to increase hardware scalability and availability, especially storage media by placing several storage media in a redundant and distributed manner [12] [13].
The use of a single server architecture has various limitations, as previously described [14].The multiple virtual server architecture is a server architecture designed by breaking a physical computer into several virtual computers so that it can make efficient use of hardware and increase system availability by optimizing interactions between existing virtual servers.The application of a reverse proxy has various functions, such as cost effectiveness and increasing system availability by utilizing load balancing [15].Likewise with storage clustering, which is able to increase availability in terms of hardware [16].In building an elearning system, the use of Moodle is very effective from a development standpoint and easy to use from a production standpoint [17].Moodle in software already has a guaranteed performance benchmark based on various test results that have been carried out by many people, so there is little possibility of a software bottleneck when building an e-learning system using Moodle [18].
Related to some of these things, this research applies Moodle as an e-learning application that is deployed in a multiple virtual server architecture on Proxmox with the implementation of storage clustering using GlusterFS.The use of a reverse proxy with HAproxy is expected to support aspects of the effectiveness and efficiency of resource use and system availability on the server [19].Various advantages of the application made in building elearning systems in research need to be validated in terms of performance in terms of server architecture using a performance analysis method because the performance aspect is very vital in a system.To perform performance analysis, the User Behavior Modeling Performance (UBMP) method is used [20].UBMP is a performance test model that is effective, comprehensive, and broad so that it can be applied to various server architectures, especially in cloud environments [21].In testing this method, we comprehensively reviewed the performance of the server architecture models tested.
The purpose of this study is to use User Behavior Modeling Performance (UBMP) with the aim of obtaining effective, comprehensive, and accurate performance assessment results for the architecture being tested [22].Then a single server-side architecture was also built as a comparison to multiple virtual architectures to analyze its performance and determine the level of reliability of each server architecture.The application of the test environment was carried out by the Proxmox server for server implementation on each architecture using the Debian 8 operating system.

II. THEORETICAL REFERENCE II.1 MOODLE
Moodle is an e-learning platform designed to provide educators, students, and administrators with one integrated system [23].E-Learning is the principle of direct learning, and in its application, it promotes independent learning, namely web-based distance learning that can be accessed via the internet network [24].Moodle provides digital classrooms to access material or anything related to learning that is freely accessible to anyone, anytime, anywhere [25].The advantage of using Moodle is that it is open source, so someone with programming skills can adjust and develop existing features according to their needs and desires [26].

II.2 REVERSE PROXY
The reverse proxy method is a technique that places a proxy server as a middle layer between the client (the frontend layer) and the server (the backend layer).The use of reverse proxies is generally used as load balancing to share server load and can also run caching features to avoid sending the same content repeatedly so as to reduce web server load [27].
Load balancing on the reverse proxy can minimize downtime so that the system has high availability.Haproxy is software that can be used for reverse proxy and load balancing with reliable performance [28].In addition, its application can also be used in various cases.Among them is to save on the allocation of domain names with the domain forwarding technique or the SSL termination technique by only placing encrypted communications at the frontend layer so that you can save on the use of SSL certificates.

II.3 VIRTUALIZATION
Virtualization is a computer device where the amount of hardware resources can be created, managed, and allocated as needed through software, and various operating systems can be installed in it [29].The resources used in virtualization come from the resources owned by the physical computer where the virtual computer is created (the host).Resource allocation can be done because of the hypervisor technology.The hypervisor plays the role of managing, running, and monitoring virtual machines [30].
Virtualization is the basis for cloud computing providers Infrastructure as a Service (IAAS) services [31].Several cloud service providers, such as Amazon, also use virtualized machine technology in the cloud services they offer.Generally, the purpose of virtualization is to optimize hardware use and avoid wasting electricity.One of the hypervisors with high availability capabilities is Proxmox, which can manage virtual machines with KVM and containers with LCX [32] [33].The proxmox architecture can be seen in Figure 1.

II.4 TOOL FOR TESTING
There are currently a number of open-source tools that can be used for stress testing web servers or web services.In this article, we focus on tools suitable for generating HTTP and HTTPS loads (GET, POST, and PUT) and FTP loads (PASV and RETR file transfers).Only tools with distribution open licenses (GNU, Apache License, etc.) and executables on the Linux kernel operating system were selected for performance analysis using Apache JMeter [34].Apache JMeter is open-source software used to perform load testing, performance testing, and functional testing on web applications and other web services [35].

II.5 USER BEHAVIOR MODELING PERFORMANCE (UBMP)
The scope of performance testing is very broad, and the differences in architecture and resources used in it also affect the aspects tested [36].UBMP testing will produce a performance test model that is effective, comprehensive, and broad so that it can be applied to various server architectures, especially in cloud environments.The optimum value and maximum concurrent users are important indicators to evaluate system performance.In traditional performance testing, there are problems with high costs and limited resources, so the maximum concurrent users cannot be achieved, and the result is that the maximum access load on the system cannot be estimated.
UBMP overcomes these problems using the inflection point performance index, which is an analysis of the performance index based on three performance indicators, namely CPU usage, throughput, and availability.UBMP divides system performance into three parts based on the optimum value and maximum concurrent users, namely light load, smooth load, and heavy load.The larger the user, the greater the increase in CPU and throughput at a certain point and a decrease in the level of availability.The optimum value for concurrent users is obtained when the throughput is at its maximum.The maximum concurrent user value is obtained when the system availability level drops to 70%.
The light load condition occurs when the number of users is below the user's optimum value, the level of availability is high, and the throughput and CPU start to gradually increase.Smooth load conditions are in the range of optimum values and maximum concurrent users.The heavy load condition occurs when the number of concurrent users is above the maximum concurrent user value.
Testing with UBMP uses several user behavior parameters to simulate testing under real-world conditions.The parameters used are thinking time, ramp-up period, and functional test plan.The UBMP test flow to obtain optimum values and maximum concurrent users to determine light, smooth, and heavy load conditions on the system can be seen in Figure 2.

II.5 STORAGE CLUSTERING
Storage clustering is a method of grouping several storage media into a logic storage so that the stored data is distributed among the storage media that are joined in a group [37].This method is widely applied for the scalability and availability of data storage.If a storage medium is damaged, the data stored is still safe because the data is replicated on other storage media in the cluster.One of the Replication Cluster High-Availability Storage technologies is GlusterFS [38].The application of storage clustering with glusterFS in this study is used to store user data in Moodle applications on two replicated web servers.The storage clustering scheme used can be seen in Figure 3.

III. MATERIALS AND METHODS
The method used in this study was carried out in the following stages: preparing, planning, designing, implementing, testing, and optimizing.This method results in a standard cycle of network development and management.The flow of the method is shown in Figure 4.The stages of the research are as follows: 1. Prepare At this stage, preparations are made in the form of needs analysis on cloud system services and distribution models, performance test models on cloud systems, Proxmox Virtual Environment systems, e-learning Moodle systems, and JMeter testing.

Plan
Identify network architecture designs on Single Server-Side and Multiple Virtual Server-Side Architecture systems.

Designing
Designing a network architecture topology system by building an e-learning Moodle system, four virtualization servers, storage clustering, a DNS server, and a web server according to testbed specifications.

Implementation
Implement the network architecture design that has been made starting from the installation, network addressing, and service configuration stages until the system is ready for use according to the testbed parameters.

Test
Conduct network architecture design tests that are built, which include maintenance, fault detection in the network, and monitoring performance in the implemented network architecture, using testing tools.The testing tool runs using the parameters in the test plan.

Optimization
Repairing errors in the network, optimizing network performance, and so on for the suitability and convenience of using the network in the business processes required by the user in accordance with the test plan parameters.
Multiple virtual server-side architectures were designed using virtualization technology in PVE to build two different elearning systems using Moodle.Utilizing the second reverse proxy technique, e-learning can be accessed using only a domain name and SSL certificate with the addresses https://lms.edu/lms1for the first e-learning and https://lms.edu/lms2for the second e-learning.
There are four virtualized servers on a physical machine, namely VM1 DNS and proxy server, VM2 web server 1, VM3 web server 2, and VM4 database server.VM3 is a replication of VM2 Web Server 1 for load balancing and high availability.Storage clustering is applied to storage media in VM2 and VM3.All virtual servers use the 64-bit Debian 10 (Buster) operating system with a command-line interface.The DNS server uses bind9, the proxy server uses Haproxy, the web server uses NGINX, and the database server uses MariaDB.The multiple virtual server-side architecture testbed design can be seen in Figure 5.The hardware specifications used in the multiple virtual server-side architecture can be seen in Table 1 below.The same case study in the form of deploying two e-learning applications and the same services on multiple virtual server-side architectures built in a testbed in the form of a single server-side architecture that uses specifications in the form of an accumulation of specifications used by virtual servers on multiple virtual serverside architectures as a comparison to analyze its performance.The testbed design on a single server-side architecture architecture can be seen in Figure 6.The hardware specifications used in the single server-side architecture can be seen in Table 2 below.

III.2 TEST PLAN
The test uses a load testing technique with the UBMP model.According to the UBMP flowchart in Figure 3, the first step is to determine test plans and test parameters.The flow of the test plan is in the form of accessing the start page, logging in, and accessing a course in e-learning.Tests were carried out on two elearning courses, namely https://lms.edu/lms1and https://lms.edu/lms2,simultaneously.The initial test parameters used to find the gradient value are in Table 3 below.The search for gradient values is carried out by adding 5 threads in each test iteration until a 5% increase in CPU is obtained.The gradient value is the difference between the threads in the first iteration and the threads in the nth iteration, which shows a 5% increase in CPU.The gradient value is used as a constant for adding threads at each iteration in the search for optimum and maximum concurrent users.
The search for the optimum value of concurrent users is carried out by adding threads at each test iteration and paying attention to the throughput value.If in the nth iteration the maximum throughput value is obtained, then the threads in the nth iteration are the optimum concurrent users.To get the maximum concurrent users, in the initial iteration of the test, the threads value is filled with the optimum concurrent users value, then updated for the next iteration with a gradient value to obtain a system availability level of up to 70%.Based on the inflection point performance index, the light, smooth, and heavy load conditions of the system can be determined as an accurate and efficient performance index.

IV. RESULTS AND DISCUSSIONS
Implementation of creating a web-based online laboratory has been carried out [6], in this study using The Networked Control System Lab (NCSLab) framework In our research, the network architecture is implemented in a cloud system using the Proxmox Virtual Environment (PVE), with tests based on the Multiple Virtual Server-Side Architecture testbed and the Single Server-Side testbed.Then a test plan is carried out based on the test parameters according to Table 3.The test is carried out based on the process flow of Availability Testing on Multiple Virtual Server-Side architectures can be seen in Figure 7.In this test, the application of reverse proxy and storage clustering not only saves system operating costs but can also increase the level of system and data availability [40].Based on the testbed and testplan on the system, the gradient value obtained is 10 concurrent users [41], which is obtained by the difference in threads in the 1st and 3rd iterations with a difference in CPU usage of 5%, which can be seen in Table 4. From the results of testbed and testplan testing, it can be concluded that server virtualization with Proxmox Virtual Environment (PVE) is able to optimize hardware performance on physical server machines, then optimize server performance by dividing it into several virtual servers so that it has high efficiency in resource use.From this test, it was found that the Proxmox server was stable [42].
The test results showing that both server architectures are able to optimally handle 50 users with a maximum throughput of 4.6 s on multiple virtual servers and 4.9 s on a single server are shown in Table 5.For optimum results for concurrent users, shown in Figure 8, From this test, it was found that the value of concurrent users was appropriate [42].The maximum concurrent users obtained in the test show the results of the multiple virtual server-side architecture having better performance, which is able to handle a maximum of 100 users with an availability level of 80%, while the single server architecture is only able to handle as many as 80 users with an availability level of 78.4%.can be seen in Table 6.The optimum results for concurrent users are can be seen in Figure 9.  Based on the results obtained from the research, the performance of the multiple virtual server architecture is superior to the single server architecture by handling 20 more users in the system in the test scope when the system is tested for performance.

V. CONCLUSIONS
Based on research data, the UBMP performance test model is a testing model that is comprehensive, effective, and accurate and can be applied to systems with web-based applications implemented in Proxmox Virtual Environment (PVE).Multiple virtual server-side architectures combined with the application of reverse proxy and storage clustering techniques in research are able to optimally use existing resources and are more efficient, effective, and superior in performance than single server architectures.Multiple virtual server-side architectures can not only be applied to e-learning systems but can also be applied to other web-based application systems.Further development is needed regarding the network architecture design used in research to obtain more optimal performance and efficiency in the implementation of Proxmox Virtual Environment (PVE).

Table 1 :
Multiple Virtual Server-Side Architecture Specification.

Table 2 :
Single Server Architecture Specification.

Table 4 :
CPU Usage in Gradient Value Search.

Table 5 :
Finding Optimum Concurrent Users Value Through Maximum Throughput.

Table 6 :
Finding Maximum Concurrent Users Value Through The Availability.