Як звільнити пам`ять linux

Як і будь-яка інша операційна система, Linux дуже ефективно працює з оперативною пам`яттю. Доступна пам`ять вільно поширюється між процесами, невикористовувані сторінки скидаються в розділ підкачки на диску, а в разі переповнення пам`яті, спрацьовує спеціальний механізм, вбудований в ядро, який аналізує всі процеси і знищує винуватця.

Коли будь-який процес пише дані на диск, вони зберігаються ядром в окремому кеші. Дуже часто цей кеш займає досить багато місця. У цій статті ми розглянемо як звільнити пам`ять в Linux, а точніше, як очистити створений програмами кеш.

Як звільнити пам`ять в Linux

У кожному дистрибутиві Linux можна використовувати три команди щоб очистити кеш пам`яті linux. Причому нам не доведеться завершувати ніяких процесів. Ось ці команди:

Очищення кешу PageCache:

# Sync- echo 2 gt; / Proc / sys / vm / drop_caches

Очищення inode і dentrie і PageCache:

$ Su -

Це зроблено з тієї причини, що для роботи кожної з команд необхідні права суперкористувача. А тепер давайте розглянемо що відбувається при виконанні цих команд.

Утиліта sync змушує систему записати все кешированниє, але ще не записані дані на диск. Це потрібно щоб звільнити якомога більше пам`яті. За замовчуванням дані після запису на диск не будуть видалені з кешу, це потрібно для того, щоб програма могла швидше їх вважати при необхідності.

Якщо не виконати команду sync ми теж звільнимо небагато місця, але після її виконання результат буде краще.




Символ поділу - дає знати оболонці, що перед тим як виконати іншу команду, потрібно дочекатися завершення роботи першої. Остання команда echo 1 gt; / Proc / sys / vm / drop_caches записує значення 1 в файл / proc / sys / vm / drop_caches. Це дає сигнал ядру, що потрібно очистити обраний нами вид кешу.

Види кеша в Linux

А тепер давайте розглянемо види кешу, які дозволяють очищати ці команди, а також як все це працює.

PageCache або сторінковий кеш - це місце, куди ядро ​​складає всі дані, які ви записували або читали з диска. Це дуже сильно прискорює роботу системи, так як якщо програмі вдруге знадобляться ті ж дані, вони просто будуть взяті з оперативної пам`яті. Але з цієї причини цей кеш займає найбільше місця.

Подивитися розмір сторінкового кешу можна за допомогою утиліти free. Тут він показаний в останній колонці - cached:

# Cat / proc / slabinfo | egrep dentry | inode


cache2

Очищати його щоб звільнити пам`ять linux не рекомендується, так як пам`яті споживається трохи, а на нове сканування файлової системи йде відносно багато часу.

Чи потрібно очищати кеш взагалі?

По-перше, якщо зайнято дуже багато пам`яті, ви можете очистити сторінковий кеш, особливо якщо це він займає багато пам`яті. По-друге, очистити кеш пам`яті linux може знадобитися, якщо ви змінювали будь-які налаштування файлової системи або ядра, а тепер хочете перевірити як це відбилося на швидкості операцій читання / запису. В такому випадку можна очистити всі кеші і зробити це без перезавантаження, що дуже зручно.

Операційна система Linux розроблена таким чином, що перед тим як звернутися до диску, буде переглянутий кеш диска, і якщо там є потрібні дані, до диска звернень не буде. Якщо очистити кеш Linux то операційна система буде працювати трохи повільніше, оскільки їй доведеться шукати дані на диску.

Автоматичне очищення кешу

Давайте розглянемо як автоматично очистити кеш пам`яті щодня о другій годині ночі за допомогою планувальника завдань cron.

Відео: Як почистити сміття на Ubuntu Linux

Спочатку створимо bash скрипт наступного змісту:

#! / Bin / bash

sync - echo 1 gt; / Proc / sys / vm / drop_caches

Очищати будемо тільки сторінковий кеш, так як він займає найбільше. Інші види чіпати не будемо, щоб даремно не знижувати продуктивність системи.

Далі зробіть скрипт виконуваним:

Відео: 017. Як Linux працює з пам`яттю - В`ячеслав Бірюков

$ Sudo crontab -e

І в розпочатому редакторі додайте рядок:

# Echo тисячі gt; / Proc / sys / vm / vfs_cache_pressure

Не забудьте, що це дуже сильно знизить продуктивність вашої системи, тому що замість кешу дані будуть читатися з диска.

Як очистити пам`ять підкачки

Простір підкачки очистити дуже просто. Для цього виконайте:

Поділися в соціальних мережах:

Схожі
Як звільнити місце в linuxЯк звільнити місце в linux
Використання оперативної пам`яті в linuxВикористання оперативної пам`яті в linux
Як приховати процес в linuxЯк приховати процес в linux
Список процесів linuxСписок процесів linux
Віртуальна флешка в linuxВіртуальна флешка в linux
Як очистити корзину в linuxЯк очистити корзину в linux
Як вбити процес linuxЯк вбити процес linux
Історія команд linuxІсторія команд linux
20 Способів вбити linux20 Способів вбити linux
Управління процесами в linuxУправління процесами в linux
» » Як звільнити пам`ять linux