Възможно е да сте имали закъснения в системата, тежко използване на суап или проблеми с малка памет във вашата Linux система. Обичаен съвет е да се "намали стойността на суаповете", да се намали размерът на суап. но какво е swappiness? И наистина ли е добре да го промените?

Забележка : няма да влезем в подробности за раздела за суап. Можете да прочетете всичко за него в нашата статия за това, което трябва да знаете за размяна на дялове на Linux.

Swappiness

Има стойност, наречена swappiness в системите, подобни на UNIX, които определят как се обработват страниците в паметта. Стойността по подразбиране на повечето системи е "60", но може да бъде зададена на всичко между 0 и 100. Ако паметта е ниска, ядрото или ще изгони някои кеширащи файлове, за да има повече свободна оперативна памет за процеси или ще размени някакъв процес страници от RAM на диск.

По подразбиране от 60 означава, че суапването ще се използва по-малко, а I / O кеширанията вероятно ще бъдат освободени за пренасочване на RAM. Експирирането на кеш паметта се счита за "по-евтино" (по-малко ресурсно интензивно), докато обменът на страници включва четене и писане на дискове, което ги прави по-скъпи. В стойност от 60 години използването на суап ще бъде малко по-ниско от повторното използване на кеша. Ако стойността на swappiness се увеличи до 100, замяната и файловият кеш ще бъдат използвани при еднакво тегло. Това означава по-бърз и по-бърз вход / изход от по подразбиране. По-ниски стойности като "10" означават, че суапването ще се използва много по-малко, а входно-изходните кешове могат да бъдат много по-рано изгонени в полза на процесите. Това може да увеличи интерактивността, но също така може да навреди на I / O скоростта.

Намаляване на суаповете

Често ще видите съветите на уеб сайтове и форуми, за да намалите суапата до "10." Това трябва да ускори нещата, като използва по-малко суап и поддържа повече процеси във физическата RAM. Тази логика може да е твърде прекалено ясна и може да не е "еднакъв за всички решения".

Намаляването на стойността на суапването може да е добро в следните сценарии:

  • За системите за бази данни или ако използвате много приложения с интензивно използване на бази данни : Базите данни по принцип обработват файловото кеширане по-добре от операционната система. Ако намалите суапата, ще ограничите кеширането на файловете на операционната система, като по този начин дадете шанс на базата данни да се справи със собствените си кеш.
  • За интерактивност : Ако имате много задачи, но се занимавате с няколко файла или не отваряте големи документи, това може да подобри колко гладка ще бъде вашата система. По-малко процеси ще бъдат записани на диска и тъй като RAM достъпът е много по-бърз, компютърът ви може да се почувства по-бързо. Също така трябва да имате предвид, че това може да намали ефективността на I / O. Ако имате бавни дискове или правите нещо интензивно I / O, това може дори да навреди на производителността.
  • За плацебо : Мнозина смятат, че по-ниска суап ще ускори системата. Сериозно, ако мислите, че вашата система е по-бърза, може да има ефект да я възприемате по-бързо.

Имайте предвид, че намаляването на суапването може да доведе до катастрофи и процеси, които системата случайно убива, за да освободи паметта. Намаляването на суапването ще бъде най-доброто, ако имате достатъчно свободна оперативна памет, за да стартирате гладко вашата система. Но трябва да запазите стойността над "10", тъй като някои суапове са добри.

Увеличаване на суаповете

Увеличаването на суапването може да има общо предимство при ускоряване на входно-изходните операции. Въпреки че често не се препоръчва, увеличаването на суапването може да се окаже полезно, ако:

  • Изпълнявате някои интензивни операции за I / O и имате бавни стари твърди дискове . Например: извършването на резервни копия или изображения за редактиране на партиди могат да бъдат интензивни за входно / изходните операции (Изключително изключение са базите данни, които естествено са I / O интензивни, но могат да се възползват от по-ниската стойност на суап, както е видно по-горе).
  • Имате слаба памет, но имате сравнително бързи дискове. В този невероятен сценарий по-високата стойност на суапването може да помогне за по-ефикасното използване на паметта (въпреки че настройването му е твърде високо, може отново да навреди на производителността).

Как да управляваме суапването

Първо, трябва да помислите дали изобщо трябва да докоснете тази стойност. Имате ли проблеми с ефективността? И по-важното е, че сте опитали други системи ощипвам още? Ако не, вероятно е най-добре първо да погледнете на друго място. Но ако имате конкретен сценарий, може да искате да продължите.

След това, колко тежка е вашата суап употреба? Можете да го намерите с всеки инструмент за наблюдение на ефективността по ваш избор или с free команда. free -m ще ви даде моментна снимка на паметта в мегабайти. За непрекъснат мониторинг може да искате да използвате watch.

 гледайте -n 1 безплатно -m 

Това ще стартира free -m команда " free -m всяка секунда и ще отпечата изхода, докато не натиснете "Ctrl + C".

Както виждате по-горе, много малко суап се използва от системата, на която е написана тази статия.

Сега, ако преживявате смяна, може да ви заинтересува колко е активна. Командата vmstat ще ви разкаже всичко, което трябва да знаете за виртуалната памет на вашата система (swap и physical ram заедно).

 vmstat 1 

Трябва да проверите swap колоната, където si означава "swap in" и so означава "swap out". Ако числата са високи, значи много swapping дейност, която е индикатор за проблеми с паметта. Ако виждате използването на суап с free но малко активна суап, може да се дължи промяна на суапа.

Също така е добра идея да установите други показатели за ефективност като дисково входно / изходно, средно натоварване и т.н., така че когато тествате новите си стойности на суап, имате нещо, което да сравнявате.

За да тествате различна стойност на swappiness, можете да я зададете временно с командата sysctl . Това не се нуждае от рестартиране и ефектът е незабавен. Всъщност, рестартирането ще възстанови стойността по подразбиране, така че е напълно безопасно да експериментирате:

 sudo sysctl vm.swappiness = 10 

Разбира се, можете да поставите стойност вместо "10" (между "0" и "100").

Щом намерите предпочитаната от вас стойност, можете да промените за постоянно конфигурацията на системата, като редактирате "/etc/sysctl.conf"

 sudo nano /etc/sysctl.conf 

и добавяне на линиите

 # Задайте стойност на swappiness vm.swappiness = 10 

до края на този файл, със стойността, зададена отново на ваше предпочитание, разбира се.

заключение

Намаляването на суапването до "10" често се препоръчва като решение с едно цяло, но действителното използване на техниката може да е малко по-сложно от това. Чрез установяване на показатели, познаване на вашата система, начина, по който я използвате и какво от нея се нуждаете, можете да прецизирате вашето използване на суап и да постигнете известно изпълнение (интерактивност или вход / изход).