如何查看linux系统中空闲内存/物理内存使用/剩余内存

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何查看linux系统中空闲内存/物理内存使用/剩余内存相关的知识,希望对你有一定的参考价值。

参考技术A Linux将物理内存按固定大小的页面(一般为4K)划分内存,在内核初始化时,会建立一个全局struct
page结构数组mem_map[
]。如系统中有76G物理内存,则物理内存页面数为76*1024*1024k/4K=
19922944个页面,mem_map[
]数组大小19922944,即为数组中每个元素和物理内存页面一一对应,整个数组就代表着系统中的全部物理页面。
在服务器中,存在NUMA架构(如Nehalem、Romly等),Linux将NUMA中内存访问速度一致(如按照内存通道划分)的部分称为一个节点(Node),用struct
pglist_data数据结构表示,通常使用时用它的typedef定义pg_data_t。系统中的每个结点都通过pgdat_list链表pg_data_t->node_next连接起来,该链接以NULL为结束标志。每个结点又进一步分为许多块,称为区域(zones)。区域表示内存中的一块范围。区域用struct
zone_struct数据结构表示,它的typedef定义为zone_t。更多详细的解答可以查看《Linux就该这么学》。

如何查看linux系统中空闲内存/物理内存使用/剩余内存

查看linux系统中空闲内存/物理内存使用/剩余内存

查看系统内存有很多方法,但主要的是用top命令和free 命令
当执行top命令看到结果,要怎么看呢?这里说明一下:
Mem: 666666k total, 55555k used,并不是代表你的应用程序已经使用了55555k的内存,这55555k是包含了:应用程序内存 + 缓冲 + 缓存的内存的。
用free命令查看更直接:
下面是一个例子(单位是MB): 

[root@linuxzgf ~]# free -m
                    total       used       free     shared    buffers     cached
Mem:          7982       6811       1171          0        350       5114
-/+ buffers/cache:       1346       6636
Swap:        16935         11      16924

在这里例子中,应用程序只使用了1346MB内存,还有6636MB空闲内存可以使用. 
一些简单的计算方法: 
物理已用内存 = 实际已用内存 - 缓冲 - 缓存 = 6811M - 350M - 5114M

物理空闲内存 = 总物理内存 - 实际已用内存 + 缓冲 + 缓存 

应用程序可用空闲内存 = 总物理内存 - 实际已用内存 

应用程序已用内存 = 实际已用内存 - 缓冲 - 缓存

top命令的结果详解
top命令 是Linux下常用的性能 分析工具 ,能够实时显示系统 中各个进程的资源占用状况,类似于Windows的任务管理 器。下面详

以上是关于如何查看linux系统中空闲内存/物理内存使用/剩余内存的主要内容,如果未能解决你的问题,请参考以下文章

Linux内存cache/buffer剖析

linux free查看内存使用状况

free命令(buffer与cache区别/linux查看空闲内存)

linux 内存介绍

(转)Linux中显示空闲内存空间的free命令的基本用法

linux 下如何查看服务器物理内存状况