Neden bu “Bellek ayıramıyor” hatasını sık sık alıyorum?


29

Gnome-Classic ile Ubuntu 12.10 kullanıyorum. Bu hatayı sık sık ve hemen hemen tüm programlarda büyük veya küçük olarak alıyorum. Onları açmaya çalıştığımda başlamıyorlar ve bunun yerine bir hata mesajı alıyorum diyor Could not launch 'Program' - Failed to fork child process (Cannot allocate memory). Bu son birkaç hafta içinde sorun olmadı.

bellek ayrılamıyor

Bu hataya neden olan programlar arasında hiçbir ortaklık göremiyorum. Daha çok zaman meselesi gibi görünüyor. Bilgisayarım bir süre çalıştıktan sonra, bir günden bir kaç güne kadar her yerde, herhangi bir yeni program başlatılamıyor gibi görünüyor.

Bu hatayı önlemenin tek yolu bilgisayarı yeniden başlatmaktır.

Neden bu hatayı alıyorum ve bunun olmasını önlemek için ne yapacağım?


GRUB menüsünde bulunan memtest'i çalıştırdım ve hata bildirmediği için bunun bir donanım arızası olduğunu sanmıyorum.

Ben de koştum sudo apt-get checkve hata bulunamadı.

İstenilen bazı komut satırı çıktıları:

$ free -m
             total       used       free     shared    buffers     cached
Mem:          3945       3753        191          0        181        475
-/+ buffers/cache:       3096        848
Swap:         3813         60       3753

$ swapon -s
Filename                Type        Size    Used    Priority
/dev/sda6                               partition   3905532 61648   -1

$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 31421
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 31421
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

Bu, ps --sort -rss -eo rss,pid,command | headhatanın görünmeye başlamasından sonraki çıktısıdır :

$ ps --sort -rss -eo rss,pid,command | head
  RSS   PID COMMAND
1963400 2953 gnome-panel
155496 4029 banshee /usr/lib/banshee/Banshee.exe --redirect-log --play-enqueued
104944 15765 /opt/google/chrome/chrome --type=renderer --lang=en-US --force-fieldtrials=ForceCompositingMode/disable/GlobalSdch/global_enable_sdch/InfiniteCache/No/OmniboxDisallowInlineHQP/Standard/OmniboxHUPCreateShorterMatch/Standard/OmniboxHUPCullRedirects/Standard/OmniboxSearchSuggestTrialStarted2012Q4/2/OneClickSignIn/Standard/Prerender/PrerenderEnabled/SBInterstitial/V2/SpdyCwnd/cwndMin10/SpeculativePrefetching/Disabled/Test0PercentDefault/group_01/UMA-Dynamic-Binary-Uniformity-Trial/default/UMA-Session-Randomized-Uniformity-Trial-5-Percent/default/UMA-Uniformity-Trial-1-Percent/group_09/UMA-Uniformity-Trial-10-Percent/group_08/UMA-Uniformity-Trial-20-Percent/group_03/UMA-Uniformity-Trial-5-Percent/group_06/UMA-Uniformity-Trial-50-Percent/group_01/WarmSocketImpact/last_accessed_socket/ --enable-crash-reporter=ECE9000094D279FD3B14B35A74BF72CC,Ubuntu 12.10 --renderer-print-preview --disable-accelerated-2d-canvas --disable-accelerated-video-decode --channel=15654.5.89177240
78164 15654 /opt/google/chrome/chrome       
74912 19890 /usr/bin/python /usr/share/oneconf/oneconf-service
65476 12419 /usr/bin/perl /usr/bin/shutter
61096 19626 /usr/bin/python3.2 /usr/sbin/aptd
57832 15708 /opt/google/chrome/chrome --type=renderer --lang=en-US --force-fieldtrials=ForceCompositingMode/disable/GlobalSdch/global_enable_sdch/InfiniteCache/No/OmniboxDisallowInlineHQP/Standard/OmniboxHUPCreateShorterMatch/Standard/OmniboxHUPCullRedirects/Standard/OmniboxSearchSuggestTrialStarted2012Q4/2/OneClickSignIn/Standard/Prerender/PrerenderEnabled/SBInterstitial/V2/SpdyCwnd/cwndMin10/SpeculativePrefetching/Disabled/Test0PercentDefault/group_01/UMA-Dynamic-Binary-Uniformity-Trial/default/UMA-Session-Randomized-Uniformity-Trial-5-Percent/default/UMA-Uniformity-Trial-1-Percent/group_09/UMA-Uniformity-Trial-10-Percent/group_08/UMA-Uniformity-Trial-20-Percent/group_03/UMA-Uniformity-Trial-5-Percent/group_06/UMA-Uniformity-Trial-50-Percent/group_01/WarmSocketImpact/last_accessed_socket/ --enable-crash-reporter=ECE9000094D279FD3B14B35A74BF72CC,Ubuntu 12.10 --extension-process --renderer-print-preview --disable-accelerated-2d-canvas --disable-accelerated-video-decode --channel=15654.2.1555888673
42108  3030 /var/lib/dropbox/.dropbox-dist/dropbox

Yorumlardaki ve cevaplardaki önerilerden yola çıkarak, sorunun Gnome Panel veya uygulamaları ile ilgili olması muhtemel görünüyor. İşte kaçtığım uygulamalar:

Panel uygulamaları

Applet'ler vardır Indicator Applet 12.10.1, System Monitor 3.5.92ve bir "bildirim Alanı". ve "tarih ve saat", ikisi için de sürüm numarasına erişemiyorum.

İşte biraz daha istenen komut satırı çıktısı:

$ df -h
Filesystem                             Size  Used Avail Use% Mounted on
/dev/sda5                               19G   12G  6.4G  64% /
udev                                   2.0G  4.0K  2.0G   1% /dev
tmpfs                                  790M  1.1M  789M   1% /run
none                                   5.0M     0  5.0M   0% /run/lock
none                                   2.0G   84K  2.0G   1% /run/shm
none                                   100M     0  100M   0% /run/user
/dev/sda7                              384G  306G   59G  84% /home
mythbuntu@192.168.0.4:/home/mythbuntu  437G  360G   55G  87% /home/dave/Mythbuntu
$ sudo du -csh /var/log
15M /var/log
15M total

Tamam, cevabımı aşağıdaki "sonraki adımlar" ile ekledim.
Leland Kristie,

Ne kadar süre kaçtın memtest? Hatalar genellikle sadece sonraki testlerde ortaya çıkar.
guntbert

@guntbert: memtestEkranın altında tüm testlerin tamamlandığını söyleyen bir mesaj olana kadar koşmaya izin verdim .
Soru

Tamam, cevabımı aşağıda "sonraki adımlar" ile ekledim.
Leland Kristie,

1
@AlistairBuxton: Hmmm ... yedi saat sonra, paneldeki tarih / saat uygulaması ile hafızada artış olmadığı görülüyor. Ancak, farklı olan bir şey, hava durumu göstergesi olmamasıdır. Saat / tarih uygulamasında, hava durumunu görüntüleme seçeneği vardır, ancak seçmeme rağmen, hiçbir hava durumu simgesi görünmüyor. Garip görünüyor ve sorunun zaman / tarih / hava durumu uygulamasındaki hava durumu işlevleriyle ilgili olduğunu doğrulayabilir.
Soru

Yanıtlar:


33

Bazı işlemler bellek sızdırıyor. Bunun hangi süreç olabileceği hakkında bir fikir edinmek için,

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

Sorumu çıktıya komuta ekledim. Bu hatayı almaya başladıktan sonra bu çıktıyı yakaladım.
Soru

Büyük olasılıkla problem, kullandığınız daha az kullanılan göstergelerden biri, örneğin soldaki daire testere bıçağı gibi görünen veya hava durumu göstergesinden kaynaklanıyor. Sorunu çözüp çözmediğini görmek için bunların her birini sırayla kaldırın.
jdthood

Hava durumu göstergesi olduğu ortaya çıktı. OP'nin kendi cevabını görün.
jdthood

19

RAM’ı GRUB önyükleme menüsünde bulunan yerleşik yardımcı programla test ederek sorun giderme işlemine başlamanızı ve "kötü RAM" i sorunun bir kaynağı olarak ortadan kaldırmanızı öneriyorum.

Hafıza testi Hafıza testi

memtest86 + memtest86 +

Daha sonra, sisteminizde sudo apt-get check ile bir terminalden kopuk bağımlılıklar olup olmadığını kontrol edin ve eğer hata bulunursa, denemek ve düzeltmek için komutu sudo apt-get check -f olarak tekrar çalıştırın .

Lütfen, lütfen bu adımları deneyin ve sonuçlarla birlikte burayı rapor edin.

Leland


Merhaba Dave,

Tamam o zaman - donanımı bir problemin kaynağı olarak göz ardı ettik.

Daha sonra, bilgisayarınızda bellek kullanımını ve işlem ayarlarını inceleyelim; bu komutları bir terminal isteminden çalıştırın:

Boş ve kullanılan hafıza miktarını görüntüleyin

bedava -m

Takas kullanım özetini görüntüle

takas

Kullanıcı işlemi kaynak sınırlarını görüntüleme

ulimit -a

Aşağıdaki ekran görüntüsü temiz 10.04LTS kurulumundan. Birinci ve ikinci sarı daire içine alınmış parçalardan not edilmesi gerekenler, işletim sisteminin kullanabileceği hafıza ve takas alanını gösteren "kullanılmış" sütundadır, yani hepsi kullanılmaz.

Alttaki sarı daire içinde yer alan öğe, kullanıcı işlemlerinin sayısında bir sınırlama göstermez, örneğin, işletim sisteminin kullanıcının çalışmasına izin vereceği örneğin gFTP veya başka bir uygulama.

Lütfen, lütfen bu adımları deneyin ve sonuçlarla birlikte burayı rapor edin.

Leland

Bellek kullanımı ve işlem kaynağı sınırları


Merhaba Dave,

Ps --sort -rss -eo rss, pid, command | döndürülen sonuçlar | Yayınladığınız baş , biraz sıradışı görünen, yaklaşık 1.8 GB'lık bellek kullanan gnome panel sürecini gösteriyor; bu, Masaüstü Ortamının kullanması için çok fazla bellek gibi görünüyor.

Aşağıdaki ekran görüntüsünde daire içine alınmış komutları çalıştırarak gnome panel işleminin kullandığı hafızanın bir dökümünü elde edebilir ve her şeyin nereye gittiğini görebilirsiniz - bu öne çıkan bir şeyi ortaya çıkarabilir.

Karşılaştırma için, sanal makinemdeki gnome panel işlemi 48 MB RAM kullanıyor - buna rağmen, bu ekran görüntülerindeki 10.04 makinesi yalnızca kendi masaüstüm değil testler için kullandığım sanal bir makine.

Gnome panel işleminden pmap

Buna göre, bir sonraki adımı, Gnome masaüstü ortamında sorunu "bir şey" e izole etmek olduğunu ileri süreceğim.

Bunu test etmek için, Ubuntu Yazılım Merkezinde bulacağınız KDE plazma çalışma alanını kurmayı deneyin.

kde-plasma masaüstü ortamı

Kurulduktan sonra, bilgisayarınızı yeniden başlatın ve Gnome yerine KDE oturumu ile oturum açın, "Bellek ayıramaz" hatasının burada tekrarlanıp tekrarlanmadığını görmek için uygulamalarınızı olabildiğince iyi (masaüstü tamamen farklı) çalıştırın.

Basitçe anlaşılacağı gibi, Gnome ortamında yaptığımız gibi bir KDE ortamında aynı CLI "testlerini" yapabilecek ve bilgisayarın davranışını inceleyen sonuçları karşılaştırabileceksiniz.

KDE'de aradığınız konsol uygulaması ana menüdeki Ara iletişim kutusundan bulabileceğiniz xterm'dir .

Plazma-masaüstü için xterm pid ve pmap

Buraya biraz güveneceğim ve derhal sorunu çözmek için doğru yolda olduğumuzu düşünüyorum.

Leland


Yanıtınız için teşekkürler. apt-getHem bildirimi hem de önerdiğiniz komutları çalıştırdım ve her ikisi de hata bildirmedi. Sorumu buna göre güncelledik.
Soru

İstediğim komutların çıktısını soruma ekledim. Not ettiğim tek şey, altında sizinkilerin max user processesdediği değil unlimited. Benimki numarada 31421.
Anket

1
Merhaba Dave, Haftasonu boyunca tekrar görüşebileceğimi bildiren kısa bir not. Gündelik işim beni akşamları meşgul ediyor ve bu yüzden kaybolmadığımı bilmen için buraya bir nezaket notu bırakacağımı düşündüm. Leland
Leland Kristie

Bu arada, maksimum kullanıcı işlemlerini 1024'e kadar ayarlayarak maksimum kullanıcı işlemlerini değiştirmeye çalıştım ve hatayı bu şekilde yeniden oluşturamadım ... denedim.
Leland Kristie,

KDE masaüstünü kurdum, ancak hatayı tekrar görmeye başlayana kadar şu anda bekliyorum, sonra da pmapkomutu çalıştırıp bu çıktıyı buraya göndereceğim . Ayrıca biraz araştırma yaptım ve gnome panelinde bazı bellek sızıntısı sözleri olduğunu öğrendim, bu yüzden şüpheli görünüyor.
Soru

3

Son birkaç gün içinde açıp kapatmayı denedikten sonra, sorunun saat ve tarih uygulamasının hava durumu göstergesi kısmında bir bellek sızıntısı olduğunu söyleyeceğime eminim. Hava görüntüleniyorsa, hafıza kullanımı zamanla artar. Hava durumu görünmediğinde hafıza artmaz.

Sanırım bu rapor edilmesi gereken hava durumu göstergesindeki bir hatadır, ancak Launchpad'deki hataları bildirmek, benim için üstlenilmeyecek bir süreçtir.


Makinenizde bir terminal açın ve bilgi talep edip sizin için hata raporunu dosyalayan "apport-bug" komutunu çalıştırın.
jdthood

2
@jdthood: Bu ne kadar kolay olması gerektiği teorisi. Gerçek şu ki, ilk seçenek ekranı sorunumu tanımlamıyor ve "diğer" seçeneği sadece bana bir paket adına ihtiyacım olduğunu söylüyor ve sonra da istifa etti. Benzer bu .
Anket

Bir tarayıcıda bugs.launchpad.net/ubuntu/+source/indicator-weather açın , "Hata bildir" i tıklayın ve talimatları izleyin. Rapora atanan numarayı öğrendikten sonra, etkilenen makine hakkında alakalı bilgileri yüklemek için "apport-collect <bugnumber>" ı çalıştırın.
jdthood

1

Digital Ocean ile Ruby on Rails'i kullanırken bu sorunu yaşıyorsanız, muhtemelen çok az RAM'iniz vardır. RAM'i benim için düzelten 512 MB'tan 1 GB'a yükseltmeyi deneyin .

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.