
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
Изменить значение (например на 10, рекомендуемый минимум) можно выполнив:
echo 10 > /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-файлов, повышая отзывчивость системы.
Лицензия: GNU General Public License v2
Комментариев: 6 RSS
1Albert_Wesker17-12-2011 17:49
Есть ли смысл создавать swap на компьютере с 8 Гб оперативы?
2posixru17-12-2011 18:22
Уже при 4Гб можно и не делать, но с 1-2Гб довольно полезно...
Кстати, эта утилита, на престарелом ноуте, с 1Гб памяти и 1Гб подкачки, заметно повеселила работу больших приложений, даже на глаз видно! Я был приятственно этому удивлён! :)))
3Онаним19-01-2012 02:13
У меня swap на отдельном разделе, оперативы 2 ГБ, есть ли смысл использовать эту утилиту, или же ее используют только ВМЕСТО отдельного swap-раздела?
4vovans19-01-2012 11:38
Это утилита по работе с виртуальной памятью. А где она находтся - в файле или на отдельном разделе, ей всё равно. Вроде как. Я так понял, что если выделенный раздер подкачки будет полностью заполнен, будут создаваться swap-файлы в /var/lib/swapspace.
5posixru19-01-2012 16:22
У меня в rc.conf добавлено такое:
6Sergey22-10-2020 09:27
А не будет ли проблем с работоспособностью гибернации? То есть, получается, что нужно создавать ещё один swap специально для работы гибернации и указывать resume_offset в параметрах ядра, или в случае со swapspace это делается иначе?
Вы можете войти под своим логином или зарегистрироваться на сайте.