Linnéuniversitetet Projektrapport Grundläggande Operativsystem 1DV415 Prestandatest av sekventiella läs- och skrivoperationer i UNIX-liknande operativsystem 4 hp Dennis Svensson, Jesper Åkerberg 8 januari 2014
Innehåll 1 Introduktion............................. 2 1.1 Operativsystem........................ 2 1.2 ext4 Filsystem........................ 3 1.3 Prestandatester........................ 3 1.4 Verktyg............................ 3 1.5 Maskiner........................... 4 1.6 Metod............................. 4 1.7 Syfte.............................. 4 2 Experiment.............................. 5 2.1 Installation och kommandon i Ubuntu........... 5 2.2 Installation och kommandon i Linuxmint......... 6 2.3 Installation och kommandon i Fedora........... 6 2.4 Analys av insamlad data................... 6 2.5 Resultat............................ 6 3 Slutsats................................ 14 1
Sammanfattning Denna rapport kommer att undersöka prestandaskillnaderna av de sekventiella läs- och skrivoperationerna i tre olika Unix-liknande operativsystem. Med hjälp av prestandaverktygen IOzone, Bonnie++ och det inbyggda dd-kommandot har de olika operativsystemen prestandatestats för att få fram kvantierbara resultat. Rapporten kommer även belysa de tillvägagångssätt som använts för att kunna installera testverktygen för att sedan utföra experimentet. Samtliga tester har utförts i en virtuell miljö med hjälp av programmet VMware Workstation 10. Testerna visar att Linux Mint i de esta fallen presterar bättre än de andra operativsystemen, både i läs- och skrivoperationer.
1 Introduktion Det här stycket kommer att innehålla information om hur utformningen av experimentet har gått till samt bakgrundsinformation till den teknik, programvaror, mätverktyg samt relevansen utav denna studie. Här kommer dessutom avgränsningar av studien tas upp. 1.1 Operativsystem Operativsystemet är kärnan i ett datorsystem, den förser användaren med ett graskt gränssnitt för att kunna köra sina program. Operativsystemet ligger som ett lager mellan hårdvaran och de applikationer som körs på datorn. Systemanrop skickas ut och tas hand av operativsystemet för att lokalisera den eller de hårdvaror som behöver utnyttjas för en särskild operation. Några vanliga operationer som utförs utav operativsystemet är I/O-hantering, processhantering, minneshantering och lhantering. [1] Ubuntu Ubuntu är ett gratis operativsystem som utvecklades av Mark Shuttleworth och hans team vilka kom att bli kända som Canonical. Målet med ubuntu var att utveckla ett användarvänligt operativsystem som dessutom skulle vara gratis. Den första utgåvan av Ubuntu släpptes i oktober 2004 och har sedan dess skapat sig ett namn inom datorvärlden. Ubuntu ges ut under GNU GPL/LGPL vilket är upphovslicenser för fri programvara. Ubuntu är byggt på linuxkärnan som är en monolitisk kärna vilket betyder att processer körs som en del av kärnan vilket bidrar till ett mer eektivt processamarbete. Om ett fel uppstår i kärnan så kommer hela systemet att sluta fungera. Motsatsen till en monolitisk kärna är en mikrokärna, vilket lägger mest kraft på att vara som ett stöd till processer med bland annat resurshantering för minne, schemaläggning av processortid och kommunikation mellan processer, medan all annan funktionalitet körs som separata användarprocesser. [2] Fedora Operativsystemet är en linuxdistribution i samma anda som ubuntu, men har istället sitt ursprung från Red Hat Enterprise Linux. Fedora är kanske inte lika känt som ubuntu men är en av de större linuxdistributionerna. Fedora liksom ubuntu ges ut under GNU GPL licensen. Den första distributionen utgavs i september 2003 och är nu uppe i sin 20:e utgåva som släpptes i December 2013. [3] Linux Mint Linux Mint är en linuxdistribution som är baserat på Ubuntu och utger sig för att vara ett modernt, kraftfullt och användarvänligt operativsystem. Den hade sin första utgåva 2006 och har sedan dess släppt två nya utgåvor per år, den senaste versionen är Linux Mint 16. I början använde Linux Mint samma källkod som Ubuntu 6.10 men med efterföljade utvgåvor utvecklades källkoden till att bli en egen. Detta operativsystem ges också ut under GNU GPL licensen. [4] 2
1.2 ext4 Filsystem Ext4, fourth extended lesystem, är ett lsystem för Unixbaserade operativsystem, och är för närvarande standard i nya installationer. Filsystemet stödjer volymstorlekar på upp till 1 EiB och lstorlekar upp till 16 TiB. Ext var från början det första lsystemet som använde ett virtuellt lsystem, VFS. Ett virtuellt lsystem presenterar ett enskilt gränssnitt för processer att hämta information ifrån. Det presenterar alla ler på datorn och nätverket som om de vore i samma masslagring utan att processerna märker någon skillnad. Samtliga operativsystem som använts i detta experiment har testats med ett ext4-lsystem. [5] [6] 1.3 Prestandatester För att driva utvecklingen framåt så har prestandatester varit en viktig roll inom IT-världen. Med hjälp av prestandatester har utvecklare enkelt kunna testa sina produkter såväl som konkurrenternas, och på så sätt har förbättringen av hårdvaruprestanda ökat från 25% till 50% per år. Även om prestandatester är särskilt utvecklade för att testa hårdvara så kan detta även appliceras på operativsystem, då det är operativsystemets roll att reglera hur hårdvaran ska hanteras. [7] 1.4 Verktyg Detta stycke kommer att belysa de verktyg som har använts för att uppnå de kvantierbara resultaten. IOZone Iozone är ett prestanda verktyg som genererar och mäter olika loperationer, den analyserar I/O prestandan genom att utföra en rad olika tester för dessa operationer: Read, Write, re-read, re-write, read backwards, read strided, fread, fwrite, random read, pread, mmap, aio_read, aio_write. Testerna som utförs förmedlar kvantierbar information om systemet och har dessutom stöd för en grask presentation av resultaten. [8] Bonnie++ Ett prestandaverktyg för test utav hårddiskar och lsystem som utförs genom dessa operationer: Sekventiell skrivning och läsning, slumpvis skrivning och läsning samt metaoperationer som att skapa och radera ler och kataloger. [9] dd kommando dd är ett kommando som nns i UNIX och UNIX-liknande operativsystem, vars funktion är främst att konvertera och kopiera ler. Detta kommando kan också användas till att köra prestanda test på den sekventiella läs- och skrivhastigheten i ett system. 3
VMware Workstation Detta program är ett virtualiseringsverktyg för skapandet av virtuella maskiner. VMware workstation tillåter en fysisk maskin att köra era olika operativsystem samtidigt. 1.5 Maskiner Den fysiska maskinen CPU: Intel Xeon @ 2.80GHz 8 Kärnor RAM: 12GB De virtuella maskinerna CPU: Intel Xeon @ 2.80GHz 4 Kärnor RAM: 1GB Versioner av operativsystemen samt verktygen Ubuntu 12.04 LTS (Long Term Support), 64-bit, (Precise Pangolin) Fedora 20, 64-bit, (Heisenbug) Linux Mint 16, 64-bit, (Petra) Iozone v.3.420-i386 Bonnie++ v1.03 VMware Workstation 10 1.6 Metod Utformningen utav denna rapport och experimentet den bygger på har baserats på en litteraturstudie där kunskap inom ämnet för utförandet av experimentet har samlats in. Rapporten baseras dessutom på kvantierbara resultat och för att uppnå tillförlitliga resultat har verktyg som är väl etablerade använts. Prestandatesterna har utförts i programmen Iozone, Bonnie++ och kommandot dd, samtliga tester har körts för att få fram resultat i den sekventiella läs- och skrivhastigheten i systemen. I Iozone har tester mätts för tre olika lstorlekar: 1MB, 512MB och 1GB. Dessa tester har utförts tre gånger vardera och sedan sammanställts till ett medelvärde. I Bonnie++ utfördes testerna under samma omständigheter fast med lstorleken 2GB. Testerna i dd kommando genomfördes på samma sätt som Bonnie++. 1.7 Syfte På senare år har de UNIX-liknande operativsystemen fått allt mer uppmärksamhet då de utvecklas och förbättras ständigt samt är kostnadsfria. Syftet med att testa tre olika UNIX-liknande operativsystem och dess läs- och skrivförmåga, är för att testa hur de olika etablerade operativsystemen presterar, då prestandan är en viktig del för användare utav operativsystem. 4
Avgränsning Experimentet begränsades till att utföra tester på två operationer: sekventiella läs- och skrivhastigheter, samt att applicera dessa tester på tre olika operativsystem. Dessa begränsningar implementerades då tidsramen för experimentet inte tillät ytterligare tester. 2 Experiment Här beskrivs hur de olika testerna på operativsystemet har utförts. Detta kapitel kommer även att belysa vad man måste tänka på när prestandatest utförs. 2.1 Installation och kommandon i Ubuntu För att testerna på de olika Unix-distributionerna skall kunna utföras var testverktygen tvungna att installeras först. - IOzone installerades med följande kommando: sudo apt-get install rpm cd /tmp #wget http://www.iozone.org/src/current/iozone-3-420.i386.rpm #rpm ivh iozone-3-420.i386.rpm Detta kommando installerar rpm, och hämtar rpm-paketet för installation av IOzone från www.iozone.org och sedan installerar det. Efter installationen av IOzone var klar påbörjades testerna. IOzone kongurerades att läsa och skriva ler som är varierande i storlek; 1mb, 512mb och 1024mb. Processor-cachen är inställd till 1024 Kb. Det skapas även ett excel-dokument som visar resultaten. Dessa tester exekverades tre gånger. För att starta testet med dessa inställningar användes detta kommando: Iozone - Ra -s 1 (eller 512/1024)m -S 1024 -i 0 -i 1 -b namn.xls - Bonnie++ installeras med följande kommando: apt-get install bonnie++ Efter installationen påbörjades testerna. 100 (default) ler skrevs upp till 2 GB totalt. Kommandot för att exekvera detta test: bonnie++ -s 2048 Efter testerna med Bonnie++ var slut påbörjades tester med hjälp av ddkommandot i terminalen. Filer på 1mb skapades upp till 2 GB: 5
Write: dd if=/dev/zero of=test bs=1m count=2000 oag=dsync Read: dd if=/home/namn/test of=/dev/null bs=1m oag/dsync 2.2 Installation och kommandon i Linuxmint IOzone installerades genom den förinstallerade applikationen programhanteraren i Linuxmint. För att installera Bonnie++ användes detta kommando: apt-get install bonnie++ När installationerna var klara startades testerna. Alla tester i Linuxmint med de olika testverktygen kördes med samma parametrar och kommandon som kördes i Ubuntu. Testerna utfördes i samma ordning och med samma förutsättningar. 2.3 Installation och kommandon i Fedora IOzone installerades med följande kommando: yum install iozone Därefter installerades Bonnie++ med kommandot: yum install bonnie++ När installationerna av verktygen var klara initierades testerna med samma parametrar och kommandon som testerna i Ubuntu och Linuxmint. 2.4 Analys av insamlad data Efter de resultat verktygen har samlat in kopieras det in i ett excel-dokument för att få ut en tydlig bild av de erhållna resultaten. I excel-dokumentet görs diagram för att jämföra de olika operativsystemens resultat. Resultaten som samlats in har adderats ihop och dividerats med antal gånger testerna kördes för att ge ett medelvärde som blir enklare att jämföra med. Nedan visas resultat från de olika testverktygen. 2.5 Resultat IOzone-testerna exekverades med tre olika lstorleks-parametrar och kommer att presenteras i storleksordning. IOzone skriver också med olika blockstorlekar. 6
Figur 1: Skrivhastighet 1MB, IOzone I diagramet ovan visas hastigheter när ler med en storlek på 1MB skrivs till disk med olika blockstorlekar. Det man kan se i detta diagram är att operativsystem presterar bättre ju högre blockstorlek som används. Ubuntu presterar bäst med blockstorlekar mellan 32kb-256kb. 7
Figur 2: Läshastighet 1MB, IOzone Detta diagram visar läshastigheten för en l som har en storlek på 1MB. Även här presterar Ubuntu något bättre än de andra operativsystemen, förutom när en blockstorlek på 32 KB används då Linuxmint presterar något bättre. Gemensamt för alla operativsystem är att de alla presterar bäst när en blockstorlek på 1024 KB används. 8
Figur 3: Skrivhastighet 512MB, IOzone Då Fedora inte klarade av att testas när parametern för lstorlek sattes på 512MB kommer Fedora ligga på 0 i de resterande IOzone-resultaten. I denna gur ser vi att Linuxmint i stort sett har övertaget oavsett vilken blockstorlek som används. Ubuntu ligger mellan 50-65 MB/s medan Linuxmint ligger mellan 60-80 MB/s. Figur 4: Läshastighet 512MB, IOzone Figur 4 visar läshastigheten när lstorleken är 512 MB. Linuxmint ligger stabilt runt 80 MB/s och presterar bäst oavsett blockstorlek. 9
Figur 5: Skrivhastighet 1024MB, IOzone Ovan ser vi ett diagram över skrivhastigheten när en l på 1024 MB skrivs till disk. Linuxmint presterar återigen bättre, mest i de lägre blockstorlekarna. Ubuntu ligger väldigt stadigt runt 50 MB/s medan Linuxmint är ostadigare men bättre presterande. Figur 6: Läshastighet 1024MB, IOzone Diagramet visar läshastighet när lstorleken är 1024 MB. Här ser vi att de värden som presenteras är relativt stabila. Linuxmint presterar bättre med en läshastighet runt 75 MB/s oavsett blockstorlek medan Ubuntu presterar ungefär 1/3 av vad Linuxmint gör. 10
Figur 7: Skrivhastighet, Bonnie++ I guren ovan ser vi att Linuxmint presterar bättre när ler på 100 MB skrivs med en total storlek på 2 GB. Linuxmint ligger strax under 45 MB/s medan Ubuntu ligger på 37 MB/s. 11
Figur 8: Läshastighet, Bonnie++ Diagramet visar att även när en l på 2 GB läses presterar Linuxmint i liten grad bättre. Linuxmint har en genomsnittlig läshastighet på 56 MB/s medan Ubuntu har en läshastighet på 52 MB/s. 12
Figur 9: Skrivhastighet, dd-kommando När en lstorlek på 2 GB skrivs till disk 1 MB i taget presterar Ubuntu och Fedora ungefär jämnlikt med en hastighet runt 66 MB/s. Linuxmint nner man en bit lägre med en hastighet på 52 MB/s. 13
Figur 10: Läshastighet, dd-kommando En markant skillnad från skrivhastigheten ser vi här då Fedora kan leverera en läshastighet på 162 MB/s. Ubuntu och Linuxmint presterar ungefär 55% av vad Fedora presterar med hastigheter på runt 90 MB/s. 3 Slutsats Resultaten visar att i genomsnitt presterar Linux Mint bäst enligt testerna med IOzone och Bonnie++. När testerna kördes med dd-kommandot så var Fedora avsevärt bättre än de andra på att läsa. Då Fedora endast kunde testas genom dd-kommandot och i första IOzone testet så går det inte att dra en slutsats hurvida Fedora presterar gentemot de andra två överlag. Vissa resultat vi ck där läs- och skrivhastigheterna uppnådde era 100-1000 MB/s var något oväntade. Men då måste man ta i åtanke att testerna utfördes i en virtuell miljö och läs- och skrivoperationerna utfördes inledningsvis på den stationära datorn, varpå skrivningen/läsningen skedde på en server i nätverket. Detta kan medföra avvikande resultat. Då Fedora inte fungerade med vissa tester spenderade vi väldigt mycket tid på att försöka lösa det utan resultat. Vi testade dels andra operativsystem som var uppbyggda likt Fedora, men lyckades inte. Det vi kunde ha gjort bättre var att nöja oss med två operativsystem och kört er tester på, t.ex random write/ random read på 4K. Dessutom kunde vi ha utformat testerna så att verktygen 14
använde samma parametrar. Något som skulle vara intressant att undersöka i framtiden är hur nyare Unixliknande operativsystem presterar gentemot äldre versioner. Det skulle även vara intressant att göra de tester vi utfört i en fysisk miljö där ler skrivs och läses direkt från den stationära datorns hårddisk. 15
Litteraturförteckning [1] H. Lunell. Datorn i världen, världen i datorn - En introduktion till dataoch informationsteknik. Studentlitteratur AB, 2011. p. 139,140. [2] W. Stallings. Operating Systems: Internals and design principles, volume 7. Pearson Education Limited, 2012. p. 91. [3] Fedora. About fedora. Online, 2013. http://fedoraproject.org/en/aboutfedora. [4] Linux Mint. About us. Online, 2013. http://www.linuxmint.com/about.php. [5] W. Stallings. Operating Systems: Internals and design principles, volume 7. Pearson Education Limited, 2012. p. 580. [6] Kevin D. Fairbanks. An analysis of ext4 for digital forensics, 2012. p. 118, 130. [7] D. Patterson. Technical perspective for better or worse, benchmarks shape a eld. Communications of the ACM, vol. 55, NO. 7, 2012. [8] William D. Norcott. Iozone lesystem benchmark. Iozone, 2013. www.iozone.org/docs/iozone_msword_98.pdf. [9] Russel Coker. Bonnie++. Online, 2001. http://www.coker.com.au/bonnie++. 16