Free

From EIK wiki

Autor

Autor: Leila Toomet

Rühm: AK21

Esitamise kuupäev: 24.10.2015

Sissejuhatus

“Free”, mida kasutatakse Linuxil baseeruvatel operatsioonisüsteemidel, näiteks nagu Ubuntu, on võimas käsk ja selle abil saab vaadelda mälu eraldamist. See on üks nendest käskudest, mida serveri administraator peaks hästi teadma, kuid mis võib tekitada segadust. Seletan ära “free” käsurea väljundi ja mõningaid tüüpilisemaid viise, kuidas seda käsku kasutada.

“Free” käsu alused

Kõige tavalisem viis “free'd” kasutada on:

free

Käsu käivitamisel kuvatakse midagi sarnast:

Free2.png
Joonis 1: Käivitamisel kuvatakse.

Informatsioon, mis kuvatakse käivitamisel [Joonis 1]:

  • Kõik numbrid on algselt kilobaitides (KB, st 1024 baiti), kuid seda saab muuta (vt allpool)
  • Väljundis kuvatakse mälu suurused, muutmälu (RAM) jaotust ja (swap) saalemälu, aga ka seletatakse kui palju sellest füüsilisest muutmälust on jaotatud puhverdamise ja vahemälu vahel, kui see ei ole kasutusel mõne rakenduse poolt.

Käsul “free” on mõned kasulikud võtmed [1]:

free -b

Kuvab väljundi baitides.

free -k

Kuvab väljundi kilobaitides.

free -m

Kuvab väljundi megabaitides.

free -g

Kuvab väljundi gigabaitides.

free --tera

Kuvab väljundi terabaitides.

free -h

Kuvab väljundi inimesele loetavas formaadis (nt 777MB).

free -t

Kuvab väljundis viimasel real "total" RAM+swap.

free -l

Kuvab väljundi, mis näitab üksikasjaliku mälu statistika.


Vaikimisi käsk “free” kasutab 1024 baiti, üksuste vahel toimuva konventeerimise käigus. See on tavaline, kui rääkida mälust või ketta suurusest, kuid kui võrrelda numbreid, mis põhinevad tuhandel (st 1KB = 1000 bitti), võib see kaasa tuua ootamatuid suuruseid.

free --si -m

Kui valiku võtit -m, -b jne ei ole juurde lisatud, siis --si kuvab kilobaitides.

“Free” käsu mälu väljund

“Free” käsu väljund võib alguses segadust tekitada [Joonis 1]. Tuleks jätta meelde, et Linux võtab kasutamata mälu (a.k.a mälu mis ei ole kasutusel rakenduste ja operatsioonisüsteemi poolt) ja kasutab seda ketta puhverdamises ja vahemälus siis, kui saab.

Pole mõtet lasta vabal mälul raisku minna mitte midagi tehes. Mälu pannakse tööle kui rakendus seda vajab. Kui rakendus vajab mälu ja nõuab osa kasutatavast mälust, mis on kasutusel puhverdamises ja vahemälus, siis Linux annab mälu rakendusele. Protsess on automaatne ja seda ei ole vaja välja lülitada (ilmselt ei ole ka võimalik).

Seda kõike meeles pidades vaadatakse “free” käsu väljundit. Käivitades “free -m” genereerib järgmisi jaotusi megabaitides [2]:

Free5.png
Joonis 2: Free mälu väljund megabaitides.

Selles näites, kollases kastis, on ära näidatud kogu muutmälu (RAM) suurus süsteemis.

Enamus inimesed lähevad segadusse, kui vaadatakse kasutusel (used) vs vaba mälu (free memory). Eksikombel vaadatakse kasutatud mälu (sinine kast) ja määratakse selle abil kasutatud mälu kogust. Siis vaadatakse paremale ja nähakse väga väikest numbrit. Seal, kus on vaba mälu (punane kast) ja määratakse selle abil vaba mälu.

Mälu on ajutiselt kasutusel puhverdamisel ja vahemälus nii, et see on kaasa arvatud kasutusel olevas mälus (sinine kast). Oranźid kastid hoiavad vaba mälu puhveramisele ja vahemälule.

Kui palju mälu on tegelikult kasutusel Linuxis?

Kui ollakse huvitatud serveri mälu jaotusest, siis ei tunta huvi, kui palju mälu on kasutuses puhverdamisel ja vahemälus. Siis on vaja teada, mis on rakenduste poolt juba kasutusel ja mis on veel saadaval. Teise rea väljund lahendab probleemi [Joonis 3].

Lilla kast esindab seda, mis on määratud rakendustele ja operatsioonisüsteemile. Seda võib kergelt üle kontrollida, kui kasutusel olev mälu (sinine kast) lahutada puhveri ja vahemälu (oraanź kast) kogusummast. Tulemuseks saadakse päriselt kasutatud mälu süsteemis [Joonis 3].

Kui palju mälu on tegelikult Linuxis vaba?

Vaba mälu tegelik summa on rohelises kastis. See arvutatakse nii, et kogu muutmälust (kollane kast) lahutatakse rakendustele määratud mälu maht (lilla kast). Võib ka arvutada nii: vaba mälu (punane kast) liita puhveri ja vahemäluga (oraanźid kastid) - tulemus on sama [Joonis 3] [3].

Ümardamise vead

Kui proovida arvutada allolevaid väärtusi, on märgata, et “Free” eksib ühe megabaidiga [Joonis 3]. “Free” kärbib mälu enne, kui mälu kuvatakse. Kasutades “Free’s” kilobaite, saab täpsema tulemuse.

Saalemälust

Saalemälu on osa kõvakettast, mis on määratud käituma nagu muutmälu (RAM). Oleks mõttetu kasutada ketast puhverdamises ja vahemälus nii, et Linux ei kasuta seda ja käsk “free” näitab ainult tegelikku mälu, mis on kasutusel. Tagasi näite juurde:

Free5.png
Joonis 3: Free mälu väljund megabaitides.

7 megabaiti on hetkel kettal kasutuses nagu mälu. See on ruum, mis on reserveeritud operatsioonisüsteemi poolt, et jälgida ülejäänud saalemälu. Kui saalemälu on kasutusel, siis see ei ole hea, sest serveri jaoks see on liiga aeglane. Kui süsteem kasutab saalemälu, siis on tõenäoliselt midagi valesti või masinas ei ole piisavalt mälu [Joonis 3]. Enamasti kasutatakse käsku “Free”, et kinnitada Linuxi saalemälu mitte kasutamist.

Näpunäited Linux’i “Free” käsu kasutamiseks

Selle asemel, et terminalis aeg-ajalt kirjutada käsku “free”, et aeg-ajalt käsku käivitada, võib kasutada järgmist käsku [4],

free -s  N

Käsk "free" käivitub aeg-ajalt, kui määrata võtmele N vastav väärtus.

Kokkuvõte

“Free” on väga oluline käsk, mille abil saab vaadelda mälu eraldamist ja informatsiooni kuvamist mälu kohta. Tuleb meeles pidada, et tegelik vaba mälu asub vaba mälu veerus teisel real. Minu meelest käsku "free" ei ole üldse raske kasutada ega mõista, käsk annab palju olulist informatsiooni. Referaadis on välja toodud võimalused, mida “free” käsuga on võimalik teha ja kuidas see kasulik on.

Viited

1. http://corlewsolutions.com/articles/article-6-understanding-the-free-command-in-ubuntu-and-linux

2. http://www.cyberciti.biz/faq/linux-check-memory-usage/