Linux -- это интересно

Swapspace


Рубрика: Системные утилиты -> Администрирование -> Hужное/полезное
Метки: | |
Просмотров: 11346

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


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

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

Комментариев: 5 RSS
Albert_Wesker1 2011-12-17 в 17:49:42

Есть ли смысл создавать swap на компьютере с 8 Гб оперативы?

Уже при 4Гб можно и не делать, но с 1-2Гб довольно полезно...

Кстати, эта утилита, на престарелом ноуте, с 1Гб памяти и 1Гб подкачки, заметно повеселила работу больших приложений, даже на глаз видно! Я был приятственно этому удивлён! :)))

У меня swap на отдельном разделе, оперативы 2 ГБ, есть ли смысл использовать эту утилиту, или же ее используют только ВМЕСТО отдельного swap-раздела?

Это утилита по работе с виртуальной памятью. А где она находтся - в файле или на отдельном разделе, ей всё равно. Вроде как. Я так понял, что если выделенный раздер подкачки будет полностью заполнен, будут создаваться swap-файлы в /var/lib/swapspace.

есть ли смысл использовать эту утилиту
Смысл её пользовать есть, даже при 2Гб оперативки и более, но лучше это делать в связке с утилитами: preload, prelink, ulatencyd и zramswap. Выяснено путём научно-экспериментального тыка... Но на слабых компах нагляднее ощущается их присутствие, даже без замеров.

У меня в rc.conf добавлено такое:

DAEM dbus @wicd @alsa @preload @prelink @ulatencyd @zramswap @swapspace)
Оставьте комментарий!
Используйте нормальные имена.Войти через loginza
Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email.
(При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д.)



 
(обязательно)