Raspberry Pi имеет ограниченный объем оперативной памяти, и больше нельзя добавить, поскольку это одноплатный компьютер. У Pi 3 всего 1 ГБ оперативной памяти. Pi 4, в зависимости от модели, имеет до 8 ГБ ОЗУ. Программные приложения иногда требуют больше памяти. Большую часть времени это требование к памяти представляет собой кратковременный всплеск. Когда это произойдет, Raspberry Pi либо «зависнет», либо «вылетит» из-за ограниченного объема памяти. Сбой также может привести к повреждению SD-карты, что приведет к потере данных.

Чтобы избежать возможности сбоя, на Pi можно настроить виртуальную память в виде свопа. Нужное количество необходимо добавить на правильное устройство, чтобы получить максимальную отдачу от него. Весь процесс систематически объясняется с инструкциями для различных операционных систем.

Понимание того, как работает процесс памяти

RAM - это физическая память. На Pi 4 он расположен рядом с процессором. На Pi 3 оперативная память размещена на нижней стороне печатной платы. В отличие от обычных материнских плат, оперативная память на Raspberry Pi припаяна к плате, что ограничивает возможность увеличения ее объема.

instagram viewer

Когда программное приложение запускается, оно использует часть оперативной памяти для своей работы. Подумайте о браузере в качестве примера. Когда веб-страница загружается во вкладку, она сохраняет данные страницы в оперативной памяти вместе с памятью, необходимой для запуска программы браузера. Чем больше вкладок загружается, тем больше заполняется оперативная память. Без виртуальной памяти в какой-то момент ОЗУ закончится, и новые вкладки вообще нельзя будет загрузить. Просмотр существующих вкладок также значительно замедлится, так как для основных операций нет свободной памяти. В этот момент Pi перестанет отвечать, и единственный способ вернуть его — это включить и выключить питание.

Это случайное отключение может вызвать серьезные проблемы, особенно когда ОС находится на SD-карте. Карта может быть заблокирована в состоянии «только для чтения» или, в худшем случае, вообще повреждена. Это когда происходит полная потеря данных.

Влияние состояния «недостаточно памяти (OOM)» можно свести к минимуму, настроив подкачку для использования в качестве виртуальной памяти. Свап может быть установлен в виде файла или раздела на диске и функционирует как расширение оперативной памяти. Когда доступная оперативная память заканчивается, редко используемые данные в ней перемещаются в подкачку в процессе, называемом подкачкой. В случае примера с браузером это будут данные из загруженной вкладки, которая используется реже всего. Когда вкладка снова активируется, эти данные будут перемещены обратно в оперативную память для отображения веб-страницы.

Swap обеспечит стабильность операций с интенсивным использованием памяти. Если есть кратковременный всплеск потребления памяти, подкачка поможет поглотить всплеск и сохранить работоспособность системы, а не закончиться полным зависанием.

Выбор подходящего устройства для настройки Swap

Подкачка необходима, но расположение и размер настраиваемого подкачки также не менее важны. В идеале swap должен быть на быстром устройстве. После кэш-памяти процессора оперативная память является второй по скорости памятью. DDR4 на Pi имеет пропускную способность 4,4 ГБ/с (гигабайт в секунду). Обмен должен быть на одном из других доступных устройств хранения.

Если для ОС используется SD-карта, на ней по умолчанию настраивается небольшая область подкачки. Вы можете проверить его размер с помощью команды:

бесплатно -м

99 МБ не является значительным объемом свопа. Он заполнится довольно быстро. SD-карты имеют ограниченное количество циклов записи, поскольку они используют флэш-память, и чрезмерная подкачка может сократить срок их службы. Кроме того, они имеют низкую пропускную способность около 50 МБ/с и гораздо меньшую производительность чтения/записи файлов 4k, что необходимо для обмена файлами меньшего размера.

На жестких дисках есть вращающиеся диски. Хотя они надежны, они имеют большее время поиска и не подходят для обмена.

Ан недорогой SSD для ОС - разумно лучший выбор. Алгоритмы выравнивания износа реорганизуют данные из изношенных флэш-ячеек и продлевают срок их службы. На Pi пропускная способность SSD составляет около 150 МБ/с и имеет гораздо лучшую производительность файлов 4k по сравнению с SD-картами. Скорость поиска тоже хорошая. Но использование одного и того же диска для подкачки и ОС затрудняет одновременную работу. Поскольку подкачка выполняет интенсивную запись, диск может достичь TBW (общее количество записанных байтов) раньше, чем ожидалось, особенно на твердотельных накопителях малой емкости.

В идеале Pi нуждается в том, чтобы его ОС и подкачка находились на разных дисках, диск ОС и выделенный SSD для подкачки. Это обеспечит долговечность диска ОС и скорость обмена. Кроме того, полоса пропускания будет доступна для обоих одновременно, так как это разные устройства.

Как настроить своп в операционных системах Raspberry Pi

Как лучше всего настроить это, зависит от того, какую ОС использует ваше устройство.

ОС для настольных ПК (ОС Raspberry Pi, Ubuntu Desktop и Ubuntu Mate)

Подключите SSD, который будет использоваться в качестве подкачки, с помощью Переходник с USB 3.0 на SATA III и запустите Пи. Показанный здесь процесс реализован в ОС Raspberry Pi и должен одинаково хорошо работать в других операционных системах. В случае ваша ОС Raspberry Pi нуждается в обновлении, сделай это.

Установите необходимый инструмент для управления дисками с помощью графического интерфейса.

Судо подходит установить гном-диск-утилита

Открытым Диски из Пуск > Аксессуары.

Вы также можете использовать эту команду в терминале, чтобы открыть инструмент:

гном-диски

Отформатируйте SSD из меню.

Создайте раздел, используя элемент управления с + символ

Под своп можно выделить весь раздел, но будет достаточно максимум вдвое больше оперативной памяти.

Назовите том и выберите Другой для Тип раздела.

Выбирать Раздел подкачки Linux и создать его.

Вы можете установить его сразу, нажав кнопку управления с Играть в символ. Он будет монтироваться во время этого сеанса, но не будет зависать при перезагрузке. Он должен быть настроен на автоматическое монтирование. Нажмите на Механизм контролировать и выбирать Изменить параметры монтирования.

Переключать Настройки сеанса пользователя по умолчанию и нажмите ХОРОШО. Authenticate и Disks добавят запись в /etc/fstab для монтирования при каждой загрузке.

Перезапустите Pi, откройте терминал и проверьте новый размер подкачки:

бесплатно -м

Дополнительные настройки только для ОС Raspberry Pi

Теперь, когда своп настроен на SSD, старый своп не нужен. Вы можете отключить его, отредактировав:

sudo nano /etc/dphys-swapfile

Установите этот параметр равным нулю:

CONF_SWAPSIZE=0

Серверная ОС (Ubuntu, ОС Raspberry Pi)

Этот процесс осуществляется через CLI. Для удобства вы можете подготовить раздел подкачки с помощью инструмента «Диски» на другом компьютере, затем подключить SSD к Pi и загрузить сервер. Подключиться к Pi с помощью SSH продолжать.

Найдите раздел подкачки:

лсблк

sda1 Это. Найдите UUID этого устройства: sda1

черный

Скопируйте UUID (уникально для вас) и отредактируйте файл fstab, чтобы он монтировался автоматически при каждой загрузке:

судо нано /etc/fstab

Добавьте эту строку:

UUID=ВАШ UUID нет своп sw 0 0

Сохраните, перезагрузитесь и проверьте размер подкачки:

бесплатно -м

Оптимизация использования виртуальной памяти для работы с защитой от сбоев

Настроенный своп нужно использовать с пользой. Это делается путем настройки параметра swappiness. Чтобы найти текущее значение:

cat proc/sys/vm/swappiness

Установленное по умолчанию значение 60 определяет, насколько агрессивно ядро ​​выгружает содержимое из ОЗУ. Его можно установить в диапазоне от 1 до 100. Подходящее значение зависит от ваших конкретных потребностей. Если вы видите, что у Pi постоянно не хватает оперативной памяти, установите для него значение 100. Если нет, установите меньшее значение. Отредактируйте этот файл, чтобы установить его:

судо нано /etc/sysctl.conf

Добавьте эту строку в конце:

vm.swappiness=100

Предостережения относительно накладных расходов на обработку и TBW SSD

Операционная подкачка требует вычислительной мощности, обычно одно из четырех ядер Pi посвящает себя подкачке, когда ОЗУ полностью заполнена.

Общий совет: не использовать SSD для подкачки, это верно для случая, когда ОС (вместе с пользовательскими данными) и подкачка находятся на одном диске. Это не применяется в этом случае, когда своп настроен, как описано здесь. Хотя используемый твердотельный накопитель в конечном итоге превысит свое TBW и выйдет из строя, его можно просто заменить новым, поскольку в этом процессе на нем не хранятся важные данные.

Поменяйте преимущество на свой Pi

Правильная настройка подкачки — отличный способ защитить Pi от сбоев. Стабильность связана с тем, что общая доступная память является более важным фактором, чем скорость памяти во время OOM. Pi не зависнет, и как только всплеск использования спадет, он снова будет реагировать быстрее.

Raspberry Pi — это крошечный компьютер с большой гибкостью. Его можно использовать для разных целей с различными легкими операционными системами. Pi 4 хорошо заменяет обычные компьютеры, а также является встроенным устройством для промышленного использования, которое может работать круглосуточно и без выходных.