linux查看内存_内存查看器_内存查看命令

Linux下使用什么方法来查看内存的使用情况呢?我想监视Linux系统的内存使用情况,在Linux下有哪些视图或者命令行工具可用呢?

在做Linux系统优化的时候,物理内存是其中最重要的一方面。自然的,Linux也提供了非常多的方法来监控宝贵的内存资源的使用情况。下面的清单详细的列出了Linux系统下通过视图工具或命令行来查看内存使用情况的各种方法

一、free

对于free命令,可以加上-m参数,使其显示单位为Mb。如下:

[linuxidc@Ubuntu ~]$>free
             total       used       free     shared    buffers     cachedMem:       1008504     547364     461140      12836      53984     254508-/+ buffers/cache:     238872     769632Swap:      1046524          0    1046524

[@ ~]$>free-m

total used free

Mem: 984 534 450 12 52 248

-/+ /cache: 233 751

Swap: 1021 0 1021

这里出现了一些名词,有些是我不知道的,我专门去查了一下它们所代表的含义。

total

used

free

Mem

表示物理 内存总量

表示总计分配给缓存(包含 与cache )使用的数量,但其中可能部分缓存并未实际使用

未被分配的内存

共享内存

系统分配但未被使用的 数量

系统分配但未被使用的cache 数量

实际使用的 与cache 总量,也是实际使用的内存总量

未被使用的 与cache 和未被分配的内存之和,这就是系统当前实际可用内存

Swap

同样是做为缓存,和cache又有啥区别呢?

于是又查了些资料,发现实际应该是叫“缓冲”,其英文解释是:A is that has yet to be "" to disk.

就是说,是将要写入硬盘中的数据缓存。

而cache的英文解释:A cache is that has been "read" from the disk and for later use.

就是说,cache是从硬盘或者存储设备读进计算机后缓存在内存中的数据。

想起看《计算机组成原理》的时候,有看到因特尔的cpu与内存之间有cache,这之间好像有什么区别的样子。

继续查资料,发现了page cache 和 cache。简单说来,page cache用来缓存文件数据,cache用来缓存磁盘数据。在有文件系统的情况下linux查看内存,对文件操作,那么数据会缓存到page cache,如果直接采用dd等工具对磁盘进行读写,那么数据会缓存到 cache。

对于cache和,是cpu与内存间的,是内存与磁盘间的,都是为了解决速度不对等的问题。

在free中, 是 cache的内存,是块设备的读写缓冲区;cache是page cache的内存, 文件系统的cache。

关于与chche,这里就不多说了,最后的链接5里讲得挺清楚了。

这里还有一个名词,Swap,即虚拟内存。当物理内存不够用的时候,就要释放掉一部分空间,以供当前运行程序使用。这些被释放掉的内存的数据就被临时保存在虚拟内存中。但是,并非所有的数据都全被保存,只有那些使用或new生成的对象,他们在文件中并没有相应的“储备”文件,被称为匿名内存数据,需要临时地存进Swap。故Swap又称匿名数据交换空间。在链接3中有其说明。

至于linux查看内存,暂时没查到与之相关的资料,只是在某链接里提了一下其不常用。

二、top命令

top命令就好像是“linux下的任务管理器”:

其中,第一行的内容与命令的结果是一样的

[linuxidc@ubuntu ~]$>uptime
 10:05:01 up 34 min,  1 user,  load average: 0.00, 0.11, 0.16

第二行的名词也比较好理解,就是进程总数与处于R、S、T、Z状态下的进程数:

Tasks

total

总数

执行

等待(睡眠)

暂停

僵尸

181

179

第三行就是CPU的使用情况了,如下:

%Cpu(s)

us

用户空间占用CPU百分比

sy

内核空间占用CPU百分比

ni

用户进程空间内改变过优先级的进程占用CPU百分比

id

空闲CPU百分比

wa

等待输入输出的CPU时间百分比

hi

CPU服务于硬件中断所耗费的时间总额

si

CPU服务软中断所耗费的时间总额

st

Steal Time

第四、五行就是内存的使用情况了,和free命令里相似。

然后是列表的含义:

PID

进程ID

USER

进程所有者

PR

优先级

NI

nice值,负值表示高优先级,正值表示低优先级

VIRT

进程使用的虚拟内存总量

RES

进程使用的、未被换出的物理内存大小

SHR

共享内存大小

进程状态

%CPU

上次更新到现在的CPU时间占用百分比

%MEM

进程使用的物理内存百分比

TIME+

进程使用CPU总时间

命令名、命令行

默认情况下只显示这些比较重要的信息。在TOP界面下,按f可以修改显示的内容。这个界面我并不是很懂,就不叙述了。

linux查看内存_内存查看器_内存查看命令

三、命令

[linuxidc@ubuntu ~]$>vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st 0  0     76 187932 154112 372228    0    0   143    32   36   90  1  1 94  3  0

具体参数如下表:

The of for run time.

处于运行队列中的内核线程数目(进程数)。

The of in sleep.

置于等待队列(等待资源、等待输入/输出)的内核线程数目。 处于block队列中不可中断的进程数

swpd

the of used.

可用的虚拟交换内存

free

the of idle .

空闲内存

buff

the of used as .

已用缓冲数目

cache

the of used as cache.

已用缓存数目

si

of in from disk (/s).

从磁盘到内存的交换页数��� (单位/S)

so

of to disk (/s).

从交换内存到磁盘的交换页数目(单位/S)

bi

from a block (/s).

接收到块设备的块数(块/秒)

bo

sent to a block (/s).

发送到块设备的块数(块/秒)

in

The of per , the clock.

每秒中断数,包括时钟中断

cs

The of per .

每秒上下文切换数

us

Time spent non- code. (user time, nice time)

用户时间,处于用户模式的时间百分比

sy

Time spent code. ( time)

系统时间,处于内核模式的时间百分比

id

Time spent idle. Prior .5.41, this IO-wait time.

CPU空闲时间,空闲时间百分比

wa

Time spent for IO. Prior to Linux 2.5.41, in idle.

CPU 空闲时间,在此期间系统有未完成的磁盘/NFS I/O 请求

wt

Time from a . Prior to Linux 2.6.11, .

来自于虚拟机偷取的CPU所占的百分比(这个不会翻译...)

嵌入式Linux中文站

最专业的中文嵌入式Linux网站,8年磨剑,注册用户数万人!

分享嵌入式 & Linux技术干货、教程、资讯、高薪职位

订阅点击标题下方“嵌入式Linux中文站”

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注