linux:system:ram:info

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

linux:system:ram:info [16/05/2026 11:00] – створено osvexlinux:system:ram:info [16/05/2026 11:50] (поточний) osvex
Рядок 1: Рядок 1:
-====== RAM, оперативна памʼять ======+====== Загальна інфо ======
  
 Керуванням ОЗП займається **ядро Linux** (kernel), а саме його частина - MMU (Memory Management Unit). Керуванням ОЗП займається **ядро Linux** (kernel), а саме його частина - MMU (Memory Management Unit).
Рядок 6: Рядок 6:
  
 Оперативна памʼять працює завжди на повну. Тут діє умовне правило Linux: **вільна памʼять - марна памʼять. ** Оперативна памʼять працює завжди на повну. Тут діє умовне правило Linux: **вільна памʼять - марна памʼять. **
-===   Linux   використовує ОЗП так: ===+=== Linux використовує ОЗП так: ===
  
   - **Used**: памʼять яку реально зайняли програми (браузери, сервіси, веб-сервери).   - **Used**: памʼять яку реально зайняли програми (браузери, сервіси, веб-сервери).
-  - **Buffers/Cache:** кешування+  - **Buffers/Cache:**  кешування
       * Ядро бере "вільну" памʼять і завантажує туди дані з диска, до яких часто звертається користувач/служба.       * Ядро бере "вільну" памʼять і завантажує туди дані з диска, до яких часто звертається користувач/служба.
-      * Якщо програмі знадобиться додаткова памʼять, вона миттєво візьметься з **Cache** та віддасть її цій програмі.+      * Якщо програмі знадобиться додаткова памʼять, вона миттєво візьметься з **Cache**  та віддасть її цій програмі.
       * Саме тому відбувається ситуація, наприклад: в системі 16ГБ памʼяті, під програми зайнято 4ГБ, а 12ГБ пішло під кеш. Це добре.       * Саме тому відбувається ситуація, наприклад: в системі 16ГБ памʼяті, під програми зайнято 4ГБ, а 12ГБ пішло під кеш. Це добре.
-  - **SWAP (розділ підкачки або файл підкачки): ** це місце на диску (hdd/sdd), яке ядро використовує як **продовження оперативної памʼяті.** \\ Навіщо** ** він потрібен? +  - **SWAP (розділ підкачки або файл підкачки): **  це місце на диску (hdd/sdd), яке ядро використовує як **продовження оперативної памʼяті.** \\ Навіщо він потрібен? 
-      * **Аварійний запас:** Коли RAM закінчується, ядро переміщує туди сторінки пам'яті, які використовуються рідко (анонімні сторінки), звільняючи місце в швидкій RAM для активних процесів. +      * **Аварійний запас:**  Коли RAM закінчується, ядро переміщує туди сторінки пам'яті, які використовуються рідко (анонімні сторінки), звільняючи місце в швидкій RAM для активних процесів. 
-      * **Гібернація:** В Debian або в інших системах, якщо ви використовуєте ноутбук, вміст RAM записується в Swap при гібернації. +      * **Гібернація:**  В Debian або в інших системах, якщо ви використовуєте ноутбук, вміст RAM записується в Swap при гібернації. 
-===   Параметр   vm.swappiness     ===+=== Параметр vm.swappiness ===
  
 Це налаштування (від 0 до 100), яке каже ядру, як агресивно використовувати Swap. Це налаштування (від 0 до 100), яке каже ядру, як агресивно використовувати Swap.
Рядок 30: Рядок 30:
   *   *
  
-Для серверів баз даних часто ставлять ''swappiness = 1'' або ''10'', щоб максимально використовувати швидку RAM і не чіпати повільний диск.** Це ВАЖЛИВО!**+Для серверів баз даних часто ставлять ''swappiness = 1''  або ''10'', щоб максимально використовувати швидку RAM і не чіпати повільний диск.** Це ВАЖЛИВО!**
  
-===   Що відбувається коли оперативна памʼять в 100%?    ===+=== Що відбувається коли оперативна памʼять в 100%? ===
  
 Це критична ситуація, яка може привести до повної зупинки системи. Це критична ситуація, яка може привести до повної зупинки системи.
  
-  * **Thrashing (Пробуксовка):** Спочатку система починає "гальмувати". Ядро панічно намагається звільнити пам'ять: скидає кеші, вивантажує дані в Swap, завантажує назад. Диск працює на 100%, процесор чекає даних (iowait). Система може перестати реагувати на клавіатуру та SSH. +  * **Thrashing (Пробуксовка):**  Спочатку система починає "гальмувати". Ядро панічно намагається звільнити пам'ять: скидає кеші, вивантажує дані в Swap, завантажує назад. Диск працює на 100%, процесор чекає даних (iowait). Система може перестати реагувати на клавіатуру та SSH. 
-  * **Прихід OOM Killer:** Коли фізична пам'ять забита і Swap теж забитий (або відсутній), ядро розуміє, що далі працювати неможливо. Тоді воно викликає механізм **Out of Memory Killer (OOM Killer)**. +  * **Прихід OOM Killer:**  Коли фізична пам'ять забита і Swap теж забитий (або відсутній), ядро розуміє, що далі працювати неможливо. Тоді воно викликає механізм **Out of Memory Killer (OOM Killer)**. 
-==   OOM Killer (  Out-Of-Memory Killer): ==+== OOM Killer ( Out-Of-Memory Killer): ==
  
-Це функція ядра, яка виконує роль "кіллера" процесів щоб підняти систему. Має спеціальну систему підрахунку пріоритетності або підрахунку балів (**OOM Score**). Тобто він не "вбиває" будь який процес, а спочатку підраховує **OOM Score ** для кожного процесу.+Це функція ядра, яка виконує роль "кіллера" процесів щоб підняти систему. Має спеціальну систему підрахунку пріоритетності або підрахунку балів (**OOM Score**). Тобто він не "вбиває" будь який процес, а спочатку підраховує **OOM Score **  для кожного процесу.
  
   * Критичний: той хто займає більше памʼяті   * Критичний: той хто займає більше памʼяті
Рядок 48: Рядок 48:
 Ви можете побачити цей рахунок у файлі: ''/proc/<PID>/oom_score''. Ви можете побачити цей рахунок у файлі: ''/proc/<PID>/oom_score''.
  
-У логах (''/var/log/syslog'' або ''dmesg'') це виглядає так: ''Out of memory: Kill process 1234 (mysqld) score 950 or sacrifice child''+У логах (''/var/log/syslog''  або ''dmesg'') це виглядає так: ''Out of memory: Kill process 1234 (mysqld) score 950 or sacrifice child''
  
  • linux/system/ram/info.1778929202.txt.gz
  • Востаннє змінено: 16/05/2026 11:00
  • повз osvex