Bagaimana Anda mengetahui program mana yang menggunakan terlalu banyak memori?

59

Ubuntu baru-baru ini menabrak saya. Saya pikir itu karena kehabisan memori jadi saya menjalankan free -mperintah dan menemukan bahwa penggunaan memori saya sangat tinggi. Jadi, saya berlari topuntuk menemukan pelakunya, tetapi proses yang ditampilkan menggunakan kurang dari 1,5% dari memori. Bagaimana saya tahu program mana yang membuat ubuntu crash / kehabisan memori? Di bawah ini adalah output:

shafee@shafee-pc:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          3824       3714        110          0        978       1954
-/+ buffers/cache:        780       3044
Swap:           99          0         99

shafee@shafee-pc:~$ top
top - 02:12:14 up  1:24,  2 users,  load average: 0.16, 0.42, 1.49
Tasks: 182 total,   1 running, 181 sleeping,   0 stopped,   0 zombie
Cpu(s):  2.9%us,  1.9%sy,  0.3%ni, 79.3%id, 15.5%wa,  0.0%hi,  0.2%si,  0.0%st
Mem:   3916708k total,  3803848k used,   112860k free,  1002308k buffers
Swap:   102396k total,        0k used,   102396k free,  2001852k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND            
 4200 root      20   0  289m  53m  38m S    2  1.4   1:06.45 Xorg               
 5590 shafee    20   0 19348 1368  956 R    2  0.0   0:00.01 top                
    1 root      20   0 24124 2136 1264 S    0  0.1   0:02.05 init               
    2 root      20   0     0    0    0 S    0  0.0   0:00.00 kthreadd           
    3 root      20   0     0    0    0 S    0  0.0   0:24.23 ksoftirqd/0        
    6 root      RT   0     0    0    0 S    0  0.0   0:00.00 migration/0        
    7 root      RT   0     0    0    0 S    0  0.0   0:00.00 migration/1        
    9 root      20   0     0    0    0 S    0  0.0   0:00.11 ksoftirqd/1        
   11 root      RT   0     0    0    0 S    0  0.0   0:00.00 migration/2        
   13 root      20   0     0    0    0 S    0  0.0   0:03.89 ksoftirqd/2        
   14 root      RT   0     0    0    0 S    0  0.0   0:00.00 migration/3        
   16 root      20   0     0    0    0 S    0  0.0   0:00.16 ksoftirqd/3        
   17 root       0 -20     0    0    0 S    0  0.0   0:00.00 cpuset             
   18 root       0 -20     0    0    0 S    0  0.0   0:00.00 khelper            
   19 root       0 -20     0    0    0 S    0  0.0   0:00.00 netns              
   21 root      20   0     0    0    0 S    0  0.0   0:00.01 sync_supers        
shafee@shafee-pc:~$

Atau apakah normal memiliki memori bebas 110mb dan apakah masalah saya terkait dengan hal lain?

shxfee
sumber
Sepertinya Anda juga tidak memiliki cukup swap. Direkomendasikan adalah sekitar dua kali ukuran RAM Anda
Marco Ceppi

Jawaban:

74

Anda membaca output yang freesalah. Kernel Linux melakukan banyak manajemen memorinya sendiri, pada gilirannya mengalokasikan lebih dari yang sebenarnya dibutuhkan - jadi jumlah sebenarnya dari "Memori Gratis" Anda 3044berada di kolom "Gratis" pada +/- Buffers/cachebaris tersebut, sehingga hanya 780 MB yang benar-benar dikonsumsi.

Secara default topakan mengurutkan berdasarkan konsumsi CPU. Anda dapat menekan Shift+ Muntuk mengurutkan berdasarkan persentase memori yang digunakan - memberi Anda pemahaman yang lebih baik tentang perangkat lunak apa yang menggunakan memori yang dialokasikan untuk kernel.


free -m
             total       used       free     shared    buffers     cached
Mem:          7873       3916       3956          0        231       1117
-/+ buffers/cache:       2567       5305
Swap:        12401          0      12401

Dan di atas dengan memori yang diurutkan:

top - 17:05:18 up 2 days,  1:40,  4 users,  load average: 0.21, 0.14, 0.11
Tasks: 237 total,   1 running, 234 sleeping,   0 stopped,   2 zombie
Cpu(s):  1.6%us,  0.8%sy,  0.1%ni, 96.7%id,  0.8%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   8062420k total,  4013632k used,  4048788k free,   237204k buffers
Swap: 12699644k total,      292k used, 12699352k free,  1144752k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                                                          
 1632 root      20   0  884m 240m 6532 S    0  3.1   1:20.17 java                                                                                                                                                                             
 3911 marco     20   0 1011m 165m  22m S    0  2.1   9:20.62 chrome                                                                                                                                                                           
 3852 marco     20   0  770m 162m  45m S    0  2.1  14:59.59 chrome                                                                                                                                                                           
 1091 root      20   0  491m 160m 118m S    3  2.0  29:19.44 Xorg                                                                                                                                                                             
 1747 marco     20   0  659m 108m  34m S    1  1.4  18:43.92 compiz                                                                                                                                                                           
 3964 marco     20   0 1113m  99m  21m S    0  1.3  18:51.88 chrome                                                                                                                                                                           
 1759 marco     20   0  668m  94m  21m S    0  1.2   2:27.42 nautilus                                                                                                                                                                         
 3046 marco     20   0  788m  86m  26m S    0  1.1   1:22.96 evolution                                                                                                                                                                        
 1793 marco     20   0  647m  85m  18m S    0  1.1   0:12.74 shutter                                                                                                                                                                          
 1791 marco     20   0  404m  85m  13m S    0  1.1   5:19.51 bitcoin                                                                                                                                                                          
 2938 marco     20   0  809m  78m  31m S    0  1.0   1:01.07 empathy                                                                                                                                                                          
 9630 marco     20   0  265m  73m  19m S    1  0.9  12:41.52 skype                                                                                                                                                                            
 9618 marco     20   0  914m  64m  21m S    0  0.8   1:14.04 chrome                                                                                                                                                                           
 1777 marco     20   0  432m  64m  14m S    0  0.8   1:45.96 pastie

Akhirnya untuk membantu Anda mendiagnosis perangkat lunak yang sebenarnya, coba lewati -cbendera ke atas: top -ckarena itu akan memberi Anda path lengkap, nama, dan parameter dari perintah yang sedang berjalan.

Marco Ceppi
sumber
terima kasih: / sepertinya crash saya berhubungan dengan sesuatu yang lain saat itu.
shxfee
1
@ Shafee Anda mungkin ingin membuka pertanyaan baru kemudian, menguraikan apa yang macet dan memberikan file atau detail log yang relevan untuk melihat apakah kami dapat membantu Anda menyelesaikan crash tersebut.
Marco Ceppi
1
Wow. belajar sesuatu yang baru lagi .... bersorak marco lagi!
andybleaden
7
Lihat juga linuxatemyram.com
Lekensteyn
3

Anda dapat memulai aplikasi gnome-system-monitor Ini yang terbaik untuk mengetahui berapa banyak ram yang digunakan oleh aplikasi apa, juga berapa banyak cpu yang digunakan juga. Anda dapat mengubah prioritas proses agar berjalan lebih cepat, misalnya jika Anda ingin mengonversi video dll.

digitalcrow
sumber
1
EC2 tidak memiliki gnome-system-monitor on cmd line, adakah alternatif?
Siddharth
3
@Iddharth dapat Anda gunakan htopyang merupakan versi teratas yang lebih bagus. Tekan F6 untuk mengurutkan berdasarkan misalnya penggunaan CPU atau RAM.
Rosch
@Iddharth Anda masih dapat menginstal gnome-system-monitor pada sistem tanpa GUI (akan menginstal sedikit dependensi). Kemudian, selama Anda memiliki klien Linux, Anda dapat menjalankannya melalui penerusan X.
Kris Jace
1

Di Kubuntu saya cukup tekan Ctrl- Escdan kemudian urutkan berdasarkan bidang yang diminati: Memori, CPU, ...

masukkan deskripsi gambar di sini

Adobe
sumber
0

Ini adalah pertanyaan yang bagus tetapi informasi menunjukkan ada banyak memori yang tersedia. Anda harus memantau penggunaan memori Anda.

Monitor sistem favorit saya adalah conkydan tampilan memori adalah bagian darinya:

Conky.gif

Baris memori total menunjukkan 2,5 GiB dari 7,4 GiB sedang digunakan.

Baris memori terperinci menunjukkan:

  • Web Contentmenggunakan 7% memori. Ini adalah subprogram Firefox.
  • Firefox sendiri menggunakan 7% memori
  • ffmpegmenggunakan 3% memori. Ini adalah .gifperekam yang peekmembuat video yang kita tonton.

Conky sangat dapat dikonfigurasi dan desktop semua orang terlihat berbeda. Anda dapat google conkydan mendapatkan 787 ribu hit.

WinEunuuchs2Unix
sumber