Raspberry Pi имеет ограниченный объем оперативной памяти, и больше нельзя добавить, поскольку это одноплатный компьютер. У Pi 3 всего 1 ГБ оперативной памяти. Pi 4, в зависимости от модели, имеет до 8 ГБ ОЗУ. Программные приложения иногда требуют больше памяти. Большую часть времени это требование к памяти представляет собой кратковременный всплеск. Когда это произойдет, Raspberry Pi либо «зависнет», либо «вылетит» из-за ограниченного объема памяти. Сбой также может привести к повреждению SD-карты, что приведет к потере данных.
Чтобы избежать возможности сбоя, на Pi можно настроить виртуальную память в виде свопа. Нужное количество необходимо добавить на правильное устройство, чтобы получить максимальную отдачу от него. Весь процесс систематически объясняется с инструкциями для различных операционных систем.
Понимание того, как работает процесс памяти
RAM - это физическая память. На Pi 4 он расположен рядом с процессором. На Pi 3 оперативная память размещена на нижней стороне печатной платы. В отличие от обычных материнских плат, оперативная память на Raspberry Pi припаяна к плате, что ограничивает возможность увеличения ее объема.
Когда программное приложение запускается, оно использует часть оперативной памяти для своей работы. Подумайте о браузере в качестве примера. Когда веб-страница загружается во вкладку, она сохраняет данные страницы в оперативной памяти вместе с памятью, необходимой для запуска программы браузера. Чем больше вкладок загружается, тем больше заполняется оперативная память. Без виртуальной памяти в какой-то момент ОЗУ закончится, и новые вкладки вообще нельзя будет загрузить. Просмотр существующих вкладок также значительно замедлится, так как для основных операций нет свободной памяти. В этот момент 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 хорошо заменяет обычные компьютеры, а также является встроенным устройством для промышленного использования, которое может работать круглосуточно и без выходных.