Centos 5, 6 витік пам'яті в файловий кеш (cached) або як звільнити cached memory

  • UNIX-like
  • CentOS
  • CentOS 5,6: Витік пам'яті в файловий кеш (Cached) або як звільнити cached memory

Centos 5, 6 витік пам'яті в файловий кеш (cached) або як звільнити cached memory
Як багато хто вважає, в CentOS існує проблема витоку пам'яті в файловий кеш (Cached) інакше кажучи закешовану (cached memory) пам'ять. На самому те справі витік пам'яті в Cached файловий кеш, а вірніше виділення пам'яті під файловий кеш є нормальною поведінкою ядра Linux.

Ядро Linux розроблено для використання пам'яті максимально ефективним чином, тому на працюючому робочому столі або сервері майже вся пам'ять яка не використовується відводиться під дисковий кеш (cached), а при нестачі оперативної пам'яті (RAM) для додатків вона буде взята назад з cached. Приклад значень утиліти top:

Centos 5, 6 витік пам'яті в файловий кеш (cached) або як звільнити cached memory
В поле Mem. 88324k free бачимо 88 МВ оперативної пам'яті (RAM), а в поле Swap. 80572k cached спостерігаємо 80 МВ які система виділила під обслуговування дискового кешу (Swap - своп). Як раніше згадувалося такий підхід до розподілу оперативної пам'яті є нормальною поведінкою ядра Linux, а якщо це комусь ненравиться, то для звільнення закешовану оперативної пам'яті в CentOS 5,6 можна скористатися наведеними нижче йшов-скриптом:

Бачимо що з Swap. c ached оперативка (RAM) перейшла в Mem. free. Дані про розподіл оперативної пам'яті можна отримати командою free -m:

Якщо не вдається звільнити закешовану оперативну пам'ять (RAM) з повідомленням "Permission denied", то це може говорити про те, що або ці маніпуляції заборонені шаблоном системи віртуалізації або ж щось з системою в цілому, а скоріше винен шаблоном системи віртуалізації за яким створювалася VPS. якщо команда виконується на VPS:

Так наприклад при наявності веб-панелі управління VPS. зміна імені хоста всередині системи vi / etc / sysconfig / network не дасть бажаного результату і після перезавантаження іменя хоста залишиться старим - зміну імені хоста в даному випадку слід виконувати в веб-панелі управління VPS!

Наведений тут спосіб очищення (звільнення) закешовану оперативної пам'яті (RAM) можна застосувати не тільки до CentOS 5,6, а й до багатьох інших ОС на базі ядра Linux.

Слід пам'ятати. що виділення вільної пам'яті під файловий кеш є нормальною поведінкою ядра Linux!

Чому дані все одно йдуть в Swap якщо пам'яті вистачає?

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

Якщо Swap переповниться сервер впаде?

Зазвичай Swap переповнити складно! Застарілі, мало затребувані дані будуть видалені, а на їх місце будуть записані нові. Звичайно всьому є межа - в рідкісних випадках падіння сервера, причиною може послужити аномально велику кількість додатків безперервно обробні аномально велику кількість даних - в такому випадку сервер звичайно "ляже".

Чи можна очистити Swap

Так, Swap можна очистити виконавши з під супер користувача команду swapoff -a. при цьому припиняється використання всіх файлів підкачки. Після виконання команди вміст Swap завантажується назад в оперативну пам'ять, а розділ підкачки відключається.

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

Після відключення Swap і завантаження вмісту Swap в оперативну пам'ять, знову включити Swap можна командою swapon -a. Іноді це може допомогти повернути чуйність системи без перезавантажень.

Посилання по темі:

Рекомендований контент

Адмін БагоІскатель затятий борець за безглючная роботу будь-яких механізмів і організмів у всьому всесвіті і тому перебуває у вічному пошуку усіляких багів, а той хто шукає як відомо завжди знаходить. Коли щось або когось вилікувати не в змозі, то зі словами "Я в пеклі, а ви все чорти" йде в запій вийшовши з якого знову береться лікувати невиліковне.