Takas alanı nasıl kurulur?


114

Raspberry Pi sadece 256 MB RAM'e sahip, bu yüzden takas alanını kullanmak istiyorum (SD kartta veya takılı USB depolama biriminde). Nasıl ayarlarım?


10
Pi'nin (ve benzeri cihazların) takılması acı verici bir şekilde yavaş olabilir ve gerçekten takas kullanımının sona ermesiyle ortaya çıkan herhangi bir şey, sistemi neredeyse durma noktasına getirecektir. Dikkatli!
Matt

1
Bir USB RAM sürücüsü (flaş veya SSD değil, USB hızlarında çalışan gerçek uçlu koç yongası) ne iyi olacağını biliyorsunuz Böyle bir takas için oldukça iyi olur.
Piotr Kula

3
@Tibor Soru "Takas alanı nasıl kurulur?" Benim düşünceme göre, doğru bir cevap nasıl yapılacağının yanı sıra bazı tuzaklara dikkat çekmek ve kötüye kullanıma karşı uyarmak için de açıklamalıdır. Cevabınız tıpkı "en popüler" cevabı sadece size söyler yaparken "de bunu bütün" asla yüzden (orada kullanmak için uygun bir yoldur ve aslında, çünkü dilsiz olan ise faydalıdır).
Andrew Larsson

1
Bu sayfada bir ahududu pi ile takas kullanmaya karşı milyonlarca uyarı var, ancak bir kez bir şeyler yapmanız gerekirse, bu kaçınılmaz.
Archonic

1
@Archonic - +1 . Ben dosyalarının derlenmesi bellek tükendi vesilesiyle. Düşük bir takas özelliğine sahip küçük bir takas dosyası mevcut duruma göre bir gelişme olacaktır.
jww

Yanıtlar:


134

Raspbian , "standart" takas bölümü tabanlı çözüm yerine takas dosyası tabanlı bir çözüm olan dphys- swap dosyasını kullanır. Takas boyutunun değiştirilmesi çok daha kolaydır.

Yapılandırma dosyası:

/etc/dphys-swapfile 

İçeriği çok basittir. Varsayılan olarak Raspbian'ımda 100 MB takas var:

CONF_SWAPSIZE=100

Boyutu değiştirmek istiyorsanız, sayıyı değiştirmeniz ve dphys-swapfile dosyasını yeniden başlatmanız gerekir:

/etc/init.d/dphys-swapfile restart

Düzenleme: Raspbian’da varsayılan konum SD kartında bulunan (elbette) / var / swap’tır. Bunun kötü bir fikir olduğunu düşünüyorum, bu yüzden, / etc / dphys-swapfile dosyasının da aşağıdaki seçeneğe sahip olabileceğini belirtmek isterim: CONF_SWAPFILE = / media / btsync / swapfile

Ben sadece onunla sorunum, usb depolama otomatiğe sahip, bu yüzden potansiyel bir yarış burada (otomo vs takas)


2
Bu doğru cevap. Diğer yanıtların hiçbiri dphys-swap dosyasından bahsetti.
Kenji Noguchi

1
Bu cevabı gerçekten doğru cevap olarak aldım. Son zamanlarda tüm bu zor yoldan öğrendim, cevabınız beni çok zaman kazandırabilir. ;-)
Drachenfels

Kullanmanın neden /var/swapkötü bir fikir olduğunu açıklayabilir misiniz ?
Andrey Portnoy

"sistem çağrısı başarısız oldu, bellek ayıramadı" nedeniyle başarısız olan R paketlerini kurmak için: CONF_SWAPSIZE = 1024 değerini ayarlayın. Daha az yeterli değil.
vertikalist

36

Takas alanını oldukça basit bir şekilde ayarlayabilirsiniz. Örneğin, eğer USB sürücünüz /dev/sdxöyleyse, şunu kullanırsınız (bunun için root olmanız gerekir):

$ mkswap /dev/sdx
$ swapon /dev/sdx

Bunun tüm cihazı kullanacağını ve muhtemelen üzerindeki mevcut tüm verileri kaybedeceğinizi unutmayın.

Buna benzer bir takas dosyası da (bir loopcihaz kullanarak ) oluşturabilirsiniz:

$ dd if=/dev/zero of=/path/to/swapfile bs=1M count=1024 # For 1GB swap file
$ mkswap /path/to/swapfile
$ swapon /path/to/swapfile

Takas dosyasına artık ihtiyacınız olmadığında (örneğin USB sürücüsünü çıkarmak istiyorsanız) kullanmanız gerekir swapoff <device>. Bunu yapmamak muhtemelen sistem çökmesine neden olur.

Sen olmalıdır olsa dikkatli olun . SD kartların okuma / yazma limitleri sınırlıdır ve kullanım ömrünü kısaltır. Harici bir sabit disk kullanıyorsanız, iyi olmanız gerekir, ancak çok yavaş olacaktır.


2
Neden geridöngü eklemek? Elbette bu gerekli değil mi?
popey

Haklısın, değil. Cevabı bunu yansıtacak şekilde düzenledim.

2
Kullanıcıların kopyalayıp yapıştırmalarını ve yanlışlıkla mkswapkök bölümlerinde çalıştırmalarını önlemek için bunu değiştirmeniz gerektiğini düşünüyorum . Bence sdxiyi bir kongre.
Jivings

3
SWAP özelliğini etkinleştirmeyi seçen kullanıcılar, çekirdek değiş tokuşunu ayarlamakla ilgilenebilirler .
earthmeLon

@earthmelon Raspbian Jessie, varsayılan olarak 1 numaralı swappiness seçeneğine sahiptir.
Kaay

32

Bunu hiç yapma.

Sen gerektiğini değil Ahududu Pi üzerinde takasını etkinleştirmek.

Mümkün olmasına rağmen, faydalı değildir. Sınıf 10 bir SDHC kartta bile, çok yavaş. Ayrıca, SD kartın ömrünü azaltabilirsiniz.

Flash tabanlı herhangi bir depolama cihazında (SD kart, SDD, USB flaş sürücüler), çok sayıda flaş bloğu silinirken sistem genelinde duraklamalar görmeniz de olasıdır.

Muhtemel istisnalar:

  • (Manyetik) bir sabit sürücü bağlarsanız (USB-SATA veya USB-IDE adaptörüyle)
  • ZRAM veya benzeri bir şey kullanıyorsanız

3
Bir USB beyinde takas yapmak çok hızlı bir şekilde anahtarınızı öldürür, SD kartını değiştirmek de tehlikelidir, daha yeni (sınıf 10) SD kartları daha iyi desteklese bile. ZRAM daha fazla RAM'e ihtiyacınız olursa açıkça gitme yoludur
neofutur

1
Windows’taki ReadyBoost teknolojisiyle birisinin bir USB Sürücü (veya eSata, ReadyBoost’un bunu kullanıp kullanamayacağından emin değilsiniz), ahududu pi’ye faydası olmayacağını, ancak ilginç olacağını düşündüğünüzü düşünün. bilgisayarınızın performansını artırın. İhtiyacınız olan RAM miktarını destekleyen yeni bir anakart satın almanız muhtemelen daha kolay ve ucuz olacaktır.
Kibbee

33
Bu cevabın neden bu kadar fazla önemi var? Takas kullanmak için birçok neden vardır. Birkaç gün boyunca büyük bir kütüphaneyi derlemek için harici bir sürücüdeki bir takas dosyasını kullandım. Pekmezde yüzen ölü maymunlar kadar yavaştır, ama bu "hiç yapmamalısın" anlamına gelmez.
Andrew Larsson

10
Uyarınız, anlamı iyi olsa da, çok güçlü. 'Neden olmasın' ve 'neden'in tam olarak Raspberry Pi'nin ne için olduğunu öğrenmek: onunla ne istersen dene ve ÖĞREN. Bir defaya mahsus bir kütüphane derlemesi için en yüksek bellek gereksiniminin karşılanması gibi takas için harici bir sürücü kullanmanın bazı iyi nedenleri de vardır; beni buraya getiren arama. En çok öğrendiğim zaman, ufak bir şeyi mahvettiğim ve nedenini anladığım zamandı. Üzgünüm, düşündüğün kadar yardımcı olmuyorsun.
Chris Hatton

2
Yol çok güçlü. "En iyisi değil", belki, ama "kötü, savurgan, zarar veren ve işe yaramaz" yanıltıcıdır. Her şey kullanımda yıpranır, oksijenin toksik olduğunu ve Raspbian'ın bir takas dosyası kullandığını unutmayın. Yavaşlama genellikle kazadan daha iyidir ve birkaç ayda bir devasa şeyler derlemenize izin verir. Sadece düşük değiş tokuş ayarlayın ve iyisin.
Kaay

4

Raspbmc, /etc/init/swap.confswap via / swap dosyası ile yapılandırmak için kullanılır. Önce varlığını kontrol eder /home/pi/.enable_swap.

Eğer silerseniz, /home/pi/.enable_swaptakas dosyası oluşturulmaz ve touch /home/pi/.enable_swaptakas açmanız ve yeniden başlatmanız gerekiyorsa, onu yeniden oluşturun .


4

Ahududu Pis'in GigaBit Ethernet'e sahip olmaması üzücü ama en azından teorik olarak bir ağ cihazında yer değiştirmek mümkün - Linux Terminal Sunucu Projesi wiki'deki bu öğeye göre sunucudan müşterilere teklif verebilir .

Bir Vakfı Forum konusu bulunamadı : "nfs üzerinde Swap İpucu" zaten bazı NFS vardı birisi bunlardan biri bir swapfile kullanılan yerde zaten bağlar gösterir ve Linux bir izin vermediği için muhtemelen gerekli bir döngü montajlı (yoluyla monte Doğrudan kullanmak için NFS dağı). Uzaktan takas dosyası düşünüldüğünde olacak OS verilerini tutmak kaybetmek olmamalıdır kablosuz bağlantı çok kırılgan IMHO olurdu - Sadece kablolu Ethernet ağ için bu düşünün. Ayrıca, tabii ki, takas kapatmadan ve ilk önce tamamen boşalmasına izin vermeden uzak sunucunun kapatılmasına izin vermemelisiniz!


Broadcom yongası ve Ethernet denetleyicisi arasındaki sınırlı bant genişliği nedeniyle RPi, GB Ethernet'ten hiç bir şekilde faydalanamayacak.
Dmitry Grigoryev

1
... ve Ethernet denetleyicisini USB yongasına bir eklenti olarak ! Evet, ama ağ donanımının SoC çekirdek cihazının bir parçası olduğu varsayımsal bir RPI tasarımını hayal edebiliriz . 8-P
SlySven

Ethernet denetleyicileri genellikle harici yongalardır, ancak yongalar arası veri yolu olarak USB, hem hız hem de güç tüketimi için gerçekten kötüdür.
Dmitry Grigoryev
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.