Виртуелна меморија је једна од оних ствари које су у основи модерних оперативних система, али обично не размишљате о томе осим ако немате проблема. Линук дистрибуције траже од вас да подесите свој виртуелни меморијски простор (свап партиције) током инсталације, али већина почетника није свесна колико је то корисно.
Ево свега што треба да знате о виртуелној меморији на Линук-у.
Шта је виртуелна меморија?
Виртуелна меморија је начин представљања ваше меморије која је апстрахована од физичке меморије на вашој машини. Користи и вашу РАМ меморију и ваш простор за складиштење, било да је то на традиционалном чврстом диску или ССД-у.
У Линук-у се то ради на нивоу кернела и хардвера. ЦПУ има део хардвера који се зове јединица за управљање меморијом (ММУ) која преводи физичке меморијске адресе у виртуелне. Ове адресе су независне од тога где се физички налазе на машини. Ови адресни простори су познати као „странице“ и могу бити у РАМ-у или на вашем чврстом диску или ССД-у. ОС види ове адресе као један велики скуп меморије, познат као „адресни простор“.
Виртуелна меморија користи предност чињенице да се сва меморија која се користи у теорији не користи стално. Програми у меморији се рашчлањују на странице, а делови које кернел сматра непотребним се „замењују“ или премештају на чврсти диск. Када су потребни, могу се „заменити“ или вратити у РАМ.
Простор који се користи за виртуелну меморију на драјву је познат као „позадинско складиште“ или „простор за замену“. У свету Виндовс-а јесте обично имплементиран као датотека, позната као „свап датотека“. То је такође могуће урадити у Линуку, али је много чешће до користите наменску партицију диска.
Свап датотеке на Линук-у су обично резервисане за минималне или уграђене системе, а уобичајено је да се потоњи у потпуности покрећу без виртуелне меморије јер уграђени оперативни системи морају бити мали.
Резултат виртуелне меморије је да је могуће покренути велике програме коришћењем више меморије него физичке РАМ меморије вашу машину, слично као што вам кредитна картица омогућава велике куповине за више новца него што имате у банци рачун. Као и кредитна картица, виртуелна меморија је корисна када вам је потребна, али не желите да претерате са њеном употребом.
Виртуелна меморија такође омогућава програмерима да креирају апликације без потребе да знају како је меморија рачунара организована.
Главни недостатак у историји виртуелне меморије био је то што су чврсти дискови били спорији од РАМ-а. Ако машина нема довољно РАМ-а, систем може бескрајно да размењује странице, што је процес познат као „разбијање“. Ово је мањи проблем на модерним рачунарима са више РАМ-а и бржим ССД-овима који замењују механичке чврсте дискове, али то је ипак нешто чега треба бити свестан оф.
Линук свап партиције
Као што је раније поменуто, уобичајени метод за подешавање виртуелне меморије на Линук-у је коришћење наменске партиције диска. Услужни програм за инсталацију ће испитати ваш хардвер и предложити шему партиционирања која укључује замјенску партицију.
Такође можете додати свап партиције након инсталације. Ако желите да додате нову партицију постојећој диск јединици, мораћете користите недеструктивни алат за партиционисање као ГПартед. Уверите се да сте изабрали „Линук свап“ као систем датотека за своју партицију.
Направите резервну копију важних података пре него што поново поделите диск.
Након што сте креирали своју партицију, користите команду мксвап да форматирате своју партицију.
судо мксвап /дев/сдКс
Сада ћете морати да уредите свој /etc/fstab као роот да бисте додали своју свап партицију. Ова линија, додата у датотеку, ће подесити свап партицију која ће се монтирати приликом покретања:
/дев/сдКс нема замене подразумеване вредности 0 0
Сада користите свапон команду за активирање вашег новог свап простора, где је сдКс име ваше свап партиције:
судо свапон /дев/сдКс
Коришћење Свап датотека на Линук-у
Лако је то подесите свап датотеку у Линук-у користећи командну линију. Можда бисте желели да ово урадите ако не желите да се мучите са поновним партиционисањем диска или уређивањем /etc/fstab. Једна метода је употреба фаллоцате:
На пример, да бисте креирали датотеку за замену од 2 ГБ:
судо фаллоцате -л 2Г /путња/до/свапфиле
Као алтернативу, можете користити команду дд да креирате датотеку за замену.
судо дд ако=/dev/нула оф=/path/то/свапфиле бс=1024 цоунт=2048
Уверите се да правилно користите команду дд, јер погрешна инфиле и оутфиле може довести до губитка података. фаллоцате је пожељна метода из овог разлога.
Тхе /dev/zero уређај је посебан уређај који даје „0“. Оно што ова дд команда ради је да креира празну блок датотеку од два гигабајта користећи блокове од 1024 килобајта погодне за коришћење као размјенски простор.
Затим можете користити мксвап и свапон команде са свап датотеком као што бисте радили са свап партицијом:
судо мксвап /путња/до/свапфиле
судо свапон /патх/то/свапфиле
Можда се запитате када би требало да користите свап датотеку или наменску партицију за свој свап простор. Избор је лак: у већини случајева требало би да користите партицију. Ово је најбољи избор за Линук десктоп или сервер. Шема партиција коју је предложио инсталатер обично је адекватна на Линук радној површини за једног корисника.
Можда ћете желети да користите свап датотеку ако користите Линук у виртуелној машини, на малом уграђеном систему или једноставно не желите да поново партиционирате свој постојећи Линук систем.
Колико простора за замену?
Већ дуги низ година, стандардни савет о томе колико је простора за промену потребно је двоструко већи физички РАМ. Са великим дисковима и количинама меморије са којима долазе чак и најјефтинији рачунари, ово правило може доћи у питање.
На многим системима, ако проверите топ или хтоп, можда ћете чак приметити да се ваш свап простор уопште не користи ако систем подесите на овај начин.
Ипак, двоструко већа физичка меморија је добра полазна тачка и полиса осигурања ако постављате веће захтеве за меморијом. По потреби можете да унесете промене у свој систем. Ако ваш систем користи сву вашу РАМ меморију, рачунар може наићи на проблеме са перформансама када користи виртуелну меморију.
Рачунар може да настави да се мења и избацује, што је процес познат као разбијање, због чега изгледа да не реагује. Ако још увек имате механички чврсти диск, често можете чути како стално приступа.
Ово је много мањи проблем ових дана јер је количина РАМ-а чак и на најјефтинијим рачунарима више него адекватна, плус брзина ССД-а је много већа од старих чврстих дискова. То је још увек нешто чега бисте требали бити свесни.
Најлакши начин да то поправите је да једноставно додате више РАМ-а вашој машини. Ако то није могуће, можете покушати да прилагодите „сваппинесс“ Линук кернела.
Број замене одређује колико језгро урони у виртуелну меморију. Она се креће од 0 до 100. Постављање на 0 значи да се Линук уопште неће мењати, док ће се на 100 мењати у свакој прилици. Подразумевано на већини система је 60.
Да бисте привремено променили замену, користите команду сисцтл:
судо сисцтл вм.сваппинесс=20
„20“ у тој команди ће бити број за замену док не рестартујете. Да бисте га трајно променили, уредите /etc/sysctl.conf датотеку као роот и поставите линију, "вм.сваппинесс=[сваппинесс нумбер]", где је "[сваппинесс нумбер]" број замене који желите. Ово ће бити застој док не будете могли да инсталирате више РАМ-а.
Виртуелна меморија одржава ваш Линук систем без проблема
Виртуелна меморија је компонента модерних оперативних система, укључујући Линук, која одржава ваш рачунар без проблема. Можете користити свап датотеку, али уобичајена метода је наменска партиција. Не морате толико да размишљате о томе, али Линук партиције и свап датотеке се лако постављају и решавају проблеми.
Многи од ових савета су применљиви и на друге системе, укључујући Виндовс, чак и ако су методе за подешавање виртуелне меморије различите.