Làm thế nào để bạn tìm ra chương trình nào đang sử dụng quá nhiều bộ nhớ?


59

Ubuntu đã bị sập đối với tôi gần đây. Tôi nghĩ rằng vì nó hết bộ nhớ nên tôi đã chạy free -mlệnh và thấy rằng mức sử dụng bộ nhớ của tôi thực sự cao. Vì vậy, sau đó, tôi đã chạy topđi tìm thủ phạm, nhưng các quy trình được hiển thị đang sử dụng ít hơn 1,5% bộ nhớ. Làm thế nào để tôi biết chương trình nào đang khiến ubfox bị sập / hết bộ nhớ? Dưới đây là đầu ra:

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:~$

Hoặc là bình thường để có 110mb bộ nhớ trống và vấn đề của tôi có liên quan đến điều gì khác không?


Có vẻ như bạn cũng không có đủ trao đổi. Khuyến nghị là khoảng gấp đôi kích thước RAM của bạn
Marco Ceppi

Câu trả lời:


74

Bạn đang đọc đầu ra freekhông chính xác. Hạt nhân Linux thực hiện rất nhiều việc quản lý bộ nhớ của riêng mình, lần lượt phân bổ nhiều hơn mức thực sự cần - do đó, lượng "Bộ nhớ miễn phí" thực sự của bạn 3044nằm trong cột "Miễn phí" của +/- Buffers/cachedòng, chỉ thực sự tiêu thụ 780 MB.

Theo mặc định topsẽ sắp xếp dựa trên mức tiêu thụ CPU. Bạn có thể nhấn Shift+ Mđể sắp xếp theo phần trăm bộ nhớ đã tiêu thụ - giúp bạn hiểu rõ hơn về phần mềm đang sử dụng bộ nhớ được phân bổ cho kernel.


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

Và trong đầu với bộ nhớ được sắp xếp:

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

Cuối cùng để giúp bạn chẩn đoán phần mềm thực tế là gì, hãy thử chuyển -ccờ lên trên cùng: top -cvì điều đó sẽ cung cấp cho bạn đường dẫn, tên và tham số đầy đủ của lệnh đang chạy.


cảm ơn: / có vẻ như tai nạn của tôi có liên quan đến một cái gì đó khác sau đó.
shxfee

1
@Shafee Sau đó, bạn có thể muốn mở một câu hỏi mới, phác thảo những gì đang xảy ra và cung cấp bất kỳ tệp nhật ký hoặc chi tiết có liên quan nào để xem liệu chúng tôi có thể hỗ trợ bạn giải quyết các sự cố đó không.
Marco Ceppi

1
Ồ đã học được một cái gì đó mới một lần nữa .... chúc mừng marco một lần nữa!
andybleaden



3

Bạn có thể khởi động ứng dụng theo dõi hệ thống gnome Đây là cách tốt nhất để tìm hiểu xem ram được sử dụng bao nhiêu bởi ứng dụng nào, cũng như bao nhiêu cpu cũng được sử dụng. Bạn có thể thay đổi mức độ ưu tiên của một quy trình để chạy nhanh hơn, ví dụ nếu bạn muốn chuyển đổi video, v.v.


1
ec2 không có trình giám sát hệ thống gnome trên dòng cmd, có cách nào khác không?
Siddharth

3
@Siddharth bạn có thể sử dụng htopphiên bản hàng đầu đẹp hơn. Nhấn F6 để sắp xếp theo cách sử dụng CPU hoặc RAM.
Rosch

@Siddharth bạn vẫn có thể cài đặt màn hình gnome-system-system trên một hệ thống không có GUI (mặc dù sẽ cài đặt khá nhiều phụ thuộc). Sau đó, miễn là bạn có máy khách Linux, bạn có thể chạy nó thông qua chuyển tiếp X.
Kris Jace

1

Trong Kubfox tôi chỉ cần nhấn Ctrl- Escvà sau đó sắp xếp mọi thứ bằng cách sử dụng lĩnh vực quan tâm: Bộ nhớ, CPU, ...

nhập mô tả hình ảnh ở đây


0

Đây là một câu hỏi hay nhưng thông tin cho thấy có rất nhiều bộ nhớ có sẵn. Bạn nên theo dõi việc sử dụng bộ nhớ của bạn mặc dù.

Màn hình hệ thống yêu thích của tôi là conkyvà hiển thị bộ nhớ là một phần của nó:

Conky.gif

Tổng dòng bộ nhớ hiển thị 2,5 GiB trong số 7,4 GiB đang được sử dụng.

Dòng bộ nhớ chi tiết cho thấy:

  • Web Contentđang sử dụng 7% bộ nhớ. Đây là một chương trình con của Firefox.
  • Firefox chính nó đang sử dụng 7% bộ nhớ
  • ffmpegđang sử dụng 3% bộ nhớ. Đây là .gifmáy ghi âm peeklàm cho video chúng tôi đang xem.

Conky có cấu hình cao và máy tính để bàn của mọi người trông khác nhau. Bạn có thể google conkyvà nhận được 787 nghìn lượt truy cập.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.