ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

linux – 如何查看按实际内存使用情况排序的顶级进程?

2019-09-28 06:03:18  阅读:292  来源: 互联网

标签:opensuse linux memory ram


我有一台12G内存的服务器.顶部的片段如下所示:

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                                                                                                                                      
12979 frank  20   0  206m  21m  12m S   11  0.2  26667:24 krfb                                                                                                                                                                                                                                                          
13 root      15  -5     0    0    0 S    1  0.0  36:25.04 ksoftirqd/3                                                                                                                                                                                                                                                   
59 root      15  -5     0    0    0 S    0  0.0   4:53.00 ata/2                                                                                                                                                                                                                                                         
2155 root      20   0  662m  37m 8364 S    0  0.3 338:10.25 Xorg                                                                                                                                                                                                                                                          
4560 frank  20   0  8672 1300  852 R    0  0.0   0:00.03 top                                                                                                                                                                                                                                                           
12981 frank  20   0  987m  27m  15m S    0  0.2  45:10.82 amarok                                                                                                                                                                                                                                                        
24908 frank  20   0 16648  708  548 S    0  0.0   2:08.84 wrapper                                                                                                                                                                                                                                                       
1 root      20   0  8072  608  572 S    0  0.0   0:47.36 init                                                                                                                                                                                                                                                          
2 root      15  -5     0    0    0 S    0  0.0   0:00.00 kthreadd

free -m显示以下内容:

             total       used       free     shared    buffers     cached
Mem:         12038      11676        362          0        599       9745
-/+ buffers/cache:       1331      10706
Swap:         2204        257       1946

如果我理解正确,系统只有362 MB的可用内存.我的问题是:如何找出消耗大部分内存的进程?

就像背景信息一样,系统运行64位OpenSuse 12.

解决方法:

首先,重复这个咒语一段时间:“未使用的内存是浪费的内存”. Linux内核保留了大量的文件元数据和所请求的文件,直到看起来更重要的东西将数据推出.这就是为什么你可以运行:

find /home -type f -name '*.mp3'
find /home -type f -name '*.aac'

让第二个查找实例以荒谬的速度运行.

Linux只留下一点内存“免费”来处理内存使用量的峰值而不需要太多努力.

其次,你想要找到满足你所有记忆的过程;在顶部使用M命令按内存使用排序.您可以随意忽略VIRT列,它只是告诉您已分配了多少虚拟内存,而不是该进程使用了​​多少内存. RES报告驻留或当前处于ram中的内存量(相对于交换到磁盘或从未实际分配的内存,尽管被请求).

但是,因为RES会计算,例如/lib/libc.so.6几乎每个进程都有一次内存,它并不是一个很好的衡量一个进程使用多少内存的方法. SHR列报告与其他进程共享多少内存,但无法保证另一个进程实际共享 – 它可以是可共享的,只是没有其他人想要共享.

smem工具旨在帮助用户更好地测量每个进程应该归咎于多少内存.它做了一些聪明的工作来弄清楚什么是真正独特的,共享的,并按比例计算共享内存与共享内存的进程. smem可以帮助你理解你的记忆力比top更好,但top是一个很好的第一个工具.

标签:opensuse,linux,memory,ram
来源: https://codeday.me/bug/20190928/1826377.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有