Free

From ICO wiki
Jump to navigationJump to search

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:


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 valikud [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 veenduda, et see fakt jääb meelde: 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 kuni 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]:

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

Selles näites, kollases kastis, on kogu muutmälu (RAM) süsteemil.

Enamus inimesed lähevad segadusse, kui vaadatakse kasutusel (used) vs vaba mälu (free memory). Eksikombel vaadatakse kasutatud mälu (sinine kast) ja määravad 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ääravad selle abil vaba mälu.

Mälu on ajutiselt kasutusel puhverdamises 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 olda huvitatud, kui palju mälu on kasutuses puhverdamises ja vahemälus. Siis on vaja teada, mis on rakenduste poolt kasutusel ja mis on saadaval rakendustele. Teise rea väljud 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) kogu summaga. See on 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 on arvutatud, kui 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 kaste, ilmselt on märgata, et “Free” eksib ühe megabaidiga [Joonis 3]. “Free” kärbib mälu enne, kui mälu raporteeritakse. 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:

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

7 megabaiti on hetkel kasutuses kettal nagu mälu. See on tõenäoliselt ruum, mis on reserveeritud operatsioonisüsteemi poolt, et jälgida ülejäänud saalemälu. Kui saalemälu on kasutusel, siis see ei ole hea. 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 Linux saalemälu mitte kasutamist.

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

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

free -s  N

Aeg-ajalt kävitab käsku "free" määratud aja tagant.

Kokkuvõte

Käsk “free” on väga oluline, millega käigus vaadeldakse mälu eraldamist ja informatsiooni kuvamist mälu kohta. Käsuga “free” on võimalik muuta megabaidid kilobaitideks või mõneks muuks summaks. 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/