[问题]查看linux内存使用情况

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
头像
zongzw
帖子: 94
注册时间: 2008-03-31 16:12

[问题]查看linux内存使用情况

#1

帖子 zongzw » 2008-09-11 10:00

使用一段时间之后,发现linux内存使用率蛮高的
如何查看linux内存的使用情况,确认到底是什么进程或内核模块占用了大量的内存?
Thanks.
delectate
帖子: 18311
注册时间: 2008-01-09 22:41

#2

帖子 delectate » 2008-09-11 10:04

top
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

#3

帖子 eexpress » 2008-09-11 10:07

:lol: :lol:
附件
2008-09-11-100650_481x295_scrot.png
● 鸣学
头像
zongzw
帖子: 94
注册时间: 2008-03-31 16:12

#4

帖子 zongzw » 2008-09-11 10:18

能不能察看某一个特定的模块占用多少内存。
poet
帖子: 2841
注册时间: 2006-09-11 22:47

#5

帖子 poet » 2008-09-11 10:34

zongzw 写了:能不能察看某一个特定的模块占用多少内存。
你可以搜一下,这个问题曾经有过深入的讨论,其结论是:

目前没有任何一个软件可以准确的查看出某个特定模块真实占用的内存。因为所有程序都会使用动态库,而动态库占用的内存包含“共享部分”与“私有部分”,其比例是不定的。

通常来说,比较可靠的办法是先使用 free -m 查看真实的应用程序占用:
$ free -m
total used free shared buffers cached
Mem: 1002 975 26 0 178 434
-/+ buffers/cache: 362 639
Swap: 1427 0 1427

如上面这个结果表明应用程序占用362M内存,然后使用top查看占用最高的进程:

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6347 poet 15 0 54620 18m 13m S 0 1.9 0:12.96 yakuake
9506 poet 15 0 2316 1184 880 R 0 0.1 0:00.03 top
1 root 18 0 2912 1844 524 S 0 0.2 0:01.97 init

这里的 RES 基本上是一个比较具有代表性的值,当然它并不准确。看到它的PID是6347, 使用下面的命令:

$ cat /proc/6347/status

可以进行详细的研究。
头像
guiwen1158
帖子: 1078
注册时间: 2008-05-11 11:10
来自: 深圳
联系:

#6

帖子 guiwen1158 » 2008-09-11 10:54

我发现了另外一个问题。
本来有系统监视器的,一般内存占用是三四百MB的样子,看到这贴子,我用free -m 再看了下,结果如下
guiwen@guiwen-laptop:~$ free -m
total used free shared buffers cached
Mem: 1009 695 314 0 12 246
-/+ buffers/cache: 437 572
Swap: 2949 0 2949
guiwen@guiwen-laptop:~$
感觉和系统监视器统计的差了好多,想起以前用free查看时经常有用了八九兆的,这两个统计怎么会差这么远?
附件
系统监视器截图
系统监视器截图
头像
guiwen1158
帖子: 1078
注册时间: 2008-05-11 11:10
来自: 深圳
联系:

#7

帖子 guiwen1158 » 2008-09-11 10:54

我发现了另外一个问题。
本来有系统监视器的,一般内存占用是三四百MB的样子,看到这贴子,我用free -m 再看了下,结果如下
guiwen@guiwen-laptop:~$ free -m
total used free shared buffers cached
Mem: 1009 695 314 0 12 246
-/+ buffers/cache: 437 572
Swap: 2949 0 2949
guiwen@guiwen-laptop:~$
感觉和系统监视器统计的差了好多,想起以前用free查看时经常有用了八九兆的,这两个统计怎么会差这么远?
附件
系统监视器截图
系统监视器截图
poet
帖子: 2841
注册时间: 2006-09-11 22:47

#8

帖子 poet » 2008-09-11 11:27

楼上,你这两者没区别呀,监视器里面写的是 436.8,free -m 里面写的是 437

命令行的大都是经典程序,如果有不准确的,以命令行版本的数据为准一般不会错。
头像
zszzd
帖子: 156
注册时间: 2007-12-12 22:54

#9

帖子 zszzd » 2008-09-11 11:41

系统监视器里显示的是去掉cache 和buff的
free里两个都列了。
头像
想入非非
帖子: 8078
注册时间: 2008-07-14 22:42
来自: Beijing
联系:

#10

帖子 想入非非 » 2008-09-11 16:31

代码: 全选

sudo apt-get install htop
Ubuntu User
头像
CLOCKWORKHEART
帖子: 635
注册时间: 2007-11-05 19:26

#11

帖子 CLOCKWORKHEART » 2008-09-11 20:28

cache & buffer
Everything that has a beginning has an end.
sdqdcql
帖子: 13
注册时间: 2007-11-28 22:17
来自: Shandong
联系:

#12

帖子 sdqdcql » 2008-09-12 12:53

在终端 ps -au
头像
yysq009
帖子: 2682
注册时间: 2007-01-28 23:00
来自: @江西|南昌@
联系:

#13

帖子 yysq009 » 2008-09-12 13:01

代码: 全选

free -m

Do as you would be done by !
当当坏蛋
帖子: 68
注册时间: 2007-04-01 1:17

#14

帖子 当当坏蛋 » 2008-09-12 23:45

不管内存站多少,好用就行了,呵呵,内存是用来占的,不是用来看的
头像
apollooooooo
帖子: 133
注册时间: 2008-09-13 19:33

#15

帖子 apollooooooo » 2008-09-14 15:00

内存的话,打开终端直接输入
free
就行。想以M或G为单位就直接输入
free -m
回复