Soru:
Raspberry Pi bellek ayırma hatası nasıl önlenir?
Subject
2013-10-28 22:01:40 UTC
view on stackexchange narkive permalink

Dün Raspberry Pi'me (Sürüm B Revizyon 2) bir Terraria sunucusu kurdum. Reddit'te bu öğreticiyi takip ettim.

NOOBS tarafından sağlanan Raspbian'ın en son sürümünü kullandım:

  • Yalnızca çalışma zamanı yerine mono-complete kurdum
  • Ayrıca PPA parçası, benimki onsuz iyi çalışıyordu
  • Ve TDSM (Terraria 1.1 için modası geçmiş) kullanmak yerine TShock (Terraria 1.2 için) kullandım
  • Bir ön Pi'm için SSH aracılığıyla Büyük Dünya oluşturdu, dünya yaklaşık 50 MB'tı
  • Sunucuyu ekranla çalıştırdım ve ardından "mono TerrariaServer.exe"

Ve bıraktım yaklaşık 12 saatten daha uzun süredir açık (gerçekten kesin değil, biliyorum). Bütün gün gitmiştim, SSH'ye girmedim ve sunucuda kimse oturum açmadı (sadece çökmeleri test ediyordum, pek bir şey yok).

Böylece eve geldim ve Pi'mi SSH'ye bağladım . Giriş yapabildim ve sonra sorunlar geldi. Oturumumu yeniden açmak için ekran olmayan herhangi bir komutu uygulayamadım ve kirli bir yol kullanmadan yeniden başlatamadım veya kapatamadım.

Bunu bir komut yazarken anladım:

  bash: fork: bellek ayıramıyor  

Bunun olmasını nasıl engelleyebilirim? Veya herhangi biriniz çözümler veya alternatifler biliyor mu?

üç yanıtlar:
syb0rg
2013-10-28 22:29:36 UTC
view on stackexchange narkive permalink

Raspberry Pi'nizi yeniden başlatmanız gerekecek (kapatma veya yeniden başlatma komutlarını çalıştıramayacağınız için muhtemelen fişini çekerek). Bu, görüntünüzü bozarsa SD kartınızı yeniden yüklemeniz gerekebilir.

Bazı işlemler bellek sızdırıyor, bu nedenle diğer programlar onu kullanamıyor. Buna neyin sebep olduğuna dair bir fikir edinmek için şu komutu çalıştırın:

  ps --sort -rss -eo rss, pid, command | head  

Muhtemelen sorunun Terraria sunucusu olduğunu göreceksiniz. Geliştiricilerle iletişime geçerek onları bilgilendirebilirsiniz ve gelecekteki bir güncellemede düzeltebilirler.


Ne yazık ki bunu önlemek için yapabileceğiniz pek bir şey yok, çünkü yalnızca program geliştiriciler tarafından kaynak kodda uygun şekilde bellek ayırıp boşaltarak çözülebilir.

Hızlı cevabınız için teşekkürler! İlk paragrafta söylediklerini yapmak zorundaydım, neyse ki SD'm hayatta kaldı :) Linux terminali ve diğer şeyler hakkında biraz bilgim var ama bunu bilmiyordum! teşekkür ederim
@ShivamRamkisoen Sizin için çalıştığına sevindim!
Senten
2013-11-08 18:36:05 UTC
view on stackexchange narkive permalink

SWAP Dosyası kullanmayı denediniz mi?

http://jankarres.de/2012/11/raspberry-pi-swap-erweitern/

Eğitim Almancadır ancak komutlar aynı olmalıdır;)

Geç yanıt için özür dilerim, deneyeceğim! Şu anda burada Noel tatili, bu yüzden bunun için zamanım var :)
shrx
2014-06-14 15:20:30 UTC
view on stackexchange narkive permalink

Diğer sitelere bağlantı veren yanıtlar tavsiye edilmediğinden, sağlanan @Senten bağlantısından prosedürü özetliyorum. Bu talimatların tüm kredileri bağlantılı sitenin yazarı Jan Karres 'e aittir.

1) Tüm komutlar kök olarak verilmelidir:

  sudo su  

1.5) Daha önce dphys-swapfile:

  apt kaldırdıysanız -get install dphys-swapfile  

2) Takas dosyası boyutunu RAM'deki miktarı ikiye katlayacak şekilde ayarlayın:

  echo "CONF_SWAPSIZE = 512" > / etc / dphys-swapfiledphys-swapfile setup  

Pi'de 512 MB RAM varsa, swapsize'ı 1024 olarak ayarlayın.

3) Etkinleştir takas

  dphys-swapfile swapon  

4) Kök kabuktan çıkın

  çıkış  

İşte bu kadar.



Bu Soru-Cevap, otomatik olarak İngilizce dilinden çevrilmiştir.Orijinal içerik, dağıtıldığı cc by-sa 3.0 lisansı için teşekkür ettiğimiz stackexchange'ta mevcuttur.
Loading...