Динамическое управление подкачкой: Swapspace

Изображение пользователя DarkneSS.

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-файлов, повышая отзывчивость системы.

Лицензия: GNU General Public License v2

Домашняя страница

Взято с ZenWay.ru

Комментарии (13)

0
RA9OAJ - 18 Декабрь, 2011 - 13:11
Изображение пользователя RA9OAJ.

Ну, мое мнени - очень хорошо, теперь не надо будет отпиливать кусок харда под практически никогда не используемое непонятно что :)
Надо будет испробовать, интересно как оно себя поведет с гибернацией?
+1, однозначно

0
Anticr - 18 Декабрь, 2011 - 21:26
Изображение пользователя Anticr.

приложение интересное конечно, но что будет если у кого нить приложение будет происходит утечка памяти, не займет ли это все место??

0
DarkneSS - 18 Декабрь, 2011 - 22:56
Изображение пользователя DarkneSS.

Лучше, если забьётся вся память и будут феерические тормоза?

0
RA9OAJ - 19 Декабрь, 2011 - 04:59
Изображение пользователя RA9OAJ.

Кстати о птичках. А вот нету у меня этого бага, хз почему, а нету. Еще с версии 11.04 Kubuntu исчез. Копирую на внешний HDD на 2TB + на флешку другу скидываю фильмы ~30ГБ и все пучком :)
Вот только почему оно исчезло? Я в тот момент железо сменил на 6 ядер + мать не из дешевых. А памяти как было 4ГБ так оно и осталося... Может все-таки железо было виновато?

0
DarkneSS - 19 Декабрь, 2011 - 07:31
Изображение пользователя DarkneSS.

Думаю, если бы с 12309 можно было что-то такое определённое сказать, его бы уже давно пофиксили...

0
Flameflower - 19 Декабрь, 2011 - 06:05
Изображение пользователя Flameflower.

А до консоли никак не добраться что ли?
У меня частенько случалось, что VLC откушал памяти ~8Гб, после чего система уходила на 4Гб в swap и load average подрос до ~20. 2-3 минуты и процесс был закрыт, а спустя еще несколько минут система вновь вернулась в рабочее состояние.

0
DarkneSS - 19 Декабрь, 2011 - 07:30
Изображение пользователя DarkneSS.

Когда как, иногда только и можешь, что ждать, когда система отойдёт. Вообще я вроде справился с этим, выбирая планировщик noop для флешек.

0
Foxy - 19 Декабрь, 2011 - 17:54
Изображение пользователя Foxy.

Еще бы знать, какие файловые системы допустимы быть на разделе, где создаются своп-файлы...

0
DarkneSS - 19 Декабрь, 2011 - 19:53
Изображение пользователя DarkneSS.

Думаю, любые монтируемые. Однако использование ФС с драйвером в fuse (например, ntfs-3g) приведёт к нехилой нагрузке на процессор.

0
9nobog - 25 Январь, 2012 - 00:10
Изображение пользователя 9nobog.

Читал об этом в линуксформате пару лет назад наверно, только мне до сих пор непонятно, почему при 4 гб памяти и низкой загрузке, swap все равно загружает. Т.е. о 60% речи и не идет, может использоваться 500 мб из 4000 и уже нагружать swap. Кстати кто-нибудь пользовался программой zram? Есть эффект?

0
DarkneSS - 25 Январь, 2012 - 07:16
Изображение пользователя DarkneSS.

У вас так настроен сваппинесс.

0
Гость - 7 Май, 2016 - 10:42

Как установить эту утилиту?

0
DarkneSS - 7 Май, 2016 - 19:01
Изображение пользователя DarkneSS.

sudo apt-get install swapspace

Отправить комментарий

CAPTCHA на основе изображений
Введите цифры