Автор Тема: Всичко за swappiness  (Прочетена 1502 пъти)

makeme

  • Участник
  • *****
  • Публикации: 465
  • Distribution: Many
  • Window Manager: Mate
    • Профил
Всичко за swappiness
« -: Апр 11, 2018, 17:27 »
Здравейте колеги,
Понеже не открих такава тема във форума, реших да отворя една за дискусия.
Интересува ме как, кога и колко, като стойност, използвате за swappiness?

Малко въведение:

Цитат
Стойността swappiness  контролира, кога ядрото  ще използва хард/ссд диска (swap дяла/файла) вместо физическата памет. Диапазона за настройка е от 0-100. По-голяма стойност, означава предпочитане на swap дяла/файла, а по-малка - използването на физическата памет(РАМ). В повечето случаи, стойността е 60.

Проверка на swappiness:
> sysctl vm.swappiness
Промяна на swappiness стойността на 20:
> sysctl vm.swappiness=20
Промяна на swappiness стойността на 20, запазено след рестарт:
> nano /etc/sysctl.conf
въведете/променте реда: vm.swappiness=20

Формула за изчисление на стойността:
заетата РАМ, при която ядрото започва да използва SWAP = РАМ / 100 * swappiness

Та, да се върна на въпроса - Променяте ли стойностите на машините, които използвате/конфигурирате. Примерно:
Аз лично на повечето машини използвам стойност 10/20, при условие че съм подсигурен от към РАМ за тях.
Малкото ми домашно сървърче е с 8ГБ рам, не се използва интензивно и от много процеси (рамта му стига), и за това там съм с 20.
Друга моя десктоп машина е с 16Гб пам, използва се доста интензивно (рамта му стига), и затова съм с 10.
И на 2те машини swap дяла/файла е върху ССД.

Моля споделете, какви стойности използвате вие, както и при какви ситуации.
« Последна редакция: Апр 11, 2018, 17:43 от makeme »
Активен

Distributions:  UbuntuMate 14.04; 15.10; 16.04, CentOS 6.x, 7.x, Kali 2.0 ...

petar258

  • Участник
  • *****
  • Публикации: 325
  • Distribution: Ubuntu-mate 16.04, Windows 7
    • Профил
Re: Всичко за swappiness
« Отговор #1 -: Апр 11, 2018, 18:12 »
За компютър със SSD - единица. Компютъра който редовно ползвам е с 4gb RAM и SSD. За система с традиционен диск не пипам тази настройка
« Последна редакция: Апр 11, 2018, 18:14 от petar258 »
Активен

makeme

  • Участник
  • *****
  • Публикации: 465
  • Distribution: Many
  • Window Manager: Mate
    • Профил
Re: Всичко за swappiness
« Отговор #2 -: Апр 11, 2018, 22:16 »
Добра логика. Виждам че мислим в една насока :) , така че от тук въникват два въпроса:
1. Ако имаш ссд и хард? (ОС е на ссд, но файловете, които ползваш примерно са на харда)
2. Ако имаш хардове, но са в Райд? (спечелил си някаква скорост на четене)
Активен

Distributions:  UbuntuMate 14.04; 15.10; 16.04, CentOS 6.x, 7.x, Kali 2.0 ...

petar258

  • Участник
  • *****
  • Публикации: 325
  • Distribution: Ubuntu-mate 16.04, Windows 7
    • Профил
Re: Всичко за swappiness
« Отговор #3 -: Апр 11, 2018, 23:45 »
При мен това е за да не хаби много ссд-то, защото не съм видял особена нужда от много ползване на swap. И съм му намалил размера до 512 мб, не съм го махнал напълно защото не съм сигурен дали няма да стане някой проблем. Ако имам ссд и хард и ако ми трябва swap, ще го сложа на ссд и то ще е с нещо близо до единица.
А за райд нямам мнение, защото не съм си играл с него. Предполагам че там няма нужда да се пипа тоя параметър.
Активен

Yasen6275

  • Участник
  • *****
  • Публикации: 410
    • Профил
Re: Всичко за swappiness
« Отговор #4 -: Апр 12, 2018, 00:01 »
Аз пък ползвам zram на машините със SSD. Нямам десктоп машина/лаптоп с  по-малко от 8-гиги рам(не че имам с повече ;) ). Не си спомням да съм виждал зает swap. Но пък единственото паметоемко нещото което прася е да отварям 20-30 таба в browser-a.
Активен

malin

  • Участник
  • *****
  • Публикации: 700
  • Distribution: Ubuntu 16.04.4
  • Window Manager: Openbox
    • Профил
Re: Всичко за swappiness
« Отговор #5 -: Апр 12, 2018, 00:46 »
До и включително 12.04 правех "гимнастики". След - оставям го подразбиращо без пипане. Ефекта се усеща на стар, до много стар хардуер (на 14.04 е - по-скоро има ефект ,- със стойност 15, която съм "измислил" с пробване, но това си е за мене).
Активен

Няма проблем който да е толкова сериозен, че да не можеш да избягаш от него.

spec1a

  • Участник
  • *****
  • Публикации: 629
    • Профил
Re: Всичко за swappiness
« Отговор #6 -: Апр 12, 2018, 10:00 »
   Ако имате достатъчно рам,не е необходим суап дял.
   При много високо натоварване може да си направите суап файл,
(може по-нататък да добавяте още ...),Линукс позволява
достатъчно голяма гъвкавост.
Активен

makeme

  • Участник
  • *****
  • Публикации: 465
  • Distribution: Many
  • Window Manager: Mate
    • Профил
Re: Всичко за swappiness
« Отговор #7 -: Апр 12, 2018, 11:19 »
   Ако имате достатъчно рам,не е необходим суап дял.
   При много високо натоварване може да си направите суап файл,
(може по-нататък да добавяте още ...),Линукс позволява
достатъчно голяма гъвкавост.
Принципно си прав, но swap-a се използва и за друго. Една от причините, поради която линукс е толкова бърз, е кеширането на прочетената информация в рамта. В случай, че използваш 1 за swappiness, се получава дисбаланс при мястото, което отделяш за този кеш. Разбира се това е в случай, че използваните програми започнат да ядат по-голяма порция от рамта.

Една проста сметка показва (по формулата дадена горе {не е перфектна, но е близка до реалността}), че при 8гб рам и 1,60 за swappiness, се получава следното:

7976/100*1=79мб
7976/100*60=4740мб (започваш да суапиш на 3236мб заета памет)

От сметката се вижда грубо колко мб сте осигурили за кеша. От тук следват и последствия от двете крайности:
1. Суапиш ли - системата ти се забавя
2. Останеш ли без кеш - системата се забавя

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

Та идеята е да си намеря някаква стойност, която да е най-добрия балансьор (ще ми идва нова машина на работа и от сега си мисля за сетъпа :) ). Ако дойде с 32 рам няма да го мисля толкова, но ако е с 16 ще трябва :)

@petar258, до сега съм имал един случай само на сървър, който е имал проблем при премахване на суапа. Мисля беше някаква виртуалка с Убунту 14.04, но само това помня.

@Yasen6275, благодаря за инфото. Разгледах го това зрам и изглежда интересно. Относно заетия суап - съм виждал на колежка (линукс минт) 8гб рам и 8 гб суап, заети от браузъри и вика : Нещо... само ми забива тоя лаптоп :)
« Последна редакция: Апр 12, 2018, 11:23 от makeme »
Активен

Distributions:  UbuntuMate 14.04; 15.10; 16.04, CentOS 6.x, 7.x, Kali 2.0 ...

ray

  • Участник
  • *****
  • Публикации: 839
    • Профил
Re: Всичко за swappiness
« Отговор #8 -: Апр 12, 2018, 20:29 »
Здравейте,

Ще говоря по памет, но мисля че ще е достатъчно точно :-)

Този параметър определя колко агресивно да се ползва swap-a, при по-високи стойности той ще се ползва по-често, съответно при 10 или 15 ще се ползва само когато се налага.

Преди месеци намерих някакъв линк за оптимизация на работата на комп и според инфото там си направих един мой файл:

cat /etc/sysctl.d/70-local.conf
# Accelerate transfer
net.ipv4.tcp_window_scaling = 1
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 16384 16777216
net.ipv4.tcp_slow_start_after_idle = 0
vm.swappiness=10
# END

Това защото имам или доста мощни машини или доста слаби, но исках да намаля използването на суап (че е бавен).

Другите настройки са за мрежовия стек, не гарантирам за ефекта от тази промяна, аз все още си я ползвам.

PS: само да добавя че ползвам и traffic shaping скрипт и някои оптимизации на ext4 за по-бърза работа.

PS2: To calculate your swap Formula:

free -m (total) / 100 = A

A * 10

root@onezero:/home/one# free -m
             total       used       free     shared    buffers     cached
Mem:          3950       2262       1687          0        407        952
-/+ buffers/cache:        903       3047
Swap:         1953          0       1953

    so total is 3950 / 100 = 39.5 * 10 = 395

So what it mean is that when 10 % (395 MB) of ram is left then it will start using swap.

Успех,
Румен
« Последна редакция: Апр 12, 2018, 21:26 от ray »
Активен

malin

  • Участник
  • *****
  • Публикации: 700
  • Distribution: Ubuntu 16.04.4
  • Window Manager: Openbox
    • Профил
Re: Всичко за swappiness
« Отговор #9 -: Апр 13, 2018, 02:31 »
Много се дразня, като се каже "формула".
ОК, формула - предполага се, че е винаги вярно, при всякакви условности. Дали е така? Не, не и при мен, на моя стар комп. Т.е. формулата не е вярна или това не е формула, а опит за формула.
И (ако се не лъжа) става дума за ядро 2.нещо-си. Т.е. ползвате Цент, така ли да го разбирам, или сте зле финансово и сте в 20-ти век още.
Това си е същото като със swap-a, дали да го има и ако го има колко да е. Файл ли да е или дял. И формула за него има, нали, ама като има дали е вярна.
« Последна редакция: Апр 13, 2018, 02:51 от malin »
Активен

Няма проблем който да е толкова сериозен, че да не можеш да избягаш от него.

spec1a

  • Участник
  • *****
  • Публикации: 629
    • Профил
Re: Всичко за swappiness
« Отговор #10 -: Апр 13, 2018, 08:45 »
   Добре де,ако се дразните от формули,направете си няколко теста,като задавате
различни размери на суапа,и изберете този ,който изглежда най-близо до "оптимума".
Активен

GermanecaBG

  • Участник
  • *****
  • Публикации: 36
  • Distribution: Manjaro
  • Window Manager: Xfce
    • Профил
Re: Всичко за swappiness
« Отговор #11 -: Апр 21, 2018, 17:55 »
Ето една статия , вярно от 5 години е, но може да помогне с информация!
Активен

Равноправие по възможности и йерархия по резултати.