分页: 1 / 2

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

发表于 : 2008-09-11 10:00
zongzw
使用一段时间之后,发现linux内存使用率蛮高的
如何查看linux内存的使用情况,确认到底是什么进程或内核模块占用了大量的内存?
Thanks.

发表于 : 2008-09-11 10:04
delectate
top

发表于 : 2008-09-11 10:07
eexpress
:lol: :lol:

发表于 : 2008-09-11 10:18
zongzw
能不能察看某一个特定的模块占用多少内存。

发表于 : 2008-09-11 10:34
poet
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

可以进行详细的研究。

发表于 : 2008-09-11 10:54
guiwen1158
我发现了另外一个问题。
本来有系统监视器的,一般内存占用是三四百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查看时经常有用了八九兆的,这两个统计怎么会差这么远?

发表于 : 2008-09-11 10:54
guiwen1158
我发现了另外一个问题。
本来有系统监视器的,一般内存占用是三四百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查看时经常有用了八九兆的,这两个统计怎么会差这么远?

发表于 : 2008-09-11 11:27
poet
楼上,你这两者没区别呀,监视器里面写的是 436.8,free -m 里面写的是 437

命令行的大都是经典程序,如果有不准确的,以命令行版本的数据为准一般不会错。

发表于 : 2008-09-11 11:41
zszzd
系统监视器里显示的是去掉cache 和buff的
free里两个都列了。

发表于 : 2008-09-11 16:31
想入非非

代码: 全选

sudo apt-get install htop

发表于 : 2008-09-11 20:28
CLOCKWORKHEART
cache & buffer

发表于 : 2008-09-12 12:53
sdqdcql
在终端 ps -au

发表于 : 2008-09-12 13:01
yysq009

代码: 全选

free -m

发表于 : 2008-09-12 23:45
当当坏蛋
不管内存站多少,好用就行了,呵呵,内存是用来占的,不是用来看的

发表于 : 2008-09-14 15:00
apollooooooo
内存的话,打开终端直接输入
free
就行。想以M或G为单位就直接输入
free -m