Шта се дешава?
Линукс позајмљује некоришћену меморију за кеширање диска. Због овога изгледа као да сте кратки са меморијом. Али нисте! Све је у реду!
Зашто Линукс то ради?
Кеширање диска чини систем много бржим и респонзивнијим! Не постоји ни једна мана, осим што је збуњујуће за почетнике. Линукс не узима меморију од апликација на било који начин, никад!
Шта ако желим да покренем више апликација?
Ако ваше аплликације захтевају више меморије, оне само поврате тај део који је био позајмљен за кеширање диска. Кеш диска може увек да се одмах врати апликацијама! Нисте кратики са меморијом!
Да ли ми је потребно више свапа?
Не, кеширање диска позајмљује меморију коју апликације не желе. Неће да користи свап. Ако апликације желе више меморије, оне га узму од кеша за диск. Неће да крену са сваповањем.
Како да спречим Линукс да не ради ово?
Не можете да онемогућите кеширање диска. Ово би неко ко мисли да се узима меморија од апликација хтео да угаси, али то се не дешава! Кеш диска чини да се апликације брже учитавају и да се глаткије извршавају, али Линукс НИКАД не узима меморију од апликација! Тако да не постоји ниједан разлог да се онемогући.
Зашто top и free (програмчићи/команде за терминал – прим. прев.) кажу да ми је сва меморија искоришћена када није?
Постоји разлика у терминологији. И ви и Линукс се слажете да је меморија коју заузимају апликације “заузета”, док је меморија која се не користи ни за шта “слободна”.
Али како да назовемо меморију која се тренутно користи за нешто, али може да буде ослобођена за апликације?
Можда бисте је назвали “слободном” (free) и/или “доступном” (available). Линукс је, пак, назива “заузетом”, али такође “доступном”:
Ово “нешто” је (грубо речено) оно што top и free називају “бафер” и “кеш”. Пошто се термиологија Линукса разликује, могли бисте да помислите да сте кратки с меморијом, а нисте.
Како да видим колико слободне меморије заиста имам?
Да бисте видели колико меморије ваше апликације могу да користе без сваповања, покрените free -m и погледајте на колону “доступно” (available):
$ free -m
total used free shared buff/cache available
Mem: 1504 1491 13 0 855 792
Swap: 2047 6 2041
(на инсталацијама старијим од 2016. погледајте колону “free” у реду “-/+ buffers/cache”)
Ово је одговор у мегабајтима. Ако само наивно погледате на “заузето” и “слободно”, помислили бисте да је меморија напуњена 99%, а заправо је напуњена 47%!
За детаљнији технички опис онога што Линукс сматра “доступним”, погледајте овде.
Када би требало да почнем да се бринем?
Здрав Линукс систем са више него довољно меморије ће, након што ради неко време, почети да се понаша на неки од наредних начина:
слободна меморија је близу 0
заузета меморија је близу укупне
доступна меморија (или “free + buffers/cache”) има довољно простора (рецимо, 20 или више одсто од укупне)
не мења се употреба свапа
Знаци који показују да сте заиста кратки са меморијом и коју јесу за бригу би могли да буду:
доступна меморије (или “free + buffers/cache”) је близу нуле
употреба свапа расте или се мења
dmesg | grep oom-killer показује да OutOfMemory-killer (програм који убија програме да ослободи меморију) ради
Како могу да проверим ове ствари?
Погледајте ову страницу (https://www.linuxatemyram.com/play.html) за више детаља и да видите како можете да експериментишете са кешом диска да бисте видели горе описане ефекте. Мало ће ствари учинити да почнете да поштујете кеширање диска као што то успева мерењу убрзања на вашем сопственом хардверу!
Извор: LinuxAteMyRam.com was presented by VidarHolen.net. This site is available on GitHub for comments and PRs.
Превод: Борисав Живановић