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

为当前最终发行版之前的所有版本提供支持
头像
zongzw
帖子: 94
注册时间: 2008-03-31 16:12
送出感谢: 0
接收感谢: 0

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

#1

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

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

#2

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

top
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#3

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

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

#4

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

能不能察看某一个特定的模块占用多少内存。
poet
帖子: 2841
注册时间: 2006-09-11 22:47
送出感谢: 0
接收感谢: 4 次

#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
来自: 深圳
送出感谢: 0
接收感谢: 0
联系:

#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查看时经常有用了八九兆的,这两个统计怎么会差这么远?
附件
.png
系统监视器截图
头像
guiwen1158
帖子: 1078
注册时间: 2008-05-11 11:10
来自: 深圳
送出感谢: 0
接收感谢: 0
联系:

#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查看时经常有用了八九兆的,这两个统计怎么会差这么远?
附件
.png
系统监视器截图
poet
帖子: 2841
注册时间: 2006-09-11 22:47
送出感谢: 0
接收感谢: 4 次

#8

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

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

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

#9

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

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

#10

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

代码: 全选

sudo apt-get install htop
Ubuntu User
头像
CLOCKWORKHEART
帖子: 635
注册时间: 2007-11-05 19:26
送出感谢: 0
接收感谢: 0
联系:

#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
送出感谢: 0
接收感谢: 0
联系:

#12

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

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

#13

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

代码: 全选

free -m

Do as you would be done by !
当当坏蛋
帖子: 68
注册时间: 2007-04-01 1:17
送出感谢: 0
接收感谢: 0

#14

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

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

#15

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

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

回到 “老旧版本支持”