Swapspace — консольная утилита, работающая в фоновом режиме (демон), предназначенная для динамического управления подкачкой (динамический менеджер подкачки / a dynamic swap manager). Создана в рамках проекта Software Industry Promotion Agency (SIPA), автор Jeroen Т. Vermeulen. 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-файлов, повышая отзывчивость системы.