Tuesday, February 4, 2014

Installing MUNIN & Using STRESS | Linux Palvelimena



AIHEALUE: Järjestelmäntilan seuranta ja prosessinhallinta.

KÄYTETYT LINUX OHJELMAT:
-MUNIN
-STRESS
-TOP
-IOTOP

Tämä harjoitus on osa Haaga-helian ammattikorkeakoulun "Linux Palvelimena"-kurssia. TEHTÄVÄNANTO Tero Karvisen blogista:
URL: http://terokarvinen.com/2013/aikataulu-%E2%80%93-linux-palvelimena-ict4tn003-11-ja-12-kevaalla-2014

h2:- 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

*******************************************************************************


KONEEN SPEKSIT:

HP Elitebook 8530p
Intel Core 2 Duo CPU P8600 @ 2.40GHz
4GB RAM

KÄYTTÖJÄRJESTELMÄ: Käytin harjoituksessa Xubuntun liveCD:eetä.






      RAPORTTI


Vaihdoin näppäimistön layoutin suomenkieliseksi.

 $ setxkbmap fi


1. MUNIN-Ohjelman asennus:

Laitoin Tero Karvisen kotisivuilla osoitteessa terokarvinen.com "Search"-hakukenttään "munin" ja löytyi bloggaus nimeltä "Munin Monitors your Ubuntu Linux - One Step Install". Noudatin ohjeita.

$ sudo apt-get update                        (pakettitietojen päivitys)

$ sudo apt-get -y install munin          (munin paketin nouto ja installointi)

Installointi meni nopeasti.
Tämän jälkeen ilmeisesti Munin jo monitoroi Xubuntuani.
Tämän pystyin tarkastamaan avaamalla firefox selaimella hakemiston:

/var/cache/munin/www/index.html

Tämä onnistui seuraavalla komennolla:

$ firefox /var/cache/munin/www/index.html

Komennolla aukesi muninin graafinen webbiselain käyttöliittymä. Aluksi sen näyttämät graafiset kuvaajat olivat tyhjiä. Tämä johtui siitä, että munin ei ollut vielä päivittänyt juuri keräämään alkaneita tietoja.





2.                                 STRESS
      - KUORMITA KONETTA STRESSILLÄ

Kokeilin asentaa koneelle STRESS-ohjelman komennolla.

$ sudo apt-get -y install stress

Asennus onnistui. Päätin etsiä ohjeita stressin käytöstä. Googlasin "How to use stress linux" enkä vakuuttunut näkemästäni joten kokeilin vielä "stress ubuntu" ja löysin selkeän artikkelin aiheesta.
URL: http://www.hecticgeek.com/2012/11/stress-test-your-ubuntu-computer-with-stress/

Artikkelin mukaan:

STRESS-ohjelman käyttötarkoitus: 
-Stress-ohjelma koettelee koneen prosessoria (CPU), keskusmuistia (RAM) sekä kovalevyä (HDD) (vain kirjoitustestit).
-stress-ohjelman suoritukselle voi asettaa haluamansa aikamäärän.
-stress ei anna mitään nopeuteen liittyviä tuloksia
-sitä voi käyttää work load generaattorina
-Ohjelmalla voi stressata joko kaikkia  tietokoneen osasia yksitellen tai
kerrallaan (CPU, RAM, DISK DRIVE)


Tässä vaiheessa päätin ottaa selville koneeni speksit terminaalin kautta
komennolla:

$ sudo dmidecode |less
(Lähde: http://ubuntuforums.org/showthread.php?t=1435015 )

Sain ylös seuraavanlaisia speksejä:
HP Elitebook 8530p
Intel Core 2 Duo CPU P8600 £ 2.40GHz
4GB RAM    2048MB DDR2 tyypin muistikampoja /(left ja right)

Palasin takaisin stress-test-ohjeeseen, jossa kehoitettiin kokeilemaan esim.
prosessoristressausta lukumäärällä, joka vastaa prosessorin ytimien määrää.

Esimerkiksi jos haluan "stressata" 2-ytimisen Intel Core 2 Duo-prosessorin
kumpaakin ydintä minun tulee syöttää stress-ohjelman komentoon cpu-kohdan
parametriksi 2 seuraavalla tavalla (luvun voi laittaa suuremmaksikin kuin
ytimien lukumäärä jos haluaa stressata oikein kunnolla):

$ stress -c 2

(Stress-ohjelmiston voi sammuttaa milloin tahansa painamalla ctrl+c tai
sulkemalla Terminalin ikkunan.)

Muistin stressaus: jos haluan stressata muistia niin komennoksi:

$ stress -m 4--vm-bytes 400M

...jossa numerolla 4 ilmoitan, kuinka monta prosessia stressi laittaa suoriu-
tumaan samanaikaisesti. Lisäämällä perään "--vm-bytes 400M" voin määritellä
suoritettavien prosessiin suurinpiirteisen koon (oletusarvona n. 256Megatavua).
(tämä stressitesti kuluttaa myös prosessoria)

Levyn stressaus:

$ stress -d 1

Luku 1 ilmoittaa prosessien määrän, joita käytetään diskin stressaukseen.
Oletusarvona "Stress" käyttää 1 Gigatavun tiedostokokoa jokaista prosessia
kohtaan. Tätä voi muuttaa lisäämällä komennon perään "--hdd-bytes"
(Ei kuluta paljon prosessoria).

$ stress -d 1 --hdd-bytes 300M


PÄÄTIN stressata prosessoria, RAMia ja kovalevyä samanaikaisesti säästääkseni aikaa.
niin, että kulutin intel core 2 duo-prosessorin kumpaakin ydintä (-c 2) sekä keskus-
muistia neljällä prosessilla, joista jokainen kooltaan n. 256megatavua (oletusarvo)
(-m 4) sekä päätin stressata kovalevyä kahdella prosessilla, joissa käytössä 1Gigatavun
tiedostokoko (oletusarvo) (-d 2).

$ stress -c 2 -m 4 -d 2

Tämän jälkeen minulle palautui seuraava näkymä Terminalista:

xubuntu@xubuntu:~$ stress -c 2 -m 4 -d 2
stress: info: [12899] dispatching hogs: 2 cpu, 0 io, 4 vm, 2 hdd
stress: FAIL: [12905] (584) write failed: No space left on device
stress: FAIL: [12902] (584) write failed: No space left on device
stress: FAIL: [12899] (395) <-- worker 12905 returned error 1
stress: WARN: [12899] (397) now reaping child worker processes
stress: FAIL: [12899] (395) <-- worker 12902 returned error 1
stress: WARN: [12899] (397) now reaping child worker processes
stress: FAIL: [12899] (452) failed run completed in 5s
xubuntu@xubuntu:~$
Jotain meni pieleen? Liittyykö siihen, että oli LiveCD-Ubuntu käytössä. Kokeilin vaihtaa lukuja:

$ stress -c 4 -m 2 -d 1

Kone alkoi pitämään ääntä ikään kuin sillä olisi
stressiä. Painoin ctrl+z  ja sen jälkeen syötin komennon $ bg , jotta
stressi juoksisi taustalla niin, että samalla voisin myös syötellä muita komentoja.
Halusin tarkastella samaan aikaan mitä saisin aikaan  $ top-komennolla.

 5375 xubuntu   20   0  574m 147m  38m S  30.5  3.7   3:34.76 firefox  
13266 xubuntu   20   0  2340   72    0 R  27.8  0.0   0:30.10 stress   
13268 xubuntu   20   0  3244 1100  120 R  23.9  0.0   0:30.15 stress   
13272 xubuntu   20   0  2340   72    0 R  22.9  0.0   0:29.92 stress   
13269 xubuntu   20   0  2340   72    0 R  21.2  0.0   0:29.92 stress   
13267 xubuntu   20   0  258m 3428  188 R  20.9  0.1   0:30.34 stress   
13270 xubuntu   20   0  258m  50m  188 R  20.2  1.3   0:29.69 stress   
13271 xubuntu   20   0  2340   72    0 R  20.2  0.0   0:29.59 stress   
 4688 root      20   0 86168  28m  13m S   9.3  0.7   1:42.21 Xorg     
 5322 xubuntu   20   0  118m  13m   9m S   0.7  0.3   0:03.54 xfce4-terminal
    9 root      20   0     0    0    0 S   0.3  0.0   0:02.68 rcu_sched
 1163 root     -51   0     0    0    0 S   0.3  0.0   0:13.47 irq/50-iwlwifi
 1283 root      20   0     0    0    0 S   0.3  0.0   0:05.09 kworker/0:3
 4809 xubuntu   20   0 25976  10m 8628 S   0.3  0.3   0:08.08 xfwm4    
13608 xubuntu   20   0  5472 1352  968 R   0.3  0.0   0:00.17 top      
    1 root      20   0  4144 2444 1396 S   0.0  0.1   0:03.36 init     
    2 root      20   0     0    0    0 S   0.0  0.0   0:00.00 kthreadd 
    3 root      20   0     0    0    0 S   0.0  0.0   0:01.66 ksoftirqd/0
    5 root       0 -20     0    0    0 S   0.0  0.0   0:00.00 kworker/0:0H  

Nyt top-näkymässä oli yhteensä 7 stress-prosessia.

Lopetin stressitestin CTRL+C ja päätin kokeilla Stress-manuaalista löytyvällä
esimerkillä ja katsoa mitä siitä seuraa (stressin kestoksi laitoin 500 sekuntia).

$ stress --cpu 8 --io 4 --vm 2 --vm-bytes 128M --timeout 500s

Tarkastelin manuaalia vähän lisää ja päättelin, että:

"--cpu" tarkoitti samaa kuin "-c" eli prosessorin
stressausta.

"--io" ilmeisesti viittasi johonkin mystiseen "spawn N workers spinning on sync()",
en oikein ymmärtänyt. Stressistä löytyi vielä lisää tietoa komennolla "stress info"
(vinkki löytyi "man stress"-komennolla).

"--vm" tarkoitti samaa kuin "-m" eli muistin stressausta ja tähän oli vielä
määritelty jokaisen prosessin kooksi 128M.

"--timeout"-kohta määritteli kuinka monta sekuntia kyseinen stressitesti tulisi
kestämään.


Olin tässä vaiheessa tosiaan laittanut tuon manuaalin esimerkki stressikomennon ja
halusin tarkastella mitä se teki koneella launchaamalla top-ohjelman, joka
kuvaa Linux-prosesseja kertoen niistä tietoja.

Tätä ennen minun täytyi muistaa siirtää stress pyörimään taustalle komennoilla:
 "ctrl+Z" ja "bg" (background).

$ top




KUVA: top-näkymästä näin, että nyt stress-prosesseja oli 14, joista kaikki käytti yli
10 prosenttia prosessorista jatkuvasti. Muistin kulutus oli hyvin vähäinen.
Painamall shift+p sain top-näkymän listaamaan kaikki eniten CPU:ta kuluttavat
prosessit ylhäältä alas. Painamalla shift+m sai saman näkymäjärjestyksen muistia
kuluttaville prosesseille.

load average: oli 14,56 (per minuutti) 11.22 (per 5 minuuttia) 7 (per 15 minuuttia)
Eli load average tarkoitti kuinka monta prosessia keskimäärin oli odottamassa
prosessorin käsittelyyn pääsyä.



Kirjoittaessani tämän ylös huomasin, että stressitesti katosi top-näkymästä. 500 sekuntia oli jo kulunut.

Syötin terminaaliin harjoituksen tehtävänannon yhteydessä listattuja
komentoja:

$ free -m

xubuntu@xubuntu:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          3935       1481       2454          0        157        631
-/+ buffers/cache:        692       3242
Swap:         3994          3       3991
Muistista oli käytössä vain 1481/3935MB.

$ sudo iotop -oa

Ekaksi en tiennyt mitä kyseinen komento teki ja syöttäessäni sen herjattiin, että
komentoa ei löytynyt. Googlasin "sudo iotop ubuntu" ja löysin seuraavaa:
Lähde: http://articles.slicehost.com/2010/11/12/using-iotop-to-check-i-o-and-swap
"Using iotop to check I/O and swap"

"The iotop utility provides an easy-to-use interface for monitoring swap and disk
I/O on a per-process basis."

iotop, KÄYTTÖTARKOITUS:

iotop-ohjelman avulla pystyy jäljittämään laitteiden input/output-tilanteen prosessikohtaisesti.
(iotop-vaatimukset: vähintään kernel-versio 2.6.20 ja vähintään python 2.5)
(Artikkelissa mainitaan, että vaatimukset täyttämättömiä kernel-versioita varten
voi käyttää samankaltaista dstat-komentoa).

Kernel-versionsa saa selville esim. syöttämällä "$ iostat" tai "$ uname -r"
(minulla oli 3.11.0-12-generic)
Python version saa selville $ python -V  (minulla oli 2.7.5+)

***** ***** ***** ***** *****

The program 'iotop' is currently not installed. You can install it by typing:
sudo apt-get install iotop

$ sudo apt-get -y install iotop

Artikkelin mukaan oletusarvoisesti iotop järjestää prosessit
Input/output-parametrin mukaan. (I/O)

Käynnistin iotop-ohjelman:

$ sudo iotop




(Halutakseen vaihtaa järjestysperustetta pitää painaa vain vasemmalle tai oikealle nuoli-
näppäimillä.)

Painamalla:
"r" järjestää prosessit päinvastaiseen suuntaan. 
"o" näyttää vain prosessit, joilla on aktiivinen I/O.



***** **** ****

$ sudo iotop -oa   

-o,            näyttää ainostaan prosessit ja threadit jotka tekevät I/O:ota.
-a,             "show accumulated I/O instead of bandwidth. In this mode, iotop shows the amount of I/O                             processes have done since iotop started."

Tehtävänannon yhteydessä esimerkkikomentona oli $ iotop -oa, joka ilmeisesti saa iotop-ohjelman:

1. Näyttämään ainoastaan prosessit ja threadit, jotka tekevät I/O:ota.
2. Näyttämään kerrytetyn I/O:oon kaistanleveyden sijasta (mitä tämä nyt tarkoittaakaan?). Tässä modessa iotop näyttää I/O-määrän mitä prosessit ovat tehneet siitä lähtien kun iotop käynnistettiin.

Tällä komennolla sain siis seuraavan näkymän:



***Eli ilmeisesti ainoastaan käyttäjän root prosesseilla oli I/O-toimintaa.


Seuraavalla komennolla pystyin tarkastelemaan ainoastaan
käyttäjän Xubuntu-prosesseja.

$ sudo iotop -u xubuntu



3.        BACK TO MUNIN >>>> ANALYSING


Nyt kun olin suorittanut stressiä jo jonkin aikaa ja tutkinut eri työkaluja samalla noin neljän tunnin ajan oli aika analysoida Munin-ohjelman tuottamia käyriä menemällä selaimella seuraavaan hakemistoon /var/cache/munin/www/index.html.

Laitteella "sr0" (myöhemmin selvisi, että tämän oli Xubuntun live-CD) oli huomattavasti eniten miinus-liikennettä eli lukemista kun taas laite "sda" (sisäinen kovalevy) kirjoitti elinkaaren alussa jonkun verran.



Selvittääkseni mistä laitteista oli tarkalleen kyse Googlasin hieman, kunnes löysin vinkin sivustolta ubuntuforums.org käyttää komentoa $ sudo fdisk -l joka palautti minulle seuraavanlaisia tietoja.
(Lähde: http://ubuntuforums.org/archive/index.php/t-1240343.html )

Disk /dev/sda: 250.1 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders, total 488397168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x9bda2241

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *          63   349549195   174774566+   7  HPFS/NTFS/exFAT
/dev/sda2       349550590   488396799    69423105    5  Extended
/dev/sda5       349550592   480212991    65331200   83  Linux
/dev/sda6       480215040   488396799     4090880   82  Linux swap / Solaris



JOHTOPÄÄTÖS:
- sda-laite oli selvästikin koneen sisäinen kovalevy 250GB.

Disk /dev/sdb: 8019 MB, 8019509248 bytes
251 heads, 44 sectors/track, 1418 cylinders, total 15663104 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc3072e18



JOHTOPÄÄTÖS:

- sdb-laite oli selvästikin USB-muistitikkuni, joka oli 8GB-kokoinen. Tälläkin täytyi olla jonkin verran aktiviteettia, koska tallensin harjoitusmuistiinpanoni aluksi suoraan USB-tikulla olevaan tekstitiedostoon.

KUVA: CPU frequency sailing: CPU ei selvästikään käynyt missään vaiheessa äärirajoillansa. Maximi oli 1.63Ghz  (/2.4GHz).




KUVA: CPU Usage: Maksimissaan CPU:n käyttö kävi harjoituksen toisella kolmanneksella, jolloin "system" ja "user" käyttivät tehoja eniten. Olisikohan system sitten "root"-käyttäjä ja "user" xubuntu-käyttäjä, joka myös juoksutti nuo stressiprosessit muun muassa.






KUVA: Memory Usage:  Kuvasta näkee, että välimuistissa (cache) on keskimäärin ollut 754.13MB ja käyttämättömänä keskimäärin 2.46GB. Sovelluksetkaan (apps) eivät ole keskimäärin tarvinneet kuin 423MB. Keskimäärin sitoutuneena (committed) on ollut jatkuvasti 2GB:eetä. Mitäköhän tämäkin tarkoittaa?




Stressistä huolimatta kone tuntui toimivan ihan hyvin. Ensi kerralla lisää stressiä, nyt pitää lopettaa ja mennä nukkumaan ja palauttaa harjoitus. Aikaa meni n. 5 ja puoli tuntia ja silti jäi vähän kesken. Over and Out.




********************************************
********************************************
cheet sheet:
********************************************

Työkaluja kuormituksen ja tilan arviointiin

top M P load avg %wa

free -m

sudo iotop -oa

netstat -pea –inet -n

tail -F /var/log/* /var/log/apache/*log

htop

nmon

==========

gedit &
gedit ^Z
fg
^Z
bg
ps waux|grep tero
kill 1234
kill -9 1234
killall foobar
killall -9 foobar

*****************

user@debian:/var/log$ sudo tail syslog
$ sudo tail -F * apache2/access.log apache2/error.log
$ sudo less syslog
$ sudo grep -i error *
$ sudo grep -i error *|less

No comments:

Post a Comment