Подкачка страниц (SWAP)
From DD-WRT Wiki
English • Deutsch • Español • Français • Italiano • 日本語 • Polski • Português • Русский • Svenska • 中文(中国大陆) • 中文(台灣) • |
Contents |
[edit] Введение
[edit] Что такое файл подкачки?
Файл подкачки (или раздел подкачки, SWAP) - это вспомогательное хранилище, такое как часть жесткого диска, которое может использоваться операционной системой в качестве памяти, когда системной оперативной памяти недостаточно. Это особенно полезно в системах с очень небольшим объемом оперативной памяти, таких как большинство совместимых с DD-WRT маршрутизаторов, поскольку помогает предотвратить нехватку памяти в системе при работе множества фоновых процессов.
[edit] Нужен ли файл подкачки?
Файл (или раздел) подкачки может быть полезен в ситуациях, когда DD-WRT:
- запускает приложения, интенсивно использующие память (см. Optware);
- запускает несколько фоновых процессов (опять же Optware);
- работает на маршрутизаторе с менее чем 32 МБ ОЗУ.
Файл подкачки действительно не понадобится, если:
- маршрутизатор используется только для его основных функций шлюза или точки доступа;
- запускаются только несколько дополнительных сервисов или приложений со скромными требованиями к памяти;
- система имеет много оперативной памяти (например, 64+ МБ).
Настоятельно рекомендуется не создавать раздел подкачки на флэш-накопителях (внутренняя флэш-память, SD/MMC, USB-накопители).
Вышеприведенное утверждение неверно для карт SDHC со встроенным контролем равномерности износа (wear-leveling) (например, при подключении через USB-SDHC-адаптер):
например:
- карты MicroSD(HC) являются своего рода SSD: 7 декабря 2008 г. на сайте robert.penz.name была опубликована стаья No SWAP Partition, Journaling Filesystems, … on a SSD?, примерный перевод отрывка из статьи: «... Они предполагают идеальный контроль равномерности износа ... Они также поддерживают 2 миллиона циклов перезаписи и при записи на 16 ГБ SSD со скоростью 50 МБ/с мы получаем 20 лет бесперебойной работы! С 2 МБ/с получаем 519 лет! И даже если мы сократим количество циклов перезаписи до 100 000 и будем писать со скоростью 2 МБ/с всё время, получим 26 лет работы! ... 1. Никогда не выбирайте журналируемую файловую систему для разделов SSD: чушь, вы просто рискуете безопасностью данных. Оставайтесь с ext3 ... 7. Еще одна вещь, которую следует учитывать, это то, что флэш-устройства разбивают своё пространство на блоки. Размер блоков обычно варьируется от 16 КБ до 512 КБ. Поэтому запись одного байта может привести к стиранию и перезаписи до 512 КБ ... ».
[edit] Требования
Чтобы использовать подкачку страниц нужно внешнее хранилище. Это означает, что пользователи с "кастрированными" маршрутизаторами (например, Linksys WRT54G v5), которые имеют только 2 МБ флэш-памяти и используют сборку DD-WRT Micro, не могут использовать подкачку страниц в любом случае. Для всех остальных рекомендуется использовать жесткие или SSD-диски с подключением по USB, а не SD/MMC/флэш карты памяти. Причина в том, что подкачка страниц выполняет интенсивное чтение и запись, что приводит к быстрому износу карт памяти.
Утилиты, необходимые для включения подкачки, требуют, чтобы маршрутизатор поддерживал систему пакетов Optware. Следуйте инструкциям по установке ipkg-opt. После того, как вы правильно установили ipkg-opt, подключитесь к маршрутизатору по Telnet или SSH и выполните следующие команды (имейте в виду, что у вас могут возникнуть проблемы, если вы неправильно установили поддержку optware!):
/opt/bin/ipkg-opt update /opt/bin/ipkg-opt install busybox
Пользователь Azuretech в 07:50, 29 августа 2009 г. (CEST) пишет:
Я установил раздел SWAP (на общий ресурс CIFS, но он должен работать и на устройствах USB), не используя optware, а используя следующий метод. Зачем устанавливать весь Busybox, когда все, что нужно, это swap-utils ipkg (и опционально kmod-loop и kmod-ext2 в случае, если вы собираетесь установить раздел подкачки на общий ресурс CIFS):
ipkg install swap-utils ipkg install kmod-loop ipkg install kmod-ext2 insmod /jffs/lib/modules/2.4.30/loop.o insmod /jffs/lib/modules/2.4.30/ext2.o dd if=/dev/zero of=/tmp/smbshare/swap.ext2 bs=1 seek=64M echo y | mke2fs -L optware /tmp/smbshare/swap.ext2 mkdir /tmp/swap mount -o loop /tmp/smbshare/swap.ext2 /tmp/swap dd if=/dev/zero of=/tmp/swap/swapfile bs=1024 count=65535 mkswap /tmp/swap/swapfile swapon -p1 /tmp/swap/swapfile
Проверьте, работает ли подкачка страниц командой swapon -s
.
[edit] Включение подкачки страниц
[edit] Использование файла подкачки
Чтобы включить подкачку страниц с использованием файла подкачки, необходимо сначала его создать, подготовить и затем включить подкачку на нем.
[edit] Создание файла подкачки
Прежде всего, убедитесь, что файловая система диска, на который вы хотите разместить файл подкачки, правильно смонтирована. Для целей данного руководства мы будем предполагать, что диск смонтирован как /mnt, и мы хотим использовать файл /mnt/myswap.swp для подкачки.
Используйте следующую команду, чтобы создать файл размером 16 МБ, который мы будем использовать:
dd if=/dev/zero of=/mnt/myswap.swp bs=1k count=16000
[edit] Подготовка файла подкачки
Прежде чем мы включить файл подкачки, нужно сначала настроить его. Следующая команда сделает это:
/opt/bin/busybox mkswap /mnt/myswap.swp
[edit] Включение файла подкачки
Теперь, когда файл подкачки был создан и настроен, нужно включить подкачку страниц с его использованием командой swapon:
/opt/bin/busybox swapon /mnt/myswap.swp
[edit] Использование раздела подкачки
Настроить раздел подкачки немного сложнее, так как сначала необходимо создать раздел, а затем отформатировать его с помощью файловой системы linux-swap. Как только это будет сделано, при условии, что раздел подкачки находится в /dev/scsi/host0/bus0/target0/lun0/part5 (обычно для USB-накопителей v24 с несколькими разделами), единственная команда, которая должна быть выполнена:
/opt/bin/busybox swapon /dev/scsi/host0/bus0/target0/lun0/part5
[edit] Проверка подкачки страниц
Самый простой способ проверить, работает ли подкачка страниц, это использовать команду free. Ниже приведен пример вывода команды free в системе с 32 МБ ОЗУ и разделом подкачки 64 МБ.
root@MyRouter:/opt/bin# free total used free shared buffers Mem: 29340 27652 1688 0 1184 Swap: 64220 300 63920 Total: 93560 27952 65608 root@MyRouter:/opt/bin#
В качестве альтернативы, если включен системный журнал syslog, вы можете проверить файл /var/log/messages на наличие любых системных сообщений, связанных с подкачкой.
[edit] Предостережение
Не используйте этот метод, если используете USB-накопитель с несколькими разделами. Обратитесь к статье Хранилище USB для получения дополнительной информации.