Увеличить файл подкачки raspberry pi
Raspberry Pi has only 256 MB of RAM, so I would like to use swap space (either on SD card or attached USB storage). How do I set it up?
Swap on the Pi (and similar devices) can be painfully slow, and anything that actually ends up using swap extensively will practically bring the system to a standstill. Careful!
You know what would be good is a USB RAM drive (not flash or SSD but actual volatile ram chip running at USB speeds) It would do good for a such a swap pretty good.
@Tibor The question is "How to set up swap space?" In my opinion, a correct answer should describe how to do it as well as bring attention to some pitfalls and warn against misuse. Your answer does just that while the "most popular" answer only tells you why you should never "do this at all" (which is dumb, because there is a proper way to use it, and it actually is useful).
There's about a million warnings against using swap with a raspberry pi on this page, but if you need to build something once, it's unavoidable.
@Archonic - +1. I run out of memory compiling files on occasion. A small swap file with a low swapiness will be an improvement over the current situation.
Отключить своп
Подкачка - это процесс использования части карты SD в качестве энергозависимой памяти. Это увеличит объем доступной оперативной памяти, но приведет к большому количеству операций чтения / записи. Вряд ли это значительно повысит производительность.
Отключить обмен с помощью swapoff команды:
Вы также должны предотвратить его возвращение после перезагрузки:
- Для Raspbian, который использует dphys-swapfile для управления файлом подкачки (вместо «обычного» раздела подкачки), вы можете просто sudo apt-get remove dphys-swapfile удалить его навсегда. Лучше всего удалить, потому что установка в CONF_SWAPSIZE 0, как объяснено в этом ответе , кажется, не работает и все еще создает файл подкачки размером 100 МБ после перезагрузки.
- Для других дистрибутивов, которые используют раздел подкачки вместо файла подкачки, удалите соответствующую строку из /etc/fstab
Recommended
Каталоги на внешнем жестком диске
Вы также можете смонтировать некоторые каталоги на постоянном жестком диске USB. Более подробную информацию об этом можно найти в этом вопросе .
Обратите внимание, что если это noatime вызывает у вас проблемы, вы также можете использовать, relatime что значительно сокращает объем записи на диск при чтении, а не удаляет их полностью.
Если опции, предоставляемые Jivings , для вашего приложения невозможны, то другой способ существенно продлить его жизнь - это использовать SD-карту, которая намного больше, чем вам нужно.
5 Answers 5
Raspbian uses dphys-swapfile, which is a swap-file based solution instead of the "standard" swap-partition based solution. It is much easier to change the size of the swap.
The configuration file is:
The content is very simple. By default my Raspbian has 100MB of swap:
If you want to change the size, you need to modify the number and restart dphys-swapfile:
Edit: On Raspbian the default location is /var/swap, which is (of course) located on the SD card. I think it is a bad idea, so I would like to point out, that the /etc/dphys-swapfile can have the following option too: CONF_SWAPFILE=/media/btsync/swapfile
I only problem with it, the usb storage is automounted, so a potential race here (automount vs. swapon)
I have upvoted this answer as really correct one. Learnt all of that hard way quite recently, your answer could save me a lot of time. ;-)
to install R packages, which failed before due to "system call failed cannot allocate memory": Set CONF_SWAPSIZE=1024. Less is not enough.
Since this is useful only once a while, a separate swap file is a better solution IMHO. See user13's answer
You can set up swap space quite simply. For example, if your USB drive is /dev/sdx , you would use (you must be root for this):
Note that this would use the whole device and you will probably lose all the existing data on it.
You can also create a swap file (by using a loop device) like this:
When you no longer need the swap file (if you want to eject the USB drive for example), you must use swapoff . Not doing so will probably result in system crash.
You should be careful though. SD cards have limited read/write limits and it will shorten its lifespan. If you are using an external hard drive, you should be fine, but it will be very slow.
I think you should change this to avoid users copy and pasting and accidentally running mkswap on their root partition. I think sdx is a good convention.
Do not do this at all.
You should not enable swap on the Raspberry Pi.
Although it is possible, it is not useful. Even on a class 10 SDHC card, it is just too slow. Also you will reduce the lifespan of the SD card.
On any flash-based storage device (SD card, SDD, USB thumb drives) you are also likely to see system-wide pauses while a large group of flash blocks is erased.
- If you connect a (magnetic) hard drive (though a USB-SATA or USB-IDE adapter)
- If you use ZRAM or something similar
no doubt swapping on a USB bey will kill your key very fast, swapping on the SD card is also dangerous, even if newer ( class 10 ) SD cards could support it better. ZRAM is clearly the way to go if you need more RAM
Why does this answer have so many upvotes? There are plenty of reasons to use swap. I used a swap file on an external drive to compile a large library over the course of a few days. It's slow as dead monkeys floating in molasses, but that doesn't meant that you should "not do this at all."
@finnw You just have to be careful, and yes, there are usually better options, but sometimes you just do what you have to do.
Your warning, though well meaning, is way too strong. Finding out 'why not' as well as 'why' is exactly what the Raspberry Pi is for: try whatever you want with it and LEARN. There are also some good reasons to use an external drive for swap as well, such as satisfying a peak memory requirement for a one-off library compile; the search that brought me here. The times I learned the most is when I screwed up something minor and realised why. Sorry to say, you're not being as helpful as you think you are.
Way too strong. "best not", maybe, but "bad, wasteful, damaging and useless" is misleading. Everything wears with use, bear in mind oxygen is toxic, and Raspbian does use a swapfile. A slowdown is usually better than a crash, and lets you compile huge things once every few months. Just set low swappiness and you're good.
Raspbmc uses /etc/init/swap.conf to configure swap via /swap file. It first checks for presence of /home/pi/.enable_swap .
If you delete /home/pi/.enable_swap then swap file is not created, and then just recreate it with touch /home/pi/.enable_swap if you need swap turned on and reboot.
It is a pity that the Raspberry Pis do not have GigaBit Ethernet but it is at least theoretically possible to have swap space on a network device - the Linux Terminal Server Project can offer it from the server to the clients according to this item on their wiki.
I found a Foundation Forum topic "Tip: Swap over nfs" that shows how someone who already had some NFS mounts already in place used a swapfile on one of them and mounted it via a loop-mount (possibly needed because Linux does not allow a NFS mount to be used directly). Given that the remote swap-file will hold data that the OS must not lose I'd only consider this for a wired Ethernet network - a wireless link would be too fragile IMHO. Also, of course you must not allow the remote server to be shut-down without turning the swap off and allowing it to completely empty first!
RPi wouldn't benefit from GB Ethernet at all, due to the limited bandwidth between the Broadcom chip and the Ethernet controller.
Ethernet controllers are often external chips, but USB as an inter-chip bus is indeed bad for both speed and power consumption.
Highly active question. Earn 10 reputation (not counting the association bonus) in order to answer this question. The reputation requirement helps protect this question from spam and non-answer activity.
Raspberry Pi имеет только 256 МБ ОЗУ, поэтому я хотел бы использовать пространство подкачки (либо на SD-карте, либо на USB-накопителе). Как мне это настроить?
Обмен на Pi (и аналогичные устройства) может быть мучительно медленным, и все, что на самом деле заканчивается интенсивным использованием swap, практически остановит систему. Осторожный!
Вы знаете, что было бы хорошо, если бы USB RAM-накопитель (не флэш-память или SSD, а реальный энергозависимый чип оперативной памяти, работающий на скоростях USB) был бы хорош для такого подкачки.
@Tibor Вопрос "Как настроить пространство подкачки?" На мой взгляд, правильный ответ должен описывать, как это сделать, а также привлекать внимание к некоторым подводным камням и предупреждать против неправильного использования. Ваш ответ делает только , что в то время как «самый популярный» ответ только говорит вам , почему вы никогда не должны «делать это на всех» (который является немым, потому что есть правильный способ , чтобы использовать его, и это на самом деле это полезно).
На этой странице содержится около миллиона предупреждений против использования swap с малиновым пи, но если вам нужно что-то построить один раз, это неизбежно.
@ Archonic - +1 . Иногда мне не хватает памяти для компиляции файлов . Небольшой файл подкачки с низкой подкачкой будет улучшением по сравнению с текущей ситуацией.
Raspbian использует dphys-swapfile , который является решением на основе файла подкачки вместо «стандартного» решения на основе раздела подкачки. Гораздо проще изменить размер свопа.
Содержание очень просто. По умолчанию мой Raspbian имеет 100 МБ подкачки:
Если вы хотите изменить размер, вам нужно изменить номер и перезапустить dphys-swapfile:
Изменить: В Raspbian расположение по умолчанию / var / swap, которое (конечно) находится на SD-карте. Я думаю, что это плохая идея, поэтому я хотел бы отметить, что / etc / dphys-swapfile также может иметь следующую опцию: CONF_SWAPFILE = / media / btsync / swapfile
У меня только проблемы с этим, USB-хранилище автоматически смонтировано, так что потенциальная гонка здесь (автомонта против swapon)
Я назвал этот ответ действительно правильным. Совсем недавно выучив все это нелегко, ваш ответ может сэкономить мне много времени. ;-)
для установки пакетов R, которые не были выполнены ранее из-за того, что «системный вызов не может выделить память»: установите CONF_SWAPSIZE = 1024. Меньше не достаточно.
Вы можете настроить пространство подкачки довольно просто. Например, если у вас есть USB-накопитель /dev/sdx , вы должны использовать (для этого вы должны быть пользователем root):
Обратите внимание, что это будет использовать все устройство, и вы, вероятно, потеряете все существующие данные на нем.
Вы также можете создать файл подкачки (используя loop устройство) следующим образом:
Если вам больше не нужен файл подкачки (например, если вы хотите извлечь USB-накопитель), вы должны использовать его swapoff . Несоблюдение этого требования может привести к сбою системы.
Вы должны быть осторожны, хотя . SD-карты имеют ограниченные пределы чтения / записи, и это сократит срок их службы. Если вы используете внешний жесткий диск, у вас все будет хорошо, но это будет очень медленно.
Я думаю, вы должны изменить это, чтобы пользователи не копировали и не вставляли и не запускали случайно mkswap на своем корневом разделе. Я думаю, что sdx это хорошая конвенция.
Пользователи, которые решили включить SWAP, могут быть заинтересованы в настройке перестановки ядра .
Не делай этого вообще.
Вы не должны включать своп на Raspberry Pi.
Хотя это возможно, это не полезно. Даже на SDHC-карте класса 10 она слишком медленная. Также вы уменьшите срок службы SD-карты.
На любом флэш-накопителе (SD-карта, SDD, флэш-накопитель USB) вы также можете увидеть паузы в масштабе всей системы, пока стирается большая группа флэш-блоков.
- Если вы подключаете (магнитный) жесткий диск (через адаптер USB-SATA или USB-IDE)
- Если вы используете ZRAM или что-то подобное
без сомнения, замена USB-бей очень быстро убьет ваш ключ, замена на SD-карту также опасна, даже если более новые (класс 10) SD-карты могли бы лучше ее поддерживать. Очевидно, что ZRAM - это то, что нужно, если вам нужно больше оперативной памяти
Можно подумать, что с технологией ReadyBoost в Windows кто-то может создать USB-накопитель (или eSata, не уверенный в том, что ReadyBoost может его использовать, бесполезно для raspberry pi, но было бы интересно), который использует реальную оперативную память, чтобы вы могли повысить производительность вашего компьютера. Хотя, вероятно, было бы проще и дешевле купить новую материнскую плату, поддерживающую необходимый объем оперативной памяти.
Почему в этом ответе так много голосов? Есть много причин, чтобы использовать своп. Я использовал файл подкачки на внешнем диске для компиляции большой библиотеки в течение нескольких дней. Это медленно, как мертвые обезьяны плавают в патоке, но это не значит, что вы не должны «делать это вообще».
Ваше предупреждение, хотя и имеет смысл, слишком сильно. Выяснение «почему нет», а также «почему» - это именно то, для чего предназначен Raspberry Pi: попробуйте с ним все, что захотите, и ВЫУЧИТЕ. Есть также несколько веских причин использовать внешний диск для подкачки, например, удовлетворение пиковой потребности в памяти для одноразовой компиляции библиотеки; поиск, который привел меня сюда. Времена, которые я выучил больше всего, это когда я напортачил что-то незначительное и понял почему. К сожалению, вы не так полезны, как вы думаете.
Слишком сильный. «лучше нет», может быть, но «плохо, расточительно, вредно и бесполезно» вводит в заблуждение. Все носит с использованием, иметь в виду кислород токсичен, и Raspbian делает использование файла подкачки. Замедление обычно лучше, чем сбой, и позволяет собирать огромные вещи раз в несколько месяцев. Просто установите низкий уровень swappiness и все хорошо.
Raspbmc использует /etc/init/swap.conf для настройки своп через файл / swap. Сначала проверяется наличие /home/pi/.enable_swap .
Если вы удалите, /home/pi/.enable_swap то файл подкачки не будет создан, а затем просто создайте его заново, touch /home/pi/.enable_swap если вам нужно включить своп и перезагрузиться.
Жаль, что Raspberry Pis не имеет GigaBit Ethernet, но теоретически возможно иметь пространство подкачки на сетевом устройстве - Linux Terminal Server Project может предложить его с сервера клиентам в соответствии с этим пунктом в их вики ,
Я нашел тему Foundation Forum «Совет: Swap over nfs», в которой показано, как кто-то, у кого уже есть некоторые монтируемые NFS, использовал swapfile на одном из них и монтировал его через монтирование (возможно, потому что Linux не позволяет Монтирование NFS для непосредственного использования). Учитывая, что удаленный файл подкачки будет содержать данные, которые ОС не должна потерять, я бы рассмотрел это только для проводной сети Ethernet - беспроводное соединение было бы слишком хрупким ИМХО. Кроме того, конечно, вы не должны позволять отключать удаленный сервер, не отключив своп и не позволив ему полностью опустошиться!
RPi не выиграет от GB Ethernet вообще из-за ограниченной пропускной способности между чипом Broadcom и контроллером Ethernet.
Контроллеры Ethernet часто являются внешними микросхемами, но USB как межчиповая шина действительно плох как по скорости, так и по энергопотреблению.
Я не очень заинтересован в покупке жесткого диска USB, но я знаю, что SD-карты не подходят для многих повторений чтения и записи.
Могу ли я предпринять какие-либо шаги для продления срока службы моей SD-карты, пока она используется моей Raspberry Pi?
Если вы напишите ему на полной скорости все время днем и ночью 24/7 - 16 ГБ будет длиться около 30 дней. При нормальном использовании вы можете рассчитывать на 27 лет при 10000 циклах записи. Если он использует 100 000 циклов записи в течение 50 лет. Чем больше карта, тем дольше она прослужит благодаря умной логике выравнивания износа
Вау, это здорово знать, я понятия не имел о твоем первом пункте 16 Гб SD, продолжительностью 30 дней с полной скоростью записи. Я полагаю, что постоянно записывать видео на SD и затем передавать его не лучшая идея.
Со всеми хитами производительности, которые вы получите от этих решений, почему бы просто не платить 10 долларов каждые несколько лет?
Эти методы должны увеличить срок службы SD-карты, сводя к минимуму количество операций чтения / записи различными способами:
Отключение ведения журнала в файловой системе
Использование файловой системы журналирования, такой как ext3 или ext4 БЕЗ журнала, позволяет уменьшить число операций чтения / записи. Очевидным недостатком использования файловой системы с отключенным ведением журнала является потеря данных в результате некорректного отключения (т. Е. После сбоя питания, блокировки ядра и т. Д.).
Вы можете отключить ведение журнала ext3 , подключив его как ext2 .
Вы можете отключить ведение журнала на отключенном ext4 диске следующим образом:
Optional
Оставьте много свободного места
Большинство приличных SD-карт используют алгоритмы выравнивания износа , чтобы минимизировать количество раз записи каждого блока, поэтому, если SD-карта больше необходимого, износ может быть распределен по гораздо большей площади свободного пространства.
Частично причина выравнивания износа настолько важна, что некоторые файловые системы, такие как FAT (формат по умолчанию для многих SD-карт), снова и снова забивают одни и те же сектора.
Одна интересная статистика из этого ответа заключается в том, что
Взятие карты объемом 2 ГБ и ее запись, начинающаяся снова и снова, в среднем составляют около 10 ТБ до того, как карта перестает работать и больше не доступна для записи.
Но беспокоит то, что
SD-карты не сообщат вам, когда данные плохие, то есть не вернут ошибку ввода-вывода, как жесткий диск ПК.
Это может сделать ваш выбор файловой системы важным, если вам нужно гарантировать надежное хранение.
И последнее замечание: удвоение размера SD-карты может более чем удвоить срок ее службы.
То есть, если у вас есть SD-карта объемом 2 ГБ с 200 МБ свободного места, то переход на карту объемом 4 ГБ даст вам в 11 раз больше свободного места, емкость для выравнивания износа и, следовательно, долговечность, а при переходе на карту объемом 16 ГБ - в 71 раз больше. пространство.
Чтобы позволить SD-карте выполнять выравнивание износа в первую очередь, необходимо указать, какие блоки на самом деле можно использовать для этого. Фстрим может помочь в этом.
Обрезка не требуется, но без нее блок используется повторно только тогда, когда ОС повторно использует блок, а не тогда, когда он прекращает его использование. Насколько я знаю, trim является функцией SSD и не поддерживается SD-картами, доступ к которым осуществляется по гораздо более простому протоколу.
@ Марк, твоя первая точка зрения совершенно верна. - Что касается вашего второго пункта, MMC_ERASE для этой цели в стандарте MMC / SD определена (необязательная) команда. Хотя из всех SD-карт, которые я пробовал, только одна (та, которая пришла с моим Pi-) на самом деле поддерживает это.
Имеет ли значение размер раздела в этом случае? Я имею в виду, если у меня есть карта на 16 ГБ и система с уникальным разделом ext4 на 4 ГБ, будет ли она использовать оставшиеся 12 ГБ для выравнивания износа?
Трудно сказать @natenho да для SD-карты с хорошим выравниванием износа, нет для того, у кого плохая (или нет) реализация.
Единственное, что я вижу, это НЕ менять местами на SD-карте.
Обмен на SD-карте, вероятно, может убить вашу SD-карту.
Также известно, что самые последние SD-карты гораздо надежнее старых, поэтому покупка SD-карты нового класса 10, вероятно, является хорошим вариантом, если вы хотите, чтобы она прослужила долго.
Вы можете попробовать запустить Puppy Linux, который является полностью ram-резидентом. Он очень маленький и ослепительно быстрый, поскольку он полностью работает в памяти, копируя образ хранилища (на вашем SD-карте) в ОЗУ при загрузке, а затем периодически сбрасывая изменения обратно в хранилище. Частота этого сохранения контролируется пользователем, в том числе вручную.
Puppy использует многоуровневую файловую систему aufs или более раннюю версию unionfs с любой из стандартных файловых систем Linux, например ext3 или ext4. Он также может находиться на разделах FAT или NTFS.
Существует по крайней мере несколько версий Puppy, специально разработанных для RPi, одна из которых была создана "Puppy Master" Барри Каулером.
Большинство людей здесь говорят о своих предположениях, а не о личном опыте.
Я использовал свой RaspberryPi с RasPBX в качестве коммутатора компании с 8 добавочными номерами и факсом. У нас есть 3 транка на основе IP и один стационарный через LinkSYS SPA3000. Моя первоначальная карта памяти Kingston 4 ГБ SDCard заняла всего 1 месяц, чтобы укусить пыль.
Я все еще экспериментировал и у меня не было резервной копии. Кстати, Pi подключен к ИБП APC. Затем я заново установил весь RasPBX с нуля, но на этот раз я переместил / var / log и / var / lib / mysql на наш корпоративный NAS. Этот SD все еще был в порядке через 3 месяца.
Тогда у нас было очень жаркое лето. В течение третьего месяца пи начал не обнаруживать Ethernet на ровном месте. Затем однажды я обнаружил, что все светодиоды тусклые, и он не загружается.
Я заменил Пи свежим из коробки работающим. Не по порядку начал работать после охлаждения, но работает довольно хаотично, и когда он загружается в RasPBX, режим видео не переключается на графику, он остается в тексте 80 * 25. Это было действительно запутано. Я заказал комплект радиатора с тех пор. Новый Pi работает с ним уже более 2 месяцев 24.07.
Поэтому, если вы будете использовать pi в среде 7/24, не стесняйтесь покупать радиатор и избегайте использования / var / log и других занятых каталогов поверх SD CARD.
Убедиться, что var / log находится на подходящем устройстве, звучит как отличный совет. Из интереса, в тот начальный проблемный месяц, вы тоже хранили ящики голосовой почты на карте USD? Мне просто интересно, могли бы лучше подойти для моего развертывания RasPBX высоконадежные карты USB, подобные тем, которые предназначены для использования Dash Cam, если я решу включить ящики голосовой почты.
Необходимые шаги для выполнения на raspbian:
1. отредактируйте /etc/default/tmpfs и установите :
Я бы порекомендовал следующие размеры:
2. включить дополнительные каталоги, используя / etc / fstab
3. использовать скрипт /etc/init.d/prepare-dirs для создания отсутствующих каталогов, /var/log чтобы все демоны запускались
Посмотрите в конце, что он содержит в моем случае.
4. Сделайте скрипт исполняемым chmod 755 /etc/initd/prepare-dirs .
5. Убедитесь, что скрипт будет запущен при загрузке, прежде чем ваши демоны запустятся: update-rc.d prepare-dirs defaults 01 99
В теге написано «pi-2», аппаратное обеспечение которого отличается от предыдущего, и чип оперативной памяти фактически является отдельным. Я обновил ваш вопрос, чтобы лучше отразить тег, но не стесняйтесь отменить его и удалить тег, если вы говорите не только о PI 2.
@ Jacobm001 Так как Pi 2 не был выпущен, когда был сделан этот пост, я думаю, что этот вопрос не может быть дубликатом.
Pi 2 имеет отдельную микросхему ОЗУ, и тег по этому вопросу относится к Pi 2. Ваш ответ подходит для более ранних версий Pi, но относится ли он к 2?
Я смотрю на это - это, безусловно, кажется невероятным. Чип RAM является 168 мяч SMD, и немного меньше , чем мой эскиз. Я могу с достаточной уверенностью сказать, что пытаться снять старое и новое будет неинтересно. Ответ Джоан, возможно, более точно охватывает этот вариант использования - даже если бы вы могли физически разобраться с чипом, это не имело бы никакого значения. Каждый SoC уже исчерпан.
Хотя удаление микросхемы памяти, безусловно, было бы «неинтересно», это должно быть осуществлено с подходящим оборудованием и навыками (и проще на pi2, чем на pi1). Реальная проблема заключается в том, что SoC не может поддерживать ничего большего.
Как правило, каждая модель Pi уже оснащена максимально поддерживаемым объемом оперативной памяти.
Некоторые ранние модели B имели только 256 МБ и могли вместо этого иметь 512 МБ. Однако не было бы способа обновить чип RAM без разрушения платы (если у вас не было специальной лаборатории).
Не для того, чтобы оценивать крайние случаи здесь, но если текущего 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 было выбором, который мне нравится.
Если вам абсолютно необходимо больше памяти, есть другие (более дорогие) варианты!
Вы не можете добавить RAM к Raspberry Pi, но Rasberry Pi кластеры это другое дело
Так как кто-то просил, я обобщу ссылку выше. Хотя я сам не знаком с деталями, похоже, что можно «подключить» малиновые пи (ы).
"Kiepert запустил High Performance Linpack (HPL), стандартный тест производительности суперкомпьютера на своем домашнем компьютере, и обнаружил, что его RPiCluster с 32 процессорами Broadcom BCM2708 ARM11 работает на частоте 1 ГГц, а 14,6 ГБ используемой оперативной памяти превратились в максимальную производительность HPL 10,13". GFLOPS»
Что касается обсуждения ниже, здесь приведены несколько примеров использования, в которых я бы предпочел замену, а не замену оборудования:
Постройте программное обеспечение на цели. Здесь есть две возможности:
Использование одного ядра для уменьшения объема необходимой памяти. В моем примере это приводит к пиковому использованию памяти 370 МБ к истекшему времени 9 ч 45 мин.
Используя параллельную сборку. В моем примере это приводит к пиковому использованию памяти в 1400 МБ к истекшему времени 4 часа 30 минут. Но почти в 98% случаев объем используемой памяти ниже 1024 МБ.
In this guide, we will show you how to enable and increase the swap file on your Raspberry Pi.
The swap file is used to increase the system’s total accessible memory beyond its hardware capabilities.
This means that when all of the Raspberry Pi’s RAM is exhausted, it can start using the swap file as memory instead.
The addition of more virtual memory allows the system to deal with more memory intensive tasks without running into out of memory errors or having to shut down other additional packages.
However, the downside to this is that accessing the swap file is a significantly slower process that can create slowdowns.
The reason for this is that the swap file exists on your actual disk, which has significantly lower read and write speeds then your RAM.
Another caveat of a large swap file is that you need that space to be free on your SD Card. You can’t set a swap file on your Raspberry Pi larger than your available free space.
With the introduction of the Raspberry Pi 4, there has been less of a need to use a swap file due to the large amounts of RAM available.
Каталоги в оперативной памяти
Часто используемые каталоги, такие как /var/tmp/ и, возможно, /var/log могут быть перемещены в RAM /etc/fstab следующим образом:
Это позволит /var/tmp использовать 50 МБ оперативной памяти в качестве дискового пространства. Единственная проблема, связанная с этим, заключается в том, что любые диски, установленные в ОЗУ, не сохранятся после перезагрузки. Таким образом, если вы монтируете /var/log и ваша система обнаруживает ошибку, которая приводит к ее перезагрузке, вы не сможете выяснить, почему.
Флаг Noatime Mount
Присвойте флаг монтирования noatime разделам, находящимся на SD-карте, добавив его в раздел параметров раздела /etc/fstab .
Чтение доступа к файловой системе больше не приведет к обновлению временной информации, связанной с файлом. Важность параметра noatime заключается в том, что он устраняет необходимость в системе выполнять запись в файловую систему для файлов, которые просто читаются. Поскольку запись может быть несколько дорогой, как упоминалось в предыдущем разделе, это может привести к ощутимому повышению производительности. Обратите внимание, что информация о времени записи в файл будет обновляться каждый раз, когда в файл записывается эта опция.
Equipment
Below is the equipment that we used for this guide on increasing the size of the swap on the Raspberry Pi.
Increasing the Swap File on a Raspberry Pi
In this section, we will be showing you the process of increasing the swap file on the Raspberry Pi.
Before beginning this section, make sure you aren’t running anything thats heavily using the memory. The reason for this is that it could potentially already be using the swap file that we are about.
1. Before we can increase our Raspberry Pi’s swap file, we must first temporarily stop it.
The swap file cannot be in use while we increase it.
To stop the operating system from using the current swap file, run the following command.
2. Next, we need to modify the swap file configuration file.
We can open this file using nano by using the command below.
3. Within this config file, find the following line of text.
You can use CTRL + W to search for text within the file.
To increase or decrease the swap file, all you need to do is modify the numerical value you find here.
This number is the size of the swap in megabytes.
For example, if we wanted to increase our swap size to 1GB, we would change that line to the following.
Whatever size you set, you must have that space available on your SD card.
4. Once you have made the change, save the file by pressing CTRL + X , followed by Y , then ENTER .
5. We can now re-initialize the Raspberry Pi’s swap file by running the command below.
Running this command will delete the original swap file and recreate it to fit the newly defined size.
6. With the swap now recreated to the newly defined size, we can now turn the swap back on.
To start the operating systems swap system, run the following command.
While the new swapfile is now switched on, programs will not know that this new memory exists until they restart.
7. If you want all programs to be reloaded with access to the new memory pool, then the easiest way is to restart your device.
To restart your Raspberry Pi, all you need to do is run the command below.
We hope you have successfully learned how to increase and decrease the swap file on your Raspberry Pi.
If you have run into any issues with this guide, feel free to leave a comment below.
Читайте также: