linux查看物理内存? .那么,linux查看物理内存?一起来了解一下吧。
可以使用“free”命令查看当前内存的使用情况,
其中各项的含义如下,total:总计物理内存的大小;used:已使用的内存大小;free:可用的内存大小;shared:多个进程共享的内存总额;buffers/cached:磁盘缓存的大小。
第二行(mem)的used/free与第三行(-/+ buffers/cache)used/free的区别在于是从不同的角度来看内存的占用,“mem”是从操作系统的角度来看,对于os,buffers/cached都是属于被使用,总共使用的内存包含内核(os)使用+application(x,oracle,etc)使用+buffers+cached。“-/+ buffers/cache”所指的是从应用程序角度来看,对于应用程序来说,buffers/cached 是可用的内存,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。
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就该这么学》。
可以直接使用top命令后,查看%MEM的内容。可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令:
(1)top
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器
可以直接使用top命令后,查看%MEM的内容。可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令:
$ top -u oracle
内容解释:
PID:进程的ID
USER:进程所有者
PR:进程的优先级别,越小越优先被执行
NInice:值
VIRT:进程占用的虚拟内存
RES:进程占用的物理内存
SHR:进程使用的共享内存
S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
%CPU:进程占用CPU的使用率
%MEM:进程使用的物理内存和总内存的百分比
TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
COMMAND:进程启动命令名称
常用的命令:
P:按%CPU使用率排行
T:按MITE+排行
M:按%MEM排行
查看内存使用情况,可以使用命令 free -m
其结果大致如下:
total used free shared buffers cached
Mem: 32108 30681 1426 0 123 21165
-/+ buffers/cache: 9392 22715
Swap: 34287 1262 33025
在第一部分Mem 行中有如下参数:
* total: 内存总数,即32108 MB
* used: 已经使用的内存数,即 30681 MB
* free: 空闲的内存数:即 1426MB
* shared:当前已废弃不用,总是 0
* buffers Buffer: 缓存内存数,即 123 MB
* cached Page: 缓存内存数,即 421MB
其中,内存总数与已经使用内存数和空闲内存数的关系是:
total (32108) = used (30681) + free (1426)
在第二部分内容(-/+ buffers/cache)中个参数如下所示:
(-buffers/cache): 真正使用的内存数,即9392M,他指的是第一部分的 used - buffers - cached
(+buffers/cache): 可用的内存数,即22715M,他指的是第一部分的 free + buffers + cached
其含义可以理解为:-buffers/cached 反映的是被程序实实在在用掉的内存,而 +buffers/cached反映的是可以被使用(或者说挪用)的内存总数。
top能显示系统内存。我们常用的Linux下查看内容的专用工具是free命令。
下面是对内存查看free命令输出内容的解释:
total:总计物理内存的大小。
used:已使用多大。
free:可用有多少。
Shared:多个进程共享的内存总额。
Buffers/cached:磁盘缓存的大小。
以上就是linux查看物理内存的全部内容。