Увеличение памяти raspberry pi 3
Смотрите здесь для быстрой иллюстрации того, насколько они «неразрывно связаны». Pi 2 имеет отдельную микросхему ОЗУ, и тег по этому вопросу относится к Pi 2. Ваш ответ подходит для более ранних версий Pi, но относится ли он к 2? Я смотрю на это - это, безусловно, кажется невероятным. Чип RAM является 168 мяч SMD, и немного меньше , чем мой эскиз. Я могу с достаточной уверенностью сказать, что пытаться снять старое и новое будет неинтересно. Ответ Джоан, возможно, более точно охватывает этот вариант использования - даже если бы вы могли физически разобраться с чипом, это не имело бы никакого значения. Каждый SoC уже исчерпан. Вы можете добавить SSD и использовать его как своп. Следующая лучшая вещь. Хотя удаление микросхемы памяти, безусловно, было бы «неинтересно», это должно быть осуществлено с подходящим оборудованием и навыками (и проще на pi2, чем на pi1). Реальная проблема заключается в том, что SoC не может поддерживать ничего большего.
Как правило, каждая модель Pi уже оснащена максимально поддерживаемым объемом оперативной памяти.
Некоторые ранние модели B имели только 256 МБ и могли вместо этого иметь 512 МБ. Однако не было бы способа обновить чип RAM без разрушения платы (если у вас не было специальной лаборатории).
@PythonNut Да, на Pi2 и Pi3 уже установлено максимально 1 ГБ. Не для того, чтобы оценивать крайние случаи здесь, но если текущего 1 ГБ на Pi3 недостаточно, и вы не можете разделить нагрузку с другим Pi3, вы, вероятно, делаете это неправильно . Нет, это зависит от того, что ты пытаешься сделать. Например, если вы хотите использовать его для некоторых серверных приложений, может потребоваться больше оперативной памяти.На 256 МБ Pi теоретически должно быть возможно заменить чип на 512 МБ, но это будет нелегко. Вам нужно будет осторожно нагреть стек PoP, а затем каким-то образом отделить процессор от оперативной памяти. Затем уберите грязь из старых шаров и припаяйте новый чип памяти.
Существует также вопрос о том, справится ли прошивка, модели 512 МБ имеют разные идентификаторы, сожженные в OTP на SoC от моделей 256 МБ, и я не уверен, будет ли загрузочный код работать должным образом, если что-то не совпадает.
На базе 512MB BCM2835 обновление невозможно, контроллер памяти был спроектирован для поддержки 1 ГБ, но была ошибка, из-за которой он не работал должным образом при таком размере.
Для Raspberry Pi 2 Mdoel B и Raspberry Pi 3 модель B 1 ГБ является пределом, дизайн структуры шины и контроллера памяти в Soc просто не поддерживает больше.
Если мы увидим 512 МБ на основе BCM2837 Pi (например, Raspberry pi 3 модель A), то я ожидаю, что теоретически возможно обновление до 1 ГБ, но снова потребуется доработка BGA (хотя вам не понравится PoP), и я не буду не знаю, будут ли проблемы с прошивкой.
Если бы SoC мог поддерживать больше, дизайнеры, вероятно , включили бы больше памяти, как отмечали другие. Однако есть гораздо более важная причина: контроль затрат.
Разница в цене для такого рода детали между 512M и 1G составляет менее 1 доллара США; оба стоят около 5 долларов США. Даже 8G IC в этой категории составляет около 14 долларов США, так что вы можете подумать, что цена немного выросла. Это не так просто.
3 розничных магазина по 40 долларов США; его спецификация, вероятно, составляет менее 15 долларов, поэтому даже дополнительный доллар значительно повлияет на розничную цену в процентном отношении. И хотя некоторые люди могут купить более дорогой пи за большие деньги, простое предоставление двух версий увеличивает затраты (дизайн, тестирование, распространение, хранение и т. Д.), И ваша модель 1G за 40 долларов может вместо этого продаваться за 45 долларов. Нам с тобой может быть все равно, но это имеет большое значение для рынка образовательных услуг, на который в первую очередь ориентирован Pi.
Кроме того, когда вы работаете с ограниченным бюджетом, вы должны принять решение о том, что включать. Я, например, гораздо счастливее иметь Wi-Fi и BT на 3, чем я был бы с дополнительной памятью. Ваш опыт может варьироваться, но до сих пор мне никогда не требовалось больше памяти, но все, что я использовал для пи, нуждается в Wi-Fi, поэтому сэкономить 5 долларов на ключе Wi-Fi было выбором, который мне нравится.
Если вам абсолютно необходимо больше памяти, есть другие (более дорогие) варианты!
Пару недель назад я опубликовал обзор Pinebook Pro. Поскольку Raspberry Pi 4 тоже основана на ARM, то для неё вполне подходят некоторые из оптимизаций, упомянутых в предыдущей статье. Хотел бы поделиться этими хитростями и узнать, проявятся ли у вас такие же улучшения в производительности.
После установки Raspberry Pi в свою домашнюю серверную я заметил, что в моменты дефицита оперативной памяти она становилась очень невосприимчивой и даже подвисала. Чтобы решить эту проблему, я добавил ZRAM и внёс несколько изменений в параметры ядра.
ZRAM создаёт в оперативной памяти блочное хранилище с именем /dev/zram0 (или 1, 2, 3 и т. д.). Записанные туда страницы сжимаются и сохраняются в памяти. Это позволяет обеспечить очень быстрый ввод-вывод, а также освобождает память за счёт сжатия.
Raspberry Pi 4 поставляется с 1, 2, 4 или 8 ГБ оперативной памяти. Я буду использовать модель 1 ГБ, поэтому скорректируйте инструкцию в зависимости от своей модели. С 1 ГБ ZRAM дефолтный файл подкачки (медленный!) будет использоваться реже. Я использовал такой скрипт zram-swap для установки и автоматической настройки.
Инструкции приводятся в репозитории по ссылке выше. Установка:
Если хотите отредактировать конфиг:
Кроме того, можно активировать ZRAM путём установки zram-tools . Если используете этот метод, обязательно отредактируйте конфиг в файле /etc/default/zramswap , и установите около 1 ГБ ZRAM:
После установки можете просмотреть статистику хранилища ZRAM следующей командой:
Теперь исправим поведение системы, когда Raspberry Pi переходит на подкачку в последний момент, что часто приводит к подвисаниям. Добавим несколько строчек в файл /etc/sysctl.conf и перезагрузимся.
Эти строки 1) оттянут неизбежное исчерпание памяти, увеличив давление на кэш ядра и 2) раньше начинают подготовку к исчерпанию памяти, заранее инициируя подкачку. Но это будет гораздо более эффективная подкачка сжатой памяти через ZRAM!
Вот строки, которые нужно добавить в конце файла /etc/sysctl.conf:
Затем перезагружаем систему или активируем правки следующей командой:
vm.vfs_cache_pressure=500 увеличивает давление на кэш, что увеличивает склонность ядра к рекультивации памяти, используемой для кэширования объектов каталогов и индексов. Вы будете использовать меньше памяти в течение более длительного периода времени. Резкое падение производительности сводится на нет за счёт более раннего свопинга.
vm.swappiness=100 увеличивает параметр, насколько агрессивно ядро будет свопить страницы памяти, так как мы сначала используем ZRAM.
vm.dirty_background_ratio=1 & vm.dirty_ratio=50 — фоновые процессы начнут запись сразу по достижении лимита 1%, но система не будет принудительно выполнять синхронный ввод-вывод, пока не достигнет dirty_ratio в 50%.
Эти четыре строки (при использовании с ZRAM) помогут улучшить производительность в том случае, если у вас неизбежно заканчивается оперативная память и начинается переход на подкачку, как у меня. Зная об этом факте, а также с учётом сжатия памяти в ZRAM в три раза лучше начать этот свопинг заранее.
Давление на кэш помогает, потому что мы фактически говорим ядру: «Эй, послушай, у меня нет дополнительной памяти, чтобы использовать её для кэша, поэтому, пожалуйста, избавься от него как можно скорее и храни только наиболее часто используемые/важные данные».
Даже при уменьшении кэширования, если со временем большая часть установленной памяти будет занята, ядро начнёт оппортунистический своп гораздо раньше, так что процессор (сжатие) и ввод/вывод подкачки не будут тянуть до последнего и задействовать все ресурсы сразу, когда уже слишком поздно. ZRAM использует немного CPU для сжатия, но в большинстве систем с малым объёмом памяти это гораздо меньше влияет на производительность, чем своп без ZRAM.
Давайте ещё раз посмотрим на результат:
264448 в ZRAM — это почти один гигабайт несжатых данных. Всё ушло в ZRAM и ничто не попало в гораздо более медленный файл подкачки. Попробуйте сами такие настройки, они работают на всех моделях Raspberry Pi. У меня негодная подвисающая система превратилась в работоспособную и стабильную.
В ближайшем будущем я надеюсь продолжить и обновить эту статью с некоторыми результатами тестирования системы до и после установки ZRAM. Сейчас у меня просто нет на это времени. А пока не стесняйтесь выполнять свои собственные тесты и дайте знать в комментариях. Raspberry Pi 4 просто зверь с такими настройками. Наслаждайтесь!
Одноплатный компьютер-малютка Raspberry Pi 3 Model B+ у меня уже несколько месяцев, и справляется он с нужными мне задачами без проблем. ОЗУ у неё всего 1 гигабайт, что даже для современных среднечков-смартфонов уже мало, и никак её физически не увеличишь. За то программно — легко ☺️ Данный пост — заметка преимущественно для себя о том, как увеличить оперативную память на Raspberry Pi 3, но писался в надежде на то, что многим владельцам малины это тоже будет полезно 😉 Будем запиливать Zram в Raspbian 9.
Что такое zram?
Zram — это технология, при которой все данные, не помещающиеся в оперативной памяти (или не нужные там в данный момент) сбрасываются в swap, который находится в той же ОЗУ, но данные которого сжимаются современными алгоритмоми сжатия, тем самым уменьшая размер данных более, чем в 3 раза. Подробнее можно почитать здесь. Для малины — то, что надо.
Установка и настройка zram в Raspbian
Далее редактируем файл /etc/rc.local. Добавляем перед строкой «exit 0» следующее строки:
Сохраняем и перезагружаем Raspberry Pi.
Проверка работы
Чтобы убедиться, что zram в системе работает, выполняем команду:
Если ответ будет такой, значит zram работает:
Создание и подключение zram при каждой загрузке системы
Создавать раздел Zram и монтировать его вручную после каждой перезагрузки не очень удобно. Создадим задание cron, которое будет делать это автоматически при каждом запуске Raspberry Pi. Открываем crontab:
Не забываем поменять параметр --size на нужный вам размер виртуального раздела zram. Сохраняем изменения и закрываем crontab, для nano это комбинации клавишь CTRL+O, CTRL+X. Об успешном применении заданий cron оповестит строчка в терминале «crontab: installing new crontab». Теперь раздел zram будет автоматически создаваться, настраиваться и подключаться во время каждой загрузки системы.
Raspberry Pi 3B CPU / GPU и разгон памяти + тест стабильности
20170902 Предварительная статья
20170920 Обновление описания параметра разгона SDRAM
2017-10-05 Обновление разгона памяти, добавление показателя производительности nbench
1. Тестовая среда
Система, которую я успешно протестировал: Raspbian Jessie / Stretch, DietPi, OSMC, LibreELEC
Источник питания: зарядное устройство Samsung 5.3V 2A
Тепловыделение: 3 алюминиевых ребра радиатора + 5-вольтовое маленькое вентиляторное соединение с контактами 3.3 В (5 В слишком шумно . )
Оболочка: прозрачная акриловая оболочка
Два, метод разгона
Лучше всего сначала обновить прошивку, чтобы поддерживать новейшие параметры разгона
Используйте Notepad ++ для редактирования файла config.txt в разделе / boot (формат FAT32) под Win
В Raspbian вам нужно отредактировать с правами суперпользователя (sudo nano /boot/config.txt), перезапустить для вступления в силу
3. Справочник и описание параметров разгона
Ниже приведены параметры разгона, которые прошли тест стабильности на персональном Raspberry Pi, только для справки. Различные платы будут иметь физические различия и могут не подходить для следующих конфигураций. Рекомендуется исследовать самостоятельно. Например, другие могут стабильно превышать 1,45 г, а персональные доски превышают 1450 (увеличение примерно на 21%) и могут быть включены, но во время стресс-теста будут происходить сбои. Перед разгоном памяти лучше всего разогнать процессор и пройти тест стабильности, иначе может быть невозможно узнать, что вызвало сбой разгона.
Производительность основной частоты увеличилась на 16,7%, (1400-1200) /1200=16,7%
over_voltage // Напряжение процессора / графического процессора, эффективное значение [-16,8], 0 соответствует 1,2 В, а шаг 0,025 В. Если оно превышает 6, для применения вступает в силу force_turbo = 1. Персональный тест для достижения 5 составляет 1,394 В, независимо от того, насколько высоко значение напряжения не увеличивается.
arm_freq // Основная частота процессора ARM, значение по умолчанию 1200
gpu_freq // Разгон core_freq, h264_freq, isp_freq, v3d_freq одновременно, значение по умолчанию core_freq равно 400, а значение по умолчанию h264_freq, isp_freq и v3d_freq равно 300
core_freq // частота ядра GPU, по умолчанию 400, что немного хорошо для скорости чтения и записи в память
dtparam = sd_overclock // По умолчанию 50, разгон SD-карты. Этот параметр не опасен. Значение по умолчанию мало для улучшения совместимости. Обычные карты можно безопасно установить на 100. После перезапуска выполните dmesg | grep "mmc0", см. mmc0: разгон до 100000000Гц
temp_limit // Защита от перегрева. Значение по умолчанию 85, перегрев и снижение частоты. Не рекомендуется длительное время работать при температуре выше 70 градусов. Высокая температура оказывает большее влияние на срок службы чипа.
force_turbo // Всегда работать в высокопроизводительном режиме, когда = 1, стратегия scaling_governor = performance; когда = 0, динамическая регулировка частоты основана на использовании процессора, стратегия по умолчанию - scaling_governor = ondemand. Существует пять стратегий настройки, а именно производительность / powersave / userspace / ondemand / conservative, которые можно изменить с помощью следующих команд, таких как:
echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
over_voltage_sdram // Диапазон напряжения памяти [-16,8], по умолчанию 0, и set over_voltage_sdram_c (control),
перенапряжение_sdram_i (I / O), перенапряжение_sdram_p (phy) напряжение
sdram_freq // Рабочая частота памяти, 450 МГц по умолчанию
sdram_schmoo // Память части синхронизации 4,3,2,0,0, -2, -2,0, -10, для повышения производительности и стабильности соответственно соответствуют следующим
int8_t dphy_drive_level; // 4..0 -> 34R,40R,48R,60R,80R
int8_t aphy_drive_level; // 4..0 -> 34R,40R,48R,60R,80R
int8_t dram_drive_level; // 4..-1 -> 34R,40R,48R,60R,80R,120R
uint8_t dphy_lpwr_rx; // Non-zero for LPWR_RX in DPHY
uint8_t aphy_lpwr_rx; // Non-zero for LPWR_RX in APHY
int8_t dll_offset_rd_n; // DLL offset schmoo: Low phase Read
int8_t dll_offset_rd_p; // DLL offset schmoo: High phase Read
int8_t dll_offset_wr; // DLL offset schmoo: DQ/DQS Write
int8_t dll_offset_addr; // DLL offset schmoo: Address/command
В-четвертых, тестирование производительности, стресс-тестирование, мониторинг состояния, тестирование стабильности,
1. Тест производительности: означает создание 4 потоков, чтобы найти простые числа в пределах 20 000,
sysbench --num-threads=4 --test=cpu --cpu-max-prime=20000 run
До разгона общее время = 92,5 с, после общего времени разгона = 79,3 с увеличение на 15% соответствует ожиданиям.
mayer/linux/nbench-byte-2.2.3.tar.gz
tar -xvzf nbench-byte-2.2.3.tar.gz
cd nbench-byte-2.2.3
make
./nbench
2. Рекомендуется проводить стресс-тестирование не менее 10 минут и более без ошибок или сбоев.
sudo apt install stress
stress -c 4 -t 10m -v
3. Вам необходимо одновременно следить за температурой процессора / графического процессора. Можно использовать следующие две команды:
vcgencmd measure_temp
cat /sys/class/thermal/thermal_zone0/temp
4. Определите напряжение ядра процессора и напряжение памяти:
for id in core sdram_c sdram_i sdram_p ; do echo -e "$id:\t$(vcgencmd measure_volts $id)" ; done
5. Для проверки успешности разгона можно использовать следующие две команды:
vcgencmd measure_clock arm // Возвращает 1400000000
sudo cat / sys / devices / system / cpu / cpu2 / cpufreq / cpuinfo_cur_freq // возврат 1400000
6. Стресс-тест памяти. Один memtester занимает одно ядро. Откройте четыре окна и запустите sudo memtester 210M -1 четыре раза. Поскольку процессор требуется для генерации случайных последовательностей для частого чтения и записи памяти, загрузка процессора будет относительно высокой, поэтому этот тест может В то же время тесты стабильности выполняются на процессоре и памяти. Тест занимает около 10 минут
sudo apt install memtester
sudo memtester 210M -1
Если тест стабильности памяти не пройден, слово сбой будет отображаться, как показано на рисунке ниже, и в повседневной работе может возникнуть нестабильность.
7. Проверка скорости чтения и записи памяти, нажмите Ctrl + C для завершения
8. SD-карта чтения и записи скорости теста
В первой строке создается файл размером 1024 МБ и содержимым 0. Скорость генерации зависит от скорости записи на SD-карту.
Вторая строка, удалить только что сгенерированный файл, это зависит от скорости чтения SD-карты
dd if=/dev/zero of=test bs=1M count=1024 oflag=direct
dd if=test of=/dev/null bs=1M oflag=direct
sudo hdparm -tT / dev / mmcblk0 // - t - скорость чтения и записи тестового жесткого диска, -T - скорость чтения и записи в тестовом кэше
Пять, временно отключить разгон
Если разгон завершается неудачно и не может быть запущен, вы можете удерживать нажатой клавишу shift при запуске, чтобы временно закрыть все параметры разгона, а затем изменить его после входа в систему.
Читайте также: