Självständigt Arbete På Grundnivå Independent Degree Project - First Cycle
Total Page:16
File Type:pdf, Size:1020Kb
Självständigt arbete på grundnivå Independent degree project - first cycle Huvudområde Datateknik Resursoptimering i datacenter med utgångspunkt i serveroperativsystem Kristofer Olsson Daniel McKinnon Forsell MITTUNIVERSITETET Avdelningen för informations- och kommunikationssystem Examinator: Magnus Eriksson, [email protected] Handledare: Magnus Eriksson, [email protected] Författare: Kristofer Olsson, [email protected] Författare: Daniel McKinnon Forsell, [email protected] Utbildningsprogram: Nätverksdrift, 120 hp Huvudområde: Datateknik Termin, år: 04, 2015 ii Sammanfattning Allt fler företag flyttar sina datorsystem från att nyttja lokal infrastruktur till att åtnjuta utlokaliserad och centraliserad drift och infrastruktur i datacenter. Detta ökar kraven på datacenteroperatörerna dels externt för att maximera tillgängliga resurser för varje kund och dels internt för att vinstmaximera. Genom optime- ring kan företag således frigöra så mycket resurser som möjligt per investering till slutkund. Syftet med detta projekt är att undersöka om huruvida det går att identifiera några skillnader i hur effektivt Windows-baserade och Unix-lika operativsystem nyttjar tillgängliga resurser i datorsystem med utgångspunkt i rollen som webbserver. Projektet består av en kvantitativ undersökning av De- bian GNU/Linux, Gentoo Linux och Microsoft Windows Server 2012 samt hur dessa tre operativsystem nyttjar tillgängliga resurser i ett serversystem beträf- fande programvara ofta förknippad med webbservrar; Apache HTTP, Microsoft IIS och MySQL. Undersökningen visar att det är svårt att dra generella slut- satser och att det finns för- och nackdelar med respektive paradigm. Undersök- ningen visar dock att Unix-lika system helt byggda från källkod (Gentoo Linux) erbjuder en mycket signifikant fördel ur prestandasynpunkt beträffande Apache HTTP och antalet simultana besökare systemet kan hantera. Undersökningen visar också att Windows Server 2012 är marginellt mer effektivt när det gäl- ler prestanda i primärminnet. Dessutom visar undersökningen att Microsofts egen webbserver, IIS, presterar avsevärt bättre än Apache i Windows Server 2012-miljö. De resultat som presenteras i denna rapport är reproducerbara och kvantifierbara för att assistera framtida forskningsprojekt. Abstract More and more companies move their computer systems from local infrastruc- ture to enjoy the benefits of outsourced and centralised operations and infras- tructure in data centres. This increases the demands on data centre operators, externally to maximise available resources for each customer, and internally to maximise profits by optimising resource consumption and thus free up as much resources as possible per investment to customers. The purpose of this project is to investigate whether or not there are differences in how effectively Windows-based and Unix-like operating systems utilise the available resources in computer systems on the basis of the role of a web server. The project consists of a quantitative survey of Debian GNU/Linux, Gentoo Linux, and Microsoft Windows Server 2012, and how these three operating systems utilise the available resources in a server system regarding software often associated with web servers; Apache HTTP, Microsoft IIS, and MySQL. The survey shows that it is difficult to draw general conclusions, but there are advantages and disadvantages related to respective paradigm. The survey shows, however, that Unix-like system completely built from source code (Gentoo Linux) provide very significant advantages from a performance point of view regarding the Apache HTTP server, and the number of simultaneous requests the system can serve. The survey also shows that Windows Server 2012 is marginally more effective in primary memory performance. In addition, the survey shows that Microsoft’s own web server, IIS, performs significantly better than Apache in a Windows Server 2012 environment. The results presented in this report are reproducible and quantifiable to aid future research projects. Innehåll 1 Inledning 1 1.1 Två paradigm . .1 1.2 Syfte . .2 1.3 Frågeställning . .3 1.4 Avgränsningar . .3 1.5 Rapportens struktur . .3 1.6 Arbetsfördelning . .3 2 Tidigare forskning 5 2.1 Öppna och proprietära system . .5 2.2 Windows och Linux i virtualiseringsmiljö . .5 2.3 Nätverksprestanda i Windows och Linux . .6 2.4 Gentoo Linux . .6 2.5 Utsikter för ytterligare forskning . .6 3 Tekniska fundament 7 3.1 Öppna och slutna operativsystem . .7 3.2 Operativsystem . .8 3.2.1 Gentoo Linux . .8 3.2.2 Debian GNU/Linux . .8 3.2.3 Windows Server 2012 . .9 3.3 Mätverktyg . .9 3.3.1 Apache HTTP Server Benchmarking Tool . .9 3.3.2 STREAM Benchmark . 10 3.3.3 Fio - Flexible I/O . 10 3.3.4 JMeter . 10 4 Experimentets genomförande 11 4.1 Experimentvariabler . 11 4.1.1 Oberoende variabler . 12 4.1.2 Beroende variabler . 12 4.2 Installation av serveroperativsystem med tillhörande mjukvara . 13 4.3 Mätverktyg . 14 4.3.1 Apache HTTP Server Benchmarking Tool . 14 4.3.2 Apache JMeter . 15 4.3.3 STREAM . 16 4.3.4 Fio - Flexible IO . 16 vii 5 Resultat 19 5.1 Prestandaoptimering av Gentoo Linux . 19 5.2 Prestandaundersökning av Apache HTTP . 19 5.3 Prestandaundersökning av Microsoft IIS . 20 5.4 Prestandaundersökning av primärminnet . 21 5.5 Prestandaundersökning av sekundärminnet . 21 5.6 Prestandaundersökning av MySQL . 23 6 Analys 29 6.1 Analys av mätdata för mätningar utförda på Apache HTTP och Microsoft IIS . 29 6.2 Analys av mätdata för mätningar utförda på MySQL Community 30 6.3 Analys av mätdata för mätningar utförda på primärminnet . 31 6.4 Analys av mätdata för mätningar utförda på sekundärminnet . 32 7 Diskussion och slutsats 33 7.1 Inledning och frågeställningar . 33 7.2 Projektets nyckelpunkter . 33 7.3 Potentiellt besvarande av frågeställningar . 34 7.4 Återkoppling till tidigare forskning . 35 7.5 Begränsningar i forskningen . 35 7.6 Etiska aspekter . 36 7.7 Framtida forskning . 36 7.8 Slutsats . 37 A Testparametrar 43 A.1 Apache HTTP Server Benchmarking Tool . 43 A.2 Fio - Flexible I/O . 43 A.3 Apache JMeter . 43 A.4 STREAM . 46 B Installation och optimering av Gentoo Linux 47 B.1 Optimering av kompilator . 47 B.2 Optimering av Gentoo Linux Kernel . 47 viii Tabeller 4.1 Oberoende variabler - Operativsystem . 12 4.2 Beroende variabler - Tjänster . 13 4.3 Hårdvaruspecifikation - Dell PowerEdge 1950 . 13 4.4 Mätverktyg . 15 5.1 Testresultat för Apache HTTP . 20 5.2 Testresultat för prestandaundersökning av Microsoft IIS . 21 5.3 Testresultat för prestandaundersökning av primärminnet (MB=s) 21 5.4 Testresultat för prestandaundersökning av sekundärminnet . 22 5.5 Testresultatet för prestandaundersökning av MySQL . 23 6.1 Analys av mätdata för Apache HTTP och Microsoft IIS . 30 6.2 Analys av mätdata för MySQL Community . 31 6.3 Analys av mätningar utförda på primärminnet (MB=s)...... 32 6.4 Analys av mätningar utförda på sekundärminnet (IOPS) . 32 ix Figurer 5.1 Testresultat för prestandaundersökning av Apache HTTP och Microsoft IIS . 24 5.2 Testresultatet från prestandaundersökning av MySQL . 25 5.3 Testresultatet från prestandaundersökning av primärminnet . 26 5.4 Testresultat från prestandaundersökning av sekundärminnet . 27 A.1 Konfiguration av databaskoppling i testmjukvaran JMeter . 44 A.2 Konfiguration av trådar, Ramp-Up-Period och antalet förfråg- ningar i testmjukvaran JMeter . 44 A.3 Konfiguration av SQL-syntax i testmjukvaran JMeter . 45 A.4 Konfiguration av slumpgeneratorn i testmjukvaran JMeter för va- riablerna user_id, order_id och result ............. 45 xi Benämning Förklaring PROPRIETÄR Programvara som är en persons eller ett företags egendom OPEN SOURCE Datorprogram vars källkod inte är proprietär utan är tillgänglig att använda, läsa, modifiera och vidaredis- tribuera för den som vill, ibland med vissa förbehåll SERVER System som betjänar andra system DEBIAN Unix-likt operativsystem som bygger på fri och öp- pen mjukvara och nyttjar bl.a. Linux-kärnan WINDOWS SERVER Operativsystem utvecklat av Microsoft GENTOO Unix-likt operativsystem som bygger på fri och öp- pen mjukvara och bl.a. nyttjar Linux-kärnan GENKERNEL Ett verktyg tillhandahållet av Gentoo Foundation för att automatisera byggprocessen av Linux-kärnan X64 Specificerar att det rör sig om 64-bitars arkitektur MYSQL Databasservermjukvara utvecklad av Oracle APACHE Webbservermjukvara utvecklad av Apache software foundation IIS Proprietär webbservermjukvara utvecklad av Micro- soft PRIMÄRMINNE Datorns primära minne även kallat RAM-minne SEKUNDÄRMINNE Datorns sekundära minne, t.ex. en hårddisk DATACENTER Fysisk eller virtuell infrastruktur för att drifta serv- rar och annan nätverksbaserad utrustning IOPS Input/Output Operations Per Second xii Kapitel 1 Inledning Allt fler företag använder sig av tredje parter för drift av datorsystem och sin infrastruktur. Ofta köper man tjänster från datacenter där man åtnjuter kost- nadseffektiv drift av olika former av informationssystem [28]. Effekten av detta är att företag som driver datacenter växer sig allt större med nya utmaningar som följd. En av dessa utmaningar är hur effektivt datacenter nyttjar befintliga resurser i datorsystem vilket direkt kan påverka kostnader och möjliga vinster för verksamheten [28]. Eftersom datorresurser kan vara kostsamma är det vik- tigt att effektivisera så mycket som möjligt. Ett sätt att åstadkomma detta är till exempel att implementera operativsystem som på ett så effektivt sätt som möjligt nyttjar de tillgängliga resurserna till den verksamhet som genererar in- komst för företaget. Därmed kan man minimera ineffektivt slöseri