Линук кернел

Свап простор за управљање меморијом језгра Линук-а

Свап простор за управљање меморијом језгра Линук-а

Први део. Свап простор

Да би рачунар радио исправно, зависи од тога да ли има довољну количину меморије. Једноставно рекавши да никад не може бити довољно. Што је више физичке меморије инсталирано, то је скупље. Резултат је углавном паметан компромис између трошкова и брзине приступа меморијским ћелијама.

Да би постигли овај компромис, УНИКС / Линук системи комбинују две врсте меморије - физичку меморију (РАМ) и замењују простор. Све се то заједно назива виртуелном меморијом рачунарског система. Физичка меморија је прилично скупа, али брза и доступна у року од наносекунде. Супротно томе, свап меморија је прилично јефтина, али спора и доступна у милисекундама.

Постоји неколико разлога зашто је замјена меморије корисна. Прво, понекад појединачним процесима треба више меморије него што систем физички поседује и могу пружити више процесима који то захтевају. Као резултат, сви подаци који се чувају у физичкој меморији не могу се тамо више чувати. Сада, простор за замену ступа у игру, а избор меморијских страница се преноси у простор за размену како би се ослободила физичка меморија.

Друго, нису сви подаци потребни у меморији истовремено. Због тога се мање коришћене меморијске странице паркирају на свап простору да би им било на располагању што више слободне физичке меморије. Овај метод је назван алгоритам за најмање замену недавно коришћених страница (ЛРУ) [1].

Врсте замјене

Свап простор постоји у две варијанте. Верзија 1 је одвојена партиција диска која је такозвана свап партиција. На тој партицији нису сачуване датотеке, али информације о меморији (одлагалишта). Једноставно, верзија 2 је датотека на диску која се налази у систему датотека на вашем тврдом диску. Верзија 1 је врло честа на УНИКС / Линук системима, БСД и ОС Кс, док верзија 2 постоји на системима који покрећу Мицрософт Виндовс. Верзија 2 се такође може омогућити на УНИКС / Линук системима (види доле).

Да бисте видели који је свап простор активан на вашем УНИКС / Линук систему, покрените следећу команду у терминалу:

$ / сбин / свапон -с
Назив датотеке Тип Величина коришћена Приоритет
/ дев / дм-3 партиција 16150524 316484 -1
$

Као алтернативу можете послати захтев систему датотека проц и покренути наредбу цат / проц / свапс

Овај Линук систем има свап партицију величине око 15 ГБ у којој се тренутно користи преко 300М. Колона Приоритет показује који простор за размену прво треба користити. Подразумевана вредност је -1. Што је већа вредност приоритета, то се раније узима у обзир овај простор за размену. Опција -с је кратка верзија -суммари. Ова опција је застарела и препоручује се да уместо ње користите опцију -прикажи на следећи начин:

$ / сбин / свапон --схов = ИМЕ, ТИП, ВЕЛИЧИНА, КОРИШЋЕНО, ПРИО
ИМЕ ТИП ВЕЛИЧИНА КОРИШТЕНО ПРИО
/ дев / дм-3 партиција 15,4Г 307,1М -1
$

Опција -схов прихвата листу вредности које представљају заглавља колона. Да бисте постигли одређени редослед излаза, одаберите жељена заглавља колона и њихов редослед.

Свап сизе

Као опште правило, величина простора за размену препоручује се да буде двоструко већа од система који има физичку меморију. Имајте ово на уму за поставке опште намене и за десктоп рачунаре. За УНИКС / Линук сервере са много више физичке меморије можете смањити величину простора за размену на 50% РАМ-а. Преносни рачунари који могу хибернирати морају бити мало већи од физичке меморије.

Инсталација

За свап партицију, препоручљиво је размислити о свап простору од самог почетка подјеле диска на појединачне партиције или оставити довољно неискориштеног простора на диску да би се касније могао користити. Обично, током конфигурације дискова који ће се користити, рутина подешавања вас пита о величини простора за размену. Као пример, на Дебиан ГНУ / Линук ово изгледа овако:

Као што је горе поменуто, све док имате простора за нове партиције на тврдом диску, можете креирати и укључити свап партиције уз употребу наредби попут фдиск и свапон.

Алтернативно, простор за замену може се касније омогућити и као датотека за размену. Линук подржава овај начин тако да можете да га креирате, припремите и монтирате на начин сличан начину замјене партиције. Предност овог начина је у томе што не требате поновити партицију диска да бисте додали додатни простор за размену.

Као пример, креирамо датотеку са именом / свапфиле величине 512М и омогућимо ово као додатни простор за размену. Прво, уз помоћ наредбе дд креирамо празну датотеку. Друго, мксвап користи ову датотеку да би је трансформисао у свап стил. Можете приметити да се садржај датотеке третира као партиција и додељује му се одговарајући УУИД. Треће, ово омогућавамо помоћу свапона. На крају, наредба свапон -схов приказује два уноса свап - партицију и новостворену датотеку.

# дд иф = / дев / зеро оф = / свапфиле бс = 1024 цоунт = 524288
524288 + 0 скупова података у
524288 + 0 скупова података
Копирано 536870912 бајтова (537 МБ), 0,887744 с, 605 МБ / с
# мксвап / свапфиле
Постављање размене простора за размену 1, величина = 524284 КиБ
без етикете, УУИД = е47аб7фе-5ефц-4175-б287-д0е83бц10ф2е
# свапон / свапфиле
# свапон --схов = ИМЕ, ТИП, ВЕЛИЧИНА, КОРИШТЕНО, ПРИО
ИМЕ ТИП ВЕЛИЧИНА КОРИШТЕНО ПРИО
/ дев / дм-3 партиција 15,4Г 288,9М -1
/ датотека свап датотеке 512М 0Б -2
#

Да бисте користили ову свап датотеку у време покретања, додајте као администратор следећи ред у датотеку / етц / фстаб:

/ свапфиле ноне свап св 0 0

Онемогућавање простора за размену

Најмање, али не и последње, опет постоји једна наредба за онемогућавање свап датотеке. Позива се команда замјена. Потребан је један параметар који указује на то да ће свап уређај бити онемогућен. Ова наредба онемогућава претходно активирану свап датотеку:

# свапофф / свапфиле

Такође, замјена може да ради са УУИД-ом система датотека. Направити замјена понашајте се на овај начин користите опцију након чега следи УУИД датог система датотека. У случају да је потребно онемогућити све свап просторе одједном опцију (дуга опција -све) је врло згодно. Комплетна команда је свапофф -а.

Подешавање свап екосистема

Почевши од издања Линук кернела 2.6 уведена је нова вредност. Ово се чува у променљивој / проц / сис / вм / сваппинесси контролише релативну тежину која се даје замени из рунтиме меморије, за разлику од испуштања меморијских страница из системске кеш меморије страница [2]. Подразумевана вредност је 60 (проценат слободне меморије пре активирања замене). Што је вредност мања, мање замјене се користи, а више меморијских страница се чува у физичкој меморији.

Да бисте привремено поставили вредност, поставите вредност у / проц датотечном систему на следећи начин:

# ецхо 10> / проц / сис / вм / сваппинесс

Као алтернативу можете користити сисцтл наредба на следећи начин:

# сисцтл -в вм.замењеност = 10

Да бисте трајно поставили вредност, додајте следећи ред у датотеку / етц / сисцтл.цонф:

вм.замењеност = 10

Да ли је свап и даље актуелан?

Можете да питате зашто се бавимо том темом. Савремени рачунари имају довољно физичке меморије - па зашто онда морамо да бринемо о томе? Постоји неколико разлога зашто ова технологија вреди више од саме помисли.

Имајте на уму да се неко време држите машине, али с времена на време можете ажурирати софтвер који користите на њој. Тренутно и хардвер и софтвер одговарају једни другима. У будућности ће се то можда променити и биће вам потребно више меморије него сада. Свап партиција осим ако не надогради или купи нови хардвер може вам уштедети мало новца.

Можда сте чули за функцију која се зове суспендовање на диск или режим хибернације [3]. Ваша машина ће спавати. Пре него што то уради, мора негде да ускладишти тренутно стање. Сада простор за замену ступа у игру и делује као контејнер за чување ових података. Чим се машина пробуди следећи пут, читави подаци се читају из простора замене, учитавају у меморију и можете да наставите да радите тамо где сте раније стали.

Ако има само један трајни уређај за складиштење, систем ће морати да чита и пише ваше датотеке док замењује на истом уређају. Видећете огромно побољшање ако имате други уређај и ако можете да одвојите свап уређај од неусаглашених приступа датотекама.

Свап датотека мора да прослеђује податке кроз систем датотека. Ово додаје слој индиректности да би се учинило да постоји суседни логички адресни простор са језгром са којим може радити. Ово додаје додатне меморијске трошкове и циклусе процесора. Најбоље резултате ћете добити користећи сирову свап партицију.

Закључак

И данас је знање у вези са разменом неопходно. Ова тема је део знања које је потребно за полагање цертификата Линук Профессионал Институте Левел 1 (ЛПИЦ 1). Већина испита садржи једно или два питања о овој теми.

Свап простор помаже вашем Линук систему (кернелу) да брзо организује меморију ако за то постоји потреба. Да бисте били отворени са вама, замена простора није апсолутно неопходна у случају да ваш систем има пуно РАМ-а. У случају нужде помаже вашем систему да преживи. Због тога никада не бих напустио пут традиционалне поставке без Свап простора.

Комбинација Свап-а и ССД-а расправља се на контроверзан начин јер је број уписа на диск на ССД прилично ограничен. И свап и привремене датотеке су направљене за писање пуно података. С друге стране, модерни ССД-ови имају више него довољно додатног простора (7%) да се носе са кваровима у сектору. Да бисте били на сигурној страни: ако је могуће, имајте посебну замену на конвенционалном чврстом диску - немојте користити рамдиск, нити ССД, барем за замену [4]. Ваш Линук систем ће вам захвалити на овој одлуци.

Да бисте избегли стављање простора за замену на свој ССД, уместо њега можете користити ЗРАМ [5,6]. Ово је виртуелна замјена компресована у РАМ-у, такође названа зСвап. Ова технологија омогућава компримовани блок уређај у меморији. Чим више нема меморије, преостале меморијске странице се преносе на овај блок уређај. То резултира мањом употребом замјене и помаже у продужавању вијека вашег тврдог диска.

Везе и референце

Линук Мемори Сериес Сериес

Захвалнице

Аутор жели да се захвали Манди Неумеиер и Геролду Руппрецхту на подршци током припреме овог чланка.

Водич за ОпенТТД
ОпенТТД је једна од најпопуларнијих игара за пословну симулацију. У овој игри морате створити диван посао превоза. Међутим, почет ћете у почетку око 1...
СуперТукКарт за Линук
СуперТукКарт је сјајан наслов дизајниран да вам пружи Марио Карт искуство бесплатно на вашем Линук систему. Прилично је изазовно и забавно играти, диз...
Водич за битку за Веснотх
Битка за Веснотх је једна од најпопуларнијих стратешких игара отвореног кода које тренутно можете играти. Не само да је ова игра у развоју већ јако ду...