Динамічне керування підкачкою Swapspace
Swap / Підкачування - механізм/процес роботи з віртуальною пам'яттю, при якому окремі фрагменти пам'яті / сторінки пам'яті (зазвичай не активні, довго не використовувалися, в яких немає необхідності) переміщаються з оперативної пам'яті на жорсткий диск (використовується як віртуальна пам'ять), звільняючи ОЗУ для завантаження інших фрагментів пам'яті (ядро розвантажує пам'ять від найменш популярних сторінок). У більшості операційних систем, заснованих на ядрі Linux, swap зазвичай розміщують на окремий розділ диска, що прискорює доступ до даних (порівняно з розташуванням swap на звичайному розділі). Також є можливість використання swap-файлу.
При установці OS Linux розрахунок розміру swap простору в різних джерелах розраховують по різному, більшості випадків (за негласно прийнятими правилами) розмір розділу swap для настільних ПК роблять рівним розміру оперативної пам'яті (при її розмірі 1-2Гб), двом її розмірам (при розмірі оперативної пам'яті 512Мб і менше), або половині розміру оперативної пам'яті (при її розмірі 2Гб і більше). Але під час використання системи, може виникнути необхідність у більшому розділі підкачки (необхідний коли системі необхідно більше пам'яті, ніж вільно на даний момент). У ядрі Linux (з версії 2.6) доданий параметр swap - swappiness має значення ефективності від 0 до 100 (що вище значення, то більше вписувалося сторінок пам'яті вивантажується в swap, переважно використовується значення 60). Дізнатися значення можна в консолі: cat /proc/sys/vm/swappiness
Для того, щоб при необхідності не збільшувати розмір фізичного розділу swap і мати достатньо місця для підкачування можна скористатися Swapspace. При її використанні звичайний розділ підкачки, заданий приустановці, може бути мінімального розміру або зовсім бути відсутнім (особливо при розмірі оперативної пам'яті 4Гб і більше). У будь-якому випадку, будучи запущеною, утиліта дозволить користувачеві не замислюватись (під час роботи) про вільний swap простір. Як тільки Swapspace визначить, що в системі оперативна пам'ять заповнена (до заданої в налаштуваннях межі) і потрібно її звільнити, на жорсткому диску у вказаному каталозі буде автоматично створено swap-файл необхідного для звільнення оперативної пам'яті розміру (трохи більше за необхідний). І навпаки, якщо оперативна пам'ять вільна і не потрібна, swap-файл звільняється. Це дозволяє системі при запуску додатків, що інтенсивно працюють з пам'яттю, мати достатньо місця для їх нормальної роботи.
На відміну від програм аналогічного призначення, таких як dynswapd і swapd, Swapspace автоматично створює файли підкачування необхідного розміру лише за необхідності. Це означає, що її робота не залежить від налаштувань (обмежень) на кількість swapfiles, заданих у системних налаштуваннях (незалежно від того, що ядро записує на диск). Якщо буде визначено що все більше і більше файлів підкачки необхідно, то будуть створюватися все більші файли, а якщо необхідність невелика, то створюються дрібні файли для більш швидкого їх завантаження в оперативну пам'ять. Будучи запущеною Swapspace займає близько 300Кб в оперативній пам'яті (у міру роботи розмір не збільшується), а при розробці основна увага приділялася простоті та зручності у використанні, враховувалися всі помилки та недоліки реалізації у додатках аналогічного призначення. Зручність Swapspace полягає ще й у тому, що програма під час роботи не ставить ніяких "дурних питань" користувачу, намагаючись самостійно визначити що необхідно привиконання тих чи інших завдань (відповідно до налаштувань, без втручання користувача).
Конфігураційний файл Swapspace дуже простий і знаходиться: /etc/swapspace.conf
У ньому можна задати мінімальний і максимальний розмір swap-файлу, відсоток резервування, кількість (у відсотках) заповнення оперативної пам'яті при якому починають створюватися swap-файли сторінок, що не використовуються, а так само відсоток вільного місця для зворотного завантаження сторінок в оперативну пам'ять і тривалість затримки процесів (за винятком створень "зайвих" swap-файлів). Каталог "за замовчуванням" для створюваних swap-файлів: /var/lib/swapspace
Swapspace може виявитися дуже корисним інструментом при використанні в системах, що активно працюють з великим обсягом даних, видаливши з ОЗУ значну кількість сторінок використовуваних додатками тільки при ініціалізації і більше ніколи (скинути їх у swap і розвантаживши пам'ять), а також зводячи до мінімуму кількість створюваних ядром swap-файлів, підвищуючи чуйність системи.