Linux palvelimena #2 – kuormitus ja analysointi

Tehtävä:

  • Kerää kuormitustietoja munin -ohjelmalla
  • Kuormita konetta stress:llä
  • Käytä tunnilla käytyjä työkaluja arvioidaksesi kuormitusta: cpu, mem, io…
  • Lopuksi analysoi munin keräämiä käyriä
  • Aiheuta valitsemaasi lokiin muutamia rivejä ja analysoi niistä 2-3 riviä perusteellisesti

Ennakkotiedot

Suoritin järjestelmän kuormitus- ja tarkkailutehtävän edellisen tehtävän johdosta asennetulla koneella.

Kuormitustietojen kerääminen ja järjestelmän kuormitus

Tehtävänannon mukaisesti käytin munin -ohjelmaa. Kaikessa yksinkertaisuudessaan sen ideana on kerätä tietoja järjestelmän kuormituksesta ja raportoida ne graafisten käyrien avulla.

Muninin asennus:
sudo apt-get update
sudo apt-get install munin
Testaus:
firefox /var/cache/munin/www/index.html

Munin vaikutti toimivan www-sivun avautumisen perusteella. Tässä vaiheessa kuormitusta esittävät käyrät näyttivät hyvin tyhjiltä.

Järjestelmän kuormittamiseen asensin stress -ohjelman:
sudo apt-get install stress
Testasin toiminnan avaamalla kaksi terminal -ohjelmaa. Ensimmäiseen käynnistin topin:
top
Toisella terminalilla suoritin kuormittamista:
stress -c 1

stress_test_with_top

Kuormituksen arviointi

Järjestelmän tilan tarkkailuun avasin neljä terminaalia. Kahteen avasin top ohjelman. Sorttasin topit siten, että toinen näytti prosessit prosessorin käytön mukaan(cpu top) ja toinen muistin käytön perusteella(mem top). Kolmanteen terminaaliin avasin iotopin komennolla: sudo iotop -oa. Neljännessä terminaalissa seurasin muistin ja swapin käyttöä ajelemalla komentoa: free -m. Lisäksi tarkkailin lämpötiloja psensors -ohjelmalla.

Ennen testailun aloittamista nollasin swapin askubuntu.comin ohjeen mukaan, jotta sen käytön seuraaminen olisi helpompaa.
sudo swapoff -a
sudo swapon -a

Aluksi kuormitin konetta komennolla:
stress --cpu 8 --io 8 --vm 1 --vm-bytes 1028M

stressing1

Päätelmät kuvasta:

  • Prosessoria käytetään täydellä teholla (userin toimesta 57,6% ja systemin toimesta 42,4%)
  • Muistin käyttö on vähäistä ja swapin lähes olematonta
  • Kiintolevyltä ei lueta eikä sinne kirjoiteta

Seuraavaksi halusin kiintolevylle tapahtumia ja lisäsin stressille parametrin –hdd.
stress --cpu 8 --io 8 --hdd 1 --vm 1 --vm-bytes 1028M

stressing2

Kiintolevyllä rupesi heti tapahtumaan. Kuvassa sinne kirjoitetaa 170.28M vauhdilla. Psensorista on helposti nähtävissä kuinka prosessorin lämpötila laskee kuormitustestien välissä.

Tähän mennessä swap osio on saanut olla varsin rauhassa. Halusin testata sen käyttäytymistä ja muokkasin stressin –vm parametria.
stress --cpu 8 --io 8 --hdd 1 --vm 10 --vm-bytes 1028M

stressing3

Vasemman alanurkan free -m osoittaa tyylikkäästi kuinka ennen testin aloitusta keskusmuistia on vapaana 5119m ja testin aloituksen jälkeen luku romahtaa arvoon 283m. Myös swap osio otetaan heti käyttöön ja sen seurauksena kiintolevylle kirjoitus kasvaa ja sieltä ruvetaan lukemaan.

Munin analysointi

Asensin muninin hyvissä ajoin ennen tämän raportin kirjoitusta. Tavoitteenani oli saada aikaan vähän enemmän käyriä. Alunperin tarkoituksenani oli käyttää järjestelmää satunnaisesti ja muun ajan antaa pyöriä omalla painollaan. Stressiä testaillessa olin kuintekin unohtanut sen päälle. Huomasin tapahtuneen erehdyksen CPU usage – by week käyrästä.

cpu-week

Viikko näkymä osoittaa login keräämisen aloitusajankohdaksi (=munin asennus) 28.1.2014 noin klo.12.00. Aluksi prosessoria on kuormitettu noin puolella teholla. Tämän jälkeen noin 6:n tunnin ajan järjestelmä on saanut huilata, kunnes olen aloittanu stress testin ja unohtanut sen käyntiin.

cpu-day

Päivä näkymästä näki vielä tarkemmin unohtuneen stress testin. Kuten myös ajankohdan jolloin huomasin tapahtuneen ja tapoin stress prosessit. Lopussa on vielä tapahtumat jotka syntyivät tässä postauksessa kuvaamistani testeistä.

mem-day

Memory usage – by day käyrästä on niin ikään hyvin nähtävissä stress kohellukseni. Lisäksi voidaan päätellä järjestelmässä olevan 8GB keskusmuistia, joka on ollut varsin riittävä ja vapaata tilaa on ollut reilusti. Oikeasta yläkulmasta on nähtävissä merkkejä swap osion käytöstä, jotka ovat seurausta stress kokeiluista.

uptime-week

Uptime – by week osoittaa järjestelmän käynnistyneen 28.1.2014 noin klo 12.00 ja olevan edelleen käynnissä.

Loki merkinnän aiheuttaminen ja analysointi

Asetin tavoitteeksi merkinnän aiheuttamisen auth.logiin.

Seurasin lokin tapahtumia komennolla:
tail -f /var/log/auth.log
Avasin uuden terminaalin ja ajoin komennon:
sudo adduser lokitesti
Ohjelma pyysi asettamaan käyttäjälle salasanan ja perustiedot. Samaan aikaan seurasin auth.login tapahtumia. Käyttäjän luonti aiheutti seuraavat merkinnät:

Jan 30 15:06:56 tuukka-xubuntu sudo:   tuukka : TTY=pts/1 ; PWD=/home/tuukka ; $
Jan 30 15:06:56 tuukka-xubuntu sudo: pam_unix(sudo:session): session opened for$
Jan 30 15:06:56 tuukka-xubuntu groupadd[1575]: group added to /etc/group: name=$
Jan 30 15:06:56 tuukka-xubuntu groupadd[1575]: group added to /etc/gshadow: nam$
Jan 30 15:06:56 tuukka-xubuntu groupadd[1575]: new group: name=lokitesti, GID=1$
Jan 30 15:06:56 tuukka-xubuntu useradd[1579]: new user: name=lokitesti, UID=100$
Jan 30 15:07:02 tuukka-xubuntu passwd[1587]: pam_unix(passwd:chauthtok): passwo$
Jan 30 15:07:02 tuukka-xubuntu passwd[1587]: gkr-pam: couldn't update the login$
$mation
Jan 30 15:07:04 tuukka-xubuntu chfn[1588]: changed user 'lokitesti' information
Jan 30 15:07:06 tuukka-xubuntu sudo: pam_unix(sudo:session): session closed for user root

Lokin jokainen rivi alkaa aikaleimalla, joka kertoo merkinnän kirjaamisen ajankohdan.

Ensimmäisellä rivillä kerrotaan sudo käskystä käyttäjän tuukka toimesta. Sudolla luodaan käyttäjä lokitesti adduser komennolla.

Toisella rivillä ilmoitetaan istunnon avaamisesta (session opened) root käyttäjälle. Tästä voidaan päätellä käyttäjän tuukka antaneen oikean root salasanan, joka vaaditaan sudo käskyn toimimiseen.

Seuraavat seitsemän riviä kertovat adduser -ohjelman vaiheista käyttäjän luonnissa ja sen asetuksien asettamisessa. Näistä selviää mm. käyttäjän ryhmä ja kotihakemiston sijainti.

Lopuksi kerrotaan root käyttäjän istunnon päättyneen. Josta voidaan päätellä adduser ohjelman suorittaneen käyttäjän luonnin loppuun.

Lähteet:

http://askubuntu.com/questions/1357/how-to-empty-swap-if-there-is-free-ram

http://terokarvinen.com/2013/aikataulu-%E2%80%93-linux-palvelimena-ict4tn003-11-ja-12-kevaalla-2014

Karvinen, Tero: Oppitunnit 2013-01-27, Linux palvelimena -kurssi

2 Replies to “Linux palvelimena #2 – kuormitus ja analysointi”

  1. […] Linux palvelimena #2 – kuormitus ja analysointi […]

Leave a Reply