Ii CLIENT SERVER APPLICATION for SERVER FARM
Total Page:16
File Type:pdf, Size:1020Kb
ii CLIENT SERVER APPLICATION FOR SERVER FARM PERFORMANCE MONITORING ABDIRASHID HASSAN ABDI A project submitted in partial fulfillment of the requirements for the award of the degree of Master of Computer Science (Information Security) Faculty of Computer Science and Information Systems Universiti Teknologi Malaysia JUNE 2012 iii “Dedicated to my beloved family and friends, without their understanding, supports, and most of all love, the completion of this work would not have been possible.” iv ACKNOWLEDGEMENT First and foremost, I would like to thank Allah because of His blessings; I would be able to successfully complete this dissertation. My word of appreciation goes to Dr Ismail Fauzi Isnin for his priceless supervision, inspiring discussion and fruitful collaboration. I am thankful for all his invaluable hours to provide constructive critics, enthusiasm, immerse knowledge and continuous feedback. Without his continued support and patience, this dissertation would not have been the same as presented here. My thanks also extend to my friends, for their enlightening companionship and encouragement of trudging through all the moments from down to up the hill in the run to complete this Master program. I would not have done it without the help and motivation from all of you. To my family, no words can describe my gratefulness for always being there despite of the distance. They showered me with love and compassion and enrich my life like no other. They are the source of comfort and kept me focus the priorities in life and therefore, this work is dedicated to them. v ABSTRACT Workstation/PC server farms have become a cost-effective solution for high performance computing. Server farm or server cluster is a collection of computer servers usually maintained by an enterprise to accomplish server needs far beyond the capability of one machine. Server farms often have backup servers, which can take over the function of primary servers in the event of a primary server failure. It is critical and important to monitor, control, and manage servers and various resources. To address this issue, it needs present a performance monitoring tool used for such cluster-based on client server systems, which can monitor resources such as CPU utilization, memory usage, disk utilization and network bandwidth from time to time. The design of the monitoring tool enables certain flexibility and extensibility to scale up. Information of server resource and performance will be displayed in the format of charts, and will be refreshed within specified interval. Experiments based on a prototype system demonstrate that the tool can measure and collect necessary data as needed and then visualize them by certain charts, exhibiting feasibility and good usability. vi ABSTRAK Stesen kerja atau ladang pelayan telah menjadi penyelesaian yang kos efektif untuk pengkomputeran yang berprestasi tinggi. Ladang pelayan atau pelayan berkelompok adalah gabungan pelayan komputer yang biasanya dikendalikan oleh syarikat untuk mencapai keperluan pelayan jauh di luar kemampuan sebsah mesin. Ladang pelayan sering mempunyai salinan pelayan dimana ia boleh mengambil alih fungsi pelayan utama apabila pelayan utama mengalami kerosakan. Ia adalah kritikal dan penting untuk memantau, mengawal dan menguruskan pelayan dan sumber- sumber yang lain. Untuk menangani masalah ini, ia memerlukan system aplikasi pemantauan prestasi yang digunakan kepada sekelompok pelayan, yang boleh memantau pelbagai sumber seperti penggunaan CPU, penggunaan cakera dan rangkaian lebar dari semasa ke semasa. Rekabentuk sistem aplikasi pemantauan prestasi ini membolehkan flesibiliti dan kebolehpanjangan skala meningkat. Maklumat akan dipapar dalam format carta dan akan disegarkan dalam selang masa tertentu. Eksperimen berdasarkan kepada sistem prototaip yang menggambarkan system aplikasi ini boleh menilai dan mengumpul data yang berkaitan dan digambarkan ke dalam bentuk carta dan menunjukkan kebolehgunaan yang baik. vii TABLE OF CONTENTS CHAPTER TITLE PAGE DECLARATION ii DEDICATION iii ACKNOWLEDGMENT iv ABSTRACT v ABSTRAK vi TABLE OF CONTENTS vii LIST OF TABLES xi LIST OF FIGURES xiii LIST OF APPENDICES xv 1 RESEARCH OVERVIEW 1.1 Introduction 1 1.2 Problem Background 3 1.3 Problem Statement 5 1.4 Project Aim 5 1.5 Objectives of the project 5 1.6 Scope of the project 6 1.7 Organization of report 6 2 LITERATURE REVIEW 2.1 Introduction 8 2.2 Background Study of the Research 10 ix 2.3 General issues on a server farm 11 2.3.1 Multiple cable system in one physical 13 2.3.2 Inspection of Traffic Don’t Change the Requirements 16 2.3.3 High availability Becomes Even More Critical 17 2.3.4 Planning Capacity is hard 19 2.3.5 Virtual Machines Mobility makes difficult Security 22 2.3.6 Security Virtualizing goes with Servers Virtualizing 23 2.4 Basic Concepts of Performance Measurement 25 2.4.1 Performance parameters 27 2.4.1.1 CPU utilization 27 2.4.1.2 Memory Utilization 27 2.4.1.3 Disk usage 28 2.4.1.4 Network bandwidth 29 2.5 System Monitoring 31 2.5.1 Monit Tool 31 2.5.2 Nagios Tool 33 2.5.3 Ganglia Tool 34 2.5.4 Card Tool 36 2.5.5 Parmon Tool 36 2.7 Chapter Summary 41 3 RESEARCH METHODOLOTY 3.1 Introduction 42 3.2 Operational Framework 42 3.2.1 Analysis tools of monitoring servers 46 3.2.2 Data Analysis Methods 46 3.2.3 Project Schedule 46 3.2.4 Prototype methodology 46 3.3 Use case of the proposed tool 48 3.4 Software And Hardware Requirements 53 3.4.1 Software Requirements 53 3.4.2 Hardware Requirements 54 3.5 Summary 55 x 4 DESIGN PHASE 4.1 Introduction 56 4.2 Architecture of proposed system 57 4.3 Proposed Tool flowchart. 59 4.4.1 Server side flowchart 59 4.4.2 Client side flowchart 60 4.4 Monitoring Nodes 61 4.5 Techniques and Algorithms of the Proposed Tool 62 4.5.1 Client side algorithm 62 4.5.2 Server algorithm 64 4.5.3 Registered User and Organization algorithm 65 4.6 Retrieving Data 67 4.7 Design of proposed system 68 4.8 Chapter Summary 69 5 IMPLEMENTATION AND RESULTS 5.1 Introduction 70 5.2 Testbed for the Proposed Tool 71 5.2.1 Test Case 1 72 5.3 Server farm monitoring tools and proposed tool comparison 83 5.8 Chapter Summary 84 6 Conclusion and Recommendation 6.1 Introduction 85 6.2 Concluding Remarks 85 6.3 Contributions 87 6.4 Future works and recommendation 88 6.8 Chapters Summary 89 REFFERENCE 90 APPENDIX A 95 xi LIST OF TABLES TABLE NO TITLE PAGE 2.1 Causes of high performance consumption for server farm 30 2.1 Comparing core functions in different monitoring tools 39 2.2 Comparing mechanisms in different monitoring tools 40 3.1 Details of operational framework 44 3.2 Use Case Description for client module 50 3.3 Use Case Description for server module 52 3.4 Software requirements 53 5.1 Comparison core functions of existing tools and proposed tool. 83 xii LIST OF FIGURES FIGURE NO TITLE PA GE 2.1 Literature review map 9 2.2 Overview of monit 32 2.3 An overview of Nagios 33 2.4 Ganglia architecture 35 2.5 PARMON architecture 38 3.1 Project Operational Framework 43 3.2 System prototyping 47 3.3 Evolutionary Prototyping 48 3.4 Use Case Diagrams for client side 49 3.5 Use Case Diagrams for server side 51 4.1 The architecture of the proposed tool 57 4.2 Flowchart of server side on proposed system 59 4.3 Flowchart of client side on proposed system 60 4.4 Pseudo code of the client 63 4.5 Pseudo code of the server 64 4.6 Registered User and Organization Algorithm 66 4.7 Code to get available Memory and CPU usage 67 4.8 Design of server side of proposed tool 68 5.1 Configuration of testbed 71 5.2 Main interface of the central monitoring 73 5.3 Adding New Client 74 5.4 Client list form 74 xiii 5.5 Choose client form 75 5.6 Choosing performance type 76 5.7 Performance monitoring 77 5.8 Removing Counter 78 5,9 Change color 79 5.10 System information 80 5.11 CPU information 80 5.12 Memory information 81 5.13 Disk information 82 5.14 Network Bandwidth 82 xiv LIST OF APPENDICES APPENDIX TITLE PAGE A Gantt chart 95 xv CHAPTER 1 PROJECT OVERVIEW 1.1 Introduction Now days every business linked to the Internet and also managing and organizing e-business within each application, these applications are often prepared within server farm. Server farm is a collection of servers or clusters in a secure; who an internet seats vital needs on servers, to perform a solid reliable well-organized service to clients. Servers must be flexible to failures, also able to hold significant numbers of requests, and able to answer those needs fast. A server farm also known as group of computers that helps the needs of organization that are not easily met by single computer. These computers are placed in single house or housed different in locations(Heo et al., 2011). In 1980s can improve the performance of the computer by creating more capable processors and quicker believed by several computer scientists. But in 1990s, the concept of clustering was challenging this idea (Buyya, 2000), which fundamentally means interconnecting two or more computers to achieve shared functions as a single system. Actually the computers are extremely connected to each other and collectively support the server needs and handle additional load that is placed on the server. This additional load is distributed among the different farm computers and different server components.