h8

Tehtävänanto

Prosessinhallintaa ja lokeja.

a) Kuormitusta yli ajan. Tietysti palvelin hidastelee juuri silloin, kun olet nukkumassa. Seuraisipa joku kuormitusta tuolloin. Asenna heti aluksi jokin ohjelma seuraamaan kuormitusta, jotta voit tarkastella sitä koko tehtävän ajalta. Sopivia ohjelmia ovat esimerkiksi ’munin’ ja sysstat (’sar’).

b) Kuormita järjestelmän eri osa-alueita. Esim. ’stress’. Etsi prosessi toisesta ikkunasta ’top’ tai ’htop’, järjestystä voi vaihtaa ”P” ja ”M”.

Kokeile käytännössä, selitä ja analysoi. Muista selittää, mitä komennolla halutaan selvittää ja tulkitse kokeilusi tulokset. Aiheuta tarvittaessa kuormaa tai muuta työkalulla näkyvää tulkittavaa.

c) iotop; iotop -oa

d) dstat

e) ss –listening –tcp –numeric; ss –listening –tcp; ss –tcp; ss –listening –udp; ss –listening –udp;

f) grep -i error /var/log/syslog; grep -ir error /var/log/

g) Load average näkyy esim ’uptime’, ’top’, ’htop’. Prosessoriydinten määrä näkyy ’nproc’. Miten load average tulkitaan? Miksi prosessoriydinten määrä on tässä kiinnostava? Vapaaehtoisena bonuksena voit miettiä, mitä hyötyä on kuormituslukemasta, joka voi mennä yli yhden eli yli 100%.

h) Analysoi lopuksi koko ajalta keräämäsi kuormitustiedot. Löydätkö esimerkiksi aiheuttamasi kuormituspiikin?

a) Kuormitusta yli ajan. Tietysti palvelin hidastelee juuri silloin, kun olet nukkumassa. Seuraisipa joku kuormitusta tuolloin. Asenna heti aluksi jokin ohjelma seuraamaan kuormitusta, jotta voit tarkastella sitä koko tehtävän ajalta. Sopivia ohjelmia ovat esimerkiksi ’munin’ ja sysstat (’sar’).

  • sudo apt-get update
  • sudo apt-get install sysstat

Klo 12:09 (kone 10:09)

Sysstatilla pystyy kerätä kuormitustietoa pidemmältä ajalta. Otin tehtäväkseni seurata prossu-ja muistinkäyttöä tehtävän ajalta.

Avasin molemmille komennoille omat terminaalit ja annoin näiden rullata harjoituksen ajan. SAR keräsi lokia 5 sekunnin välein 500 kerran verran.

  • sar -r 5 500
  • sar -q 5 500

Näihin palataan tehtävän lopussa.

b) Kuormita järjestelmän eri osa-alueita. Esim. ’stress’. Etsi prosessi toisesta ikkunasta ’top’ tai ’htop’, järjestystä voi vaihtaa ”P” ja ”M”.

Suoritin kommenon stressija saamani kehotuksen myötä asensin stressin. Suoritin komennon ja sain käyttöohjeet. Käyttöohjeen lopusta kopioin examplen käyttööni.

  • stress –cpu 8 –io 4 –vm 2 –vm-bytes 128M –timeout 10s

Parametrien kuvaukset voi katsoa oheisesta kuvasta.

Oheisella komennolla testasin prossua 8 workerin voimin , inputoutputtia 4 workerin voimin sekä 2 workerilla muistitestausta 128mb:lla 10s ajan.

Cpu pyörittää jotakin neliöjuurilaskentaa, io syncciä ja muistikomento varaa/vapauttaa muistia.

Toistin komennon mutta nyt 60s ajan, tästä pitäisi jäädä tietoa a) lokikeräykseen.

Suoritin top komennon stressitestin aikana ja prosesseissa oli liuta stressiprosesseja.

Kokeile käytännössä, selitä ja analysoi. Muista selittää, mitä komennolla halutaan selvittää ja tulkitse kokeilusi tulokset. Aiheuta tarvittaessa kuormaa tai muuta työkalulla näkyvää tulkittavaa.

c) iotop; iotop -oa

Iotop avaa Iotop sovelluksen jolla seurataan järjestelmän komponenttien kuormitusta ja tilaa.

iotop -oa

  • -o, –only only show processes or threads actually doing I/O
  • -a, –accumulated show accumulated I/O instead of bandwidth

Kyseinen komento siis näyttää vain aktiiviset prosessit jotka tekevät jotakin input/outputilla juuri sillä hetkellä (ovat aktiivisena). -a parametri kerää kumulatiivisen datan I/Osta kaistan sijaan. Tarkoittaa kai siis datan määrää mitä joutunut käsittelemään, ei esim tallennusmäärää.

Aikaisempi stressi komento ei tuonut mitään reaktiota iotopin dataan. Latasin blenderin ja avasin tämän, tämän käyttämä IO oli <0.5%. Ei siis mitään suuria lukuja. Googlettelu ei paljastanut miten stress olisi voinut auttaa tässä.

d) dstat

Suoritin kommenon ja taas kehotteen mukaan asensin sen mitä komento käski.

Dstatilla pystyi seuraamaan vaikka mitä, prossukäyttöä, verkkoliikennettä, kovon käyttöä ja muuta.

Testatakseni tätä suoritin taas a) kohdan stressitestin , ohessa tulos. usr/sys sarakkeet kertovat CPU:n tarinan noin puolivälin jälkeen kun tasot nousevat keltaiselle.

Nettiliikennettä testasin lataaamalla internetistä ison tiedoston. Ohessa kuva josta selviää että filu lautautui alkuun noin kahta megaa sekunnissa.

Yritin myös käyttää stress -d komentoa mutta sain herjaa tilan loppumisesta. Simuloin omaa stressitestiäni siirtelemällä aikaisemmin ladattua tiedostoa kovalevyltä toiselle, tässä tapauksessa uudelle erillisille usbille jonka kiinnin koneeseeni. Ohessa data, write sarake kertoo usbille kirjoituksesta. Kirjoitusnopeus oli hidasta, surkea usbi 2.0 syynä oletettavasti.

e) ss –listening –tcp –numeric; ss –listening –tcp; ss –tcp; ss –listening –udp; ss –listening –udp;

Suoritin kommenon ja komentohan siis suoritti 5 erillistä komentoa peräjälkeen. Ohessa komennon tulos, komentojen vaihtuminen näkyy kun rivillä on STATE.

Tässä dokumentaatio josta katotaan mitä eri kommenot tekevät

https://linux.die.net/man/8/ss

ss –listening –tcp –numeric

  • l, –listeningDisplay listening sockets.
  • -t, –tcpDisplay only TCP sockets.
  • -n, –numericDo now try to resolve service names.

Elikkä komento siis näyttää kuuneltava tcp socketit/ yhteydet ja ei yritä ratkaista palveluiden nimiä vaan näyttää portit.

ss –listening –tcp

Sama kuin aikaisempi mutta nyt yrittää ratkoa kuunneltavien palveluiden nimet. Portissa lukee esim domain.

 ss –tcp; Komento näyttää vain tcp socketit/yhteydet.

ss –listening –udp; Komento näyttää kuunneltavat udp yhteydet

Testasin saada uuden yhteyden aikaiseksi ja otin ssh yhteyden koneeseeni. Yhteys näkyi listalla.

f) grep -i error /var/log/syslog; grep -ir error /var/log/

http://man7.org/linux/man-pages/man1/grep.1.html

  • -i, –ignore-case Ignore case distinctions in patterns and input data, so that characters that differ only in case match each other.
  • -r, –recursive Read all files under each directory, recursively, following symbolic links only if they are on the command line. Note that if no file operand is given, grep searches the working directory.

grep -i error /var/log/syslog komento etsii kaikki rivit jotka sisältävät errorin case-match ignorella (error, Error, hafdsErRRoR555 jne).

grep -ir error /var/log/ käy kaikki filut läpit logissa ja alikansiossa ja palauttaa jokaisen rivin missä lukee error case-match-ignorella.

g) Load average näkyy esim ’uptime’, ’top’, ’htop’. Prosessoriydinten määrä näkyy ’nproc’. Miten load average tulkitaan? Miksi prosessoriydinten määrä on tässä kiinnostava? Vapaaehtoisena bonuksena voit miettiä, mitä hyötyä on kuormituslukemasta, joka voi mennä yli yhden eli yli 100%.

https://scoutapm.com/blog/understanding-load-averages

Load average kertoo paljonko CPU:n on jonossa taskia. Jokainen ydin lisää tämän kapasiteettia yhdellä , eli quadcore pystyy käsittelemään 4:n asti. Coret ovat siis ainoat mitkä merkaavat tässä.

h) Analysoi lopuksi koko ajalta keräämäsi kuormitustiedot. Löydätkö esimerkiksi aiheuttamasi kuormituspiikin?

Tässä tuli hieman ongelmia, tehtävät oli jo suoritettu ja sar -r / q rullasivat taustalla (koska oli niin jumalattoman pitkä keräysaika) ja läppärin akku loppui kesken kadottaen datan bittiavaruuteen sillä en ollut määritellyt keräystä tallennettavaksi.

Suoritin aikaisemmat stressitestit uudestaan 4min ajalta.

Suoritin a) komennon, tiedoston latauksen sekä samanaikaisen tiedoston siirron usbilta kovalevylle.

Stresstestin pituudeksi oli määritelty 60s ja sen huomaa sar -q logista 12:49:20 – 12:50:15 sarakkeita katsellessa. Kuormituksen huippuhetkinä loadi oli > 9 ja yksi pyyntö oli blocked. ldavg-1 saraketta katsoessa voi päätellä minuutin minä actioni tapahtui koska tämä sarake näyttää loadin keskiarvon minuutin ajalta. ldavg-5 ja ldavg-15min näyttävät keskiarvon 5 ja 15min ajalta ja näissä keskiarvo ei juurikaan näy koska koko actioni tapahtui ~1min ajan.

Jätä kommentti

Design a site like this with WordPress.com
Aloitus