Даний спосіб добре допоможе тим, у кого на комп'ютерах встановлений невеликий обсяг оперативної пам'яті і виникають проблеми з продуктивністю і «чуйністю» операційної системи.
Починаючи з версії ядра Linux 3.14 в стандартну поставку включений модуль zRam (раніше відомий як compcache).
Як говориться в Вікіпедії :
... .увелічівает продуктивність шляхом запобігання підкачки сторінок на диск, використовуючи стислий блоковий пристрій в оперативній пам'яті, поки не з'явиться необхідність використовувати файл підкачки на жорсткому диску. Швидкість обміну з оперативною пам'яттю швидше, ніж з жорстким диском, отже zRam дозволяє Linux виробляти більшу кількість операцій підкачки, особливо на старих комп'ютерах з малим об'ємом оперативної пам'яті.
zRam активно використовується на Ubuntu Nexus 7, Android-пристроях, проектами CyanogenMod. Компанія Google крім Android використовує zRam в своїй операційній системі ChromeOS.
Використання zRam рекомендується для нетбуків, старих комп'ютерів, віртуальних систем (н.р. на VPS від Amazon або DigitalOcean та інших) або в різних вбудованих системах.
Взагалі способів застосування zRam не обмежуються тільки стисненням і зменшенням скидаються в swap даних. Взагалі zRam створює блокові пристрої (аналог жорсткого диска в оперативній пам'яті) в оперативній пам'яті. При цьому, всі дані потрапляють в дані блокові пристрої стискаються. Загалом, що ви помістіть в ці блокові пристрої залежить тільки від вас. Але в більшості випадків цей модуль і цю технологію застосовують саме для swap.
Приступимо до налаштування.
Вихідні дані:
ОС: Ubuntu 14.04 LTE
Для активізації zRam досить встановити пакет zram-config:
sudo apt-get install zram-config
Після установки можна перевірити працездатність:
swapon -s
Якщо ви бачите щось схоже, то все нормально:
Так як розділи створюються в оперативній пам'яті, то я не раджу вам змінювати параметр vm.swappines (змінюється в файлі /etc/sysctl.conf), який часто рекомендують виставити в значення 10 або взагалі 0.
Swappines - це параметр, який контролює тенденцію ядра переміщати процеси з фізичної пам'яті в swap-розділ. За замовчуванням в Ubuntu виставлено значення 60, тобто коли ваша система починає задіяти понад 40% оперативної пам'яті, то система починає скидати сторінки в swap.
Іншими словами. Якщо параметр vm.swappines виставлений в значення 0, то система не буде використовувати swap до тих пір, поки не заповниться вся оперативна пам'ять. Якщо ж значення виставлено в 100, то всі процеси будуть переміщатися в swap, що створить сильне навантаження на дискову підсистему і будуть проявлятися явні затримки в роботі самої ОС і додатків.
Як видно на скріншоті вище, при автоконфігурірованія zRam система створила 4 розділу (стільки скільки ядер в системі, тому що операції в zRam однопоточні) і виділив на кожен розділ по 470 Мб (приблизно), що становить близько 12% ОЗУ.
Якщо вас з яких-небудь причин не влаштовує автоматичне створення zRam-розділів, то можна виконати конфігурацію вручну.
/ Sbin / modprobe zram num_devices = 4 echo 1073741824> / sys / block / zram0 / disksize echo 1073741824> / sys / block / zram1 / disksize echo 1073741824> / sys / block / zram2 / disksize echo 1073741824> / sys / block / zram3 / disksize / sbin / mkswap / dev / zram0 / sbin / mkswap / dev / zram1 / sbin / mkswap / dev / zram2 / sbin / mkswap / dev / zram3 / sbin / swapon / dev / zram0 -p 10 / sbin / swapon / dev / zram1 -p 10 / sbin / swapon / dev / zram2 -p 10 / sbin / swapon / dev / zram3 -p 10
Перший рядок - визначаємо скільки розділів потрібно створити. Зазвичай створюють стільки розділів, скільки ядер процесора. У моєму випадку це 4. Розділи нумеруються від 0. Тому номера створюваних розділів: 0-3.
Рядки 2-5, визначають якого розміру (в байтах) повинні бути zRam розділи. Я визнач для всіх рівний обсяг (в даному випадку 1Гб).
Рядки 6-9, створюють swap-розділ в створених блокових пристроях.
Рядки 10-11, активують swap з пріоритетом 10. Чим вище пріоритет, тим раніше буде використовуватися даний розділ. Для дискового swap бажано виставити пріоритет значно нижче ніж у zRam розділів.
Після всього цього перевіряємо результат за допомогою команди swapon
swapon -s
На цьому все, настройка закінчена.
comments powered by HyperComments