Mengapa saya sering mendapatkan kesalahan "Tidak dapat mengalokasikan memori" ini?

29

Saya menggunakan Ubuntu 12.10 dengan Gnome-Classic. Saya sering mendapatkan kesalahan ini dan dengan hampir semua program, besar dan kecil. Ketika saya mencoba untuk membukanya, mereka tidak memulai, dan sebaliknya saya mendapatkan pesan kesalahan yang mengatakan Could not launch 'Program' - Failed to fork child process (Cannot allocate memory). Ini bukan masalah sampai dalam beberapa minggu terakhir.

tidak dapat mengalokasikan memori

Saya tidak bisa membedakan kesamaan di antara program-program yang menyebabkan kesalahan ini. Sepertinya lebih menjadi masalah waktu. Setelah komputer saya berjalan selama beberapa saat, di mana saja dari hari ke beberapa hari, maka saya tidak bisa memulai program baru.

Satu-satunya cara saya tahu untuk mencegah kesalahan ini adalah dengan reboot komputer.

Mengapa saya mendapatkan kesalahan ini dan apa yang saya lakukan untuk menghentikannya?


Saya menjalankan memtest yang tersedia dari menu GRUB, dan ia melaporkan tidak ada kesalahan, jadi saya tidak berpikir ini adalah kegagalan perangkat keras.

Saya juga berlari sudo apt-get check, dan tidak ada kesalahan yang ditemukan.

Berikut adalah beberapa output perintah yang diminta:

$ 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

Ini adalah output ps --sort -rss -eo rss,pid,command | headsetelah kesalahan mulai muncul:

$ 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

Berdasarkan saran dalam komentar dan jawaban, tampaknya masalahnya adalah pada Panel Gnome atau applet-nya. Berikut adalah applet yang saya jalankan:

Applet panel

Applet adalah Indicator Applet 12.10.1,, System Monitor 3.5.92dan "Area notifikasi". dan "tanggal dan waktu", yang mana saya tidak dapat mengakses nomor versi untuk.

Berikut ini beberapa keluaran baris perintah yang diminta:

$ 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
[email protected]:/home/mythbuntu  437G  360G   55G  87% /home/dave/Mythbuntu
$ sudo du -csh /var/log
15M /var/log
15M total
Penanya
sumber
Oke, saya sudah menambahkan jawaban saya di bawah ini dengan beberapa "langkah selanjutnya".
Leland Kristie
Berapa lama Anda berlari memtest? Kesalahan sering muncul hanya di pengujian nanti.
guntbert
@ Guntbert: Saya membiarkan memtestlari sampai ada pesan di bagian bawah layar yang mengatakan semua tes selesai.
Penanya
Oke, saya menambahkan jawaban saya di bawah ini sekali lagi dengan beberapa "langkah selanjutnya".
Leland Kristie
1
@AlistairBuxton: Hmmm ... setelah tujuh jam, dengan applet waktu / tanggal kembali pada panel, sepertinya tidak ada peningkatan dalam memori. Namun, satu hal yang berbeda adalah tidak ada tampilan cuaca. Dalam applet waktu / tanggal, ada opsi untuk menampilkan cuaca, tetapi meskipun saya telah memilihnya, tidak ada ikon cuaca yang muncul. Yang tampaknya aneh, dan mungkin mengkonfirmasi masalah ini secara khusus terkait dengan fungsi cuaca dalam aplikasi waktu / tanggal / cuaca.
Penanya

Jawaban:

33

Beberapa proses membocorkan memori. Untuk mendapatkan gagasan tentang proses ini, jalankan

ps --sort -rss -eo rss,pid,command | head
jdthood
sumber
Saya telah menambahkan output ke perintah ke pertanyaan saya. Saya menangkap output ini setelah saya mulai mendapatkan kesalahan.
Penanya
Kemungkinan besar masalahnya terletak pada salah satu indikator yang jarang digunakan yang Anda gunakan, misalnya, salah satu di sebelah kiri yang terlihat seperti pisau gergaji bundar, atau indikator cuaca. Hapus masing-masing pada gilirannya untuk melihat apakah itu memperbaiki masalah.
jdthood
Ternyata itu adalah indikator cuaca. Lihat jawaban OP sendiri.
jdthood
19

Saya sarankan Anda memulai proses pemecahan masalah dengan menguji RAM dengan utilitas bawaan yang disediakan dalam menu boot GRUB dan menghilangkan "RAM buruk" sebagai sumber masalah.

Tes memori Tes memori

Memtest86 + Memtest86 +

Selanjutnya, periksa sistem Anda untuk dependensi yang rusak dari terminal dengan sudo apt-get check dan, jika kesalahan ditemukan, jalankan kembali perintah sebagai sudo apt-get check -f untuk mencoba dan memperbaikinya.

Jika Anda berkenan, coba langkah-langkah ini dan laporkan kembali ke sini dengan hasil apa pun.

Leland


Hai Dave,

Baiklah kalau begitu - kami telah mengesampingkan perangkat keras sebagai sumber masalah.

Selanjutnya, mari kita periksa pengaturan penggunaan memori dan proses di komputer Anda; jalankan perintah ini dari terminal prompt:

Menampilkan jumlah memori bebas dan bekas

bebas-m

Tampilkan ringkasan penggunaan swap

swapon -s

Tampilkan batas sumber daya proses pengguna

ulimit -a

Tangkapan layar di bawah ini dari instalasi bersih 10,04LTS. Catatan untuk item pertama dan kedua yang dilingkari kuning ada di kolom "bekas", yang menampilkan memori dan ruang swap yang tersedia untuk digunakan sistem operasi, yaitu, mereka tidak semuanya habis.

Item yang dilingkari kuning bawah tidak menunjukkan batasan jumlah proses pengguna, misalnya gFTP atau aplikasi lain misalnya, bahwa sistem operasi akan mengizinkan pengguna untuk menjalankan.

Jika Anda berkenan, coba langkah-langkah ini dan laporkan kembali ke sini dengan hasil apa pun.

Leland

Penggunaan memori dan batas sumber daya proses


Hai Dave,

Hasil dikembalikan dari ps --sort -rss -eo rss, pid, command | kepala Anda telah diposting menunjukkan proses panel gnome menggunakan sekitar 1,8GB memori yang tampaknya sedikit tidak biasa - yang sepertinya banyak memori untuk Lingkungan Desktop yang akan digunakan.

Anda bisa mendapatkan rincian memori yang digunakan oleh proses panel gnome dengan menjalankan perintah yang dilingkari di tangkapan layar di bawah ini dan melihat ke mana semua itu pergi - yang dapat mengungkapkan sesuatu yang menonjol.

Sebagai perbandingan, proses panel gnome pada mesin virtual saya menggunakan 48MB RAM - diberikan meskipun, mesin 10,04 dalam screenshot ini adalah mesin virtual yang saya gunakan untuk tes saja dan bukan desktop saya sendiri.

pmap dari proses panel gnome

Karena itu, saya akan mengedepankan langkah selanjutnya adalah mengisolasi masalah menjadi "sesuatu" di lingkungan desktop Gnome.

Untuk mengujinya, coba instal ruang kerja plasma KDE yang akan Anda temukan di Pusat Perangkat Lunak Ubuntu.

lingkungan desktop Kde-plasma

Setelah terinstal, reboot komputer Anda dan login dengan sesi KDE daripada Gnome, jalankan aplikasi Anda semampu Anda (desktop benar-benar berbeda) untuk melihat apakah kesalahan "Tidak dapat mengalokasikan memori" berulang di sini.

Sederhananya, Anda akan dapat menjalankan "tes" CLI yang sama di lingkungan KDE seperti yang kami lakukan di lingkungan Gnome dan dapat membandingkan hasil dalam memeriksa perilaku komputer di antara keduanya.

Di KDE, aplikasi konsol yang akan Anda cari adalah xterm yang dapat Anda temukan dari dialog Pencarian di menu utama.

xterm pid dan pmap untuk plasma-desktop

Saya akan memberikan sedikit kepercayaan di sini dan mengatakan saya pikir kita secara kolektif berada di jalur yang benar untuk mengisolasi masalah.

Leland

Leland Kristie
sumber
Terima kasih telah merespons. Saya menjalankan memtest dan apt-getperintah yang Anda sarankan, dan keduanya melaporkan tidak ada kesalahan. Saya telah memperbarui pertanyaan saya.
Penanya
Saya telah menambahkan ke pertanyaan saya output dari perintah yang Anda minta. Satu-satunya hal yang saya perhatikan adalah bahwa di max user processesbawahnya tidak tertulis unlimitedseperti milik Anda. Milik saya memiliki nomor 31421.
Penanya
1
Hai Dave, Pesan singkat untuk memberi tahu Anda bahwa saya akan dapat menindaklanjuti lagi dengan Anda pada akhir pekan. Pekerjaan saya sehari-hari membuat saya sibuk di malam hari dan jadi saya pikir saya hanya akan memberikan catatan sopan kepada Anda di sini untuk memberi tahu Anda bahwa saya belum menghilang. Leland
Leland Kristie
Oh dan omong-omong, saya mencoba mengubah pengaturan proses pengguna maks hingga 1024 dan tidak dapat mereproduksi kesalahan dengan cara ini ... pikir saya akan menyebutkan saya mencobanya.
Leland Kristie
Saya telah menginstal desktop KDE, tetapi saya saat ini menunggu sampai saya mulai melihat kesalahan lagi, dan kemudian saya akan menjalankan pmapperintah dan memposting output itu di sini. Saya juga telah melakukan sedikit pencarian dan telah menemukan ada beberapa yang menyebutkan kebocoran memori di panel gnome, sehingga sepertinya menjadi tersangka.
Penanya
3

Setelah bereksperimen dengan menghidupkan dan mematikan selama beberapa hari terakhir, saya yakin sekarang mengatakan bahwa masalahnya adalah kebocoran memori di bagian indikator cuaca waktu dan tanggal applet. Saat cuaca ditampilkan, penggunaan memori meningkat seiring waktu. Ketika cuaca tidak ditampilkan, memori tidak bertambah.

Saya kira ini adalah bug dengan indikator cuaca yang harus dilaporkan, tetapi melaporkan bug pada Launchpad adalah proses yang terlalu rumit untuk saya lakukan.

Penanya
sumber
Buka terminal di mesin Anda dan jalankan "apport-bug" yang akan mengumpulkan informasi dan mengajukan laporan bug untuk Anda.
jdthood
2
@ jdthood: Itulah teori betapa mudahnya seharusnya. Kenyataannya adalah bahwa layar opsi pertama tidak menggambarkan masalah saya, dan opsi "lain" hanya memberitahu saya bahwa saya memerlukan nama paket dan kemudian berhenti. Mirip dengan ini .
Penanya
Buka bugs.launchpad.net/ubuntu/+source/indicator-weather di browser, klik "Laporkan bug" dan ikuti petunjuknya. Setelah Anda tahu nomor yang ditetapkan untuk laporan, jalankan "apport-collect <bugnumber>" untuk mengunggah informasi yang relevan tentang mesin yang terpengaruh.
jdthood
1

Jika Anda mengalami masalah ini menggunakan Ruby on Rails dengan Digital Ocean kemungkinan karena Anda memiliki RAM terlalu sedikit. Cobalah menaikkan RAM dari 512MB ke 1GB , yang memperbaikinya untuk saya.

Glenn Dayton
sumber