Тема: Ereswap (фрагментация и восстановление свопа на N900)
..................... Ereswap - Обновление Свопа Выполняется Просто .................
Ereswap - это набор скриптов, которые детектируют фрагментацию свопинга и восстановливают его.
Фрагментация свопа происходит, когда общее количество мегабайт, записанных во время продолжительности свопинга, превышает его максимальный размер. Так что это, своп записанный последовательно (блоки, которые больше не нужны отмечены как свободные) но никогда не используемый. После достижения окончания области подкачки, ранее используемые свободные блоки записываются снова, используя новую информацию. Так уничтожается последовательная запись, вызывающая масштабное замедление свопа (по сравнению с оперативной памятью). Временное решение для этой проблемы отключение и новая активизация свопа - содержание файловой системы linuxswap не выдерживает рестарты, и когда-то своп перезапущен, то снова перезаписывает последовательность.
Еreswap достигают этого за счёт подсчёта (через iostat) количество мегабайт, сохраненных для сектора свопа во время выполнения (*нет* текущее использование свопа) и сравнивая со соседними числами во время последнего подкачки (или начальная загрузки). Если это значение выше чем заданное значение, своп повторно задействуется, и пользователю, через систему уведомления Maemo, сообщается об этом. В случае отказа используется та же самая система уведомления, чтобы сообщить пользователю о шаге, который создал проблемы. Местоположение свопа и его размеры, полностью конфигурируемы.
Ereswap - инструмент для X-Терминала, но пользователь может легко создать .desktop ярлыки для активизации через QueenBeeconWidget, Shortcutd или любым другим методом. Еreswap является легко настраиваемым и расширяемым инструментом - внешний интерфейс (GUI) для него может быть легко написан на любом языке, поддерживаемым системой Maemo (довольно банально, чтобы сделать это). Ereswap можно, с минимальными усилиями, интегрировать в другие программы.
Для того, чтобы Ereswap работал должным образом, ему требуется наличие двух секторов свопа (на microSD или eMMC, все комбинации разрешены). Для максимальной производительности системы Maemo, с использованием свопа *только* на microSD и сохранением резервной копии, рекомендуется неиспользуемый своп на eMMC с размером по умолчанию 768 Мбайт, или хотя бы 200 Мбайт либо больше (в случае, если кто-то захочет перераспределить и восстановить место для других секторов).
Домашняя страница: Ereswap
Автор: Piotr Jawidzyk
Язык: не требуется
Скачать: Maemo 5
Скачать .deb/.rpm: Maemo 5
После инсталляции, редактируйте:
/home/user/.config/ereswap/config
... обеспечение местоположения для основного свопа, это - размер, и резервный своп. Для этого выполните:
/home/user/.config/ereswap/adjust-rcS-late.sh
Это для настройки вашего "/etc/event.d/rcS-late", - во время начальной загрузки - включит ваш основной своп и сбросит счетчик Mb's-written-to-swap (Мбайт-записано-в-своп). Этот шаг должен быть сделан только раз.
Теперь, в любой момент, для активации:
ereswap
... в терминале. Это проверит счетчик и сообщит вам о количестве данных полученых прежде, чем совершить фрагментацию свопа (или любой произвольный набор значений в файле конфигурации), или сколько после этого Мбайт. Во втором случае это перезапустит своп.
Чтобы в любое время перезапустит своп введите:
freswap
... это целесообразно, если вы достигли предела, и планируете сделать объем требующий много памяти.
Если вы меняете местоположение воего свопа, тогда редактируйте файл конфигурации и инициируйте его:
/home/user/.config/ereswap/update-rcS-late.sh
Это обновит ваш rcS-late относительно местоположения нового свопа и/или его размера.
--------------------------------------------------
Обратите внимание на изменение, сделанное к rcS-late, после вызова adjust-rcS-late:
Этот скрипт заменяет поведение:
swapon -a || "Failed to enable paging partition"
... с кодом, который пытается включить наш основной своп и в случае отказа (например, это сектор на microSD, который был повреждён) включит резервный своп. Такой подход гарантирует, что никакакой циклической перезагрузки не произойдет, в случае отказов свопа - пока пользователь не обеспечит нормальные параметры настройки (например, использование включенным основного и резервного свопа, позволяет сказать, та же самая microSD карта не самое отказоустойчивое решение).
Патчинг rcS-late был полностью проверен, и всё же, для максимальной безопасности, перед регулировкой обязательно сделайте резервную копию!
ВОПРОС: Что-то пошло не так, как надо с моим основным свопом и был включён резервный своп. Почему Ereswap должным образом не считает Мбайты, чтобы обнаружить фрагментацию свопа?
ОТВЕТ: Это сделано преднамеренно - счетчик данных *всегда* записывает на ваш основной своп. Используя резервный своп только как надёжный, и все сделано для того, чтобы вы узнали об этом, чем скорее, тем лучше. Если вы не можете быстро устранить проблему с основным свопом и вы позарез нуждаетесь в функциональных возможностях обновления свопа, тогда используйте freswap, или редактируйте конфиг, и включите ваш резервный своп как основной.
ВОПРОС: Я изменил свое местоположение свопа, так я хотел запустить update-rcS-late.sh, но по ошибке, я уже выполнил adjust-rcS-late.sh, на уже прпатченном rcS-late! Мой rcS-late повреждён? Я войду в bootloop, после перезагрузки?
ОТВЕТ: Скрипты написаны разумным путём, который по-любому не должен завершиться не на одной из проблем, после выполнения на неправильной версии rcS-late (то есть попытка обновить имеющийся в наличии rcS-late, или попытка пропатчить один уже имеющейся) - скрипт завершится с выходом 0 (успешно), но без изменений в файле.
Для максимальной безопасности вы, все же, можете восстановить rcS-late из резервной копии. Кроме того, я не могу предсказать то, что случится, если вы будете использовать любой из пропатченных rcS-late скриптов на своём модифицированном rcS-late (один, изменил *not* в соответствии с этой программой) - вообще, у вас всё должно быть хорошо, поскольку по умолчанию своп разрешающий поведение не был изменён, но будьте особо осторожны в этом случае.
Версия 1.2 (от 28.05.2012):
? Профиксена проблема препятствующая начальной загрузке системы.
? Новая попытка добавить busybox-power как зависимость.
Версия 1.1 (от 27.05.2012):
? Профиксен метод подтверждающий правильность свопинга, который мог привести к неспособности начальной загрузке устройства (через ошибочное /etc/event.d/rcS-late).
? Папка программы, изменена на "/home/user/.config/ereswap/config". Конфиг и регулировщики rcS-late теперь находятся там. Измененно по просьбе пользователей.
? Исполняемые скрипты программы изменились от "ereswap.sh" и "freswap.sh" к "ereswap" и "freswap". Измененно по просьбе пользователей.
Версия 1.0 (от 21.05.2012):
? Первый выпуск программы.