在Linux上查看内存通过free命令查看机器的可用内存,可以看到free的值很小。 在本节中,您将学习Linux显示内存的命令以及这些命令的说明,以便更好地理解Linux显示内存的命令
要在Linux上显示内存,通常使用free命令。
[root@scs-2 tmp]# free
totalusedfreesharedbufferscached
mem :326618032500041617601106522668236
-/buffers/cache 33604711162795064
Swap: 2048276 80160 1968116
Linux内存显示命令的这些数值的说明如下所示。
总的:物理内存总大小。
used:使用了多久?
free:可以使用多久?
Shared:以上进程共享的内存总数。
Buffers/cached:磁盘缓存的大小。
第三行(-/ buffers/cached ) :
used:使用了多久?
free:可以使用多久?
第四行我就不多解释了。
差异:第二行(mem )中的used/free与第三行(-/ buffers/cache )中的used/free之间的差异。 这两者的区别在于,从使用的角度来看,第一行是从操作系统的角度来看,对于操作系统buffers/cached都在使用,所以他的可用内存为16176KB,使用过的内存为3250004KB,其中包括内核()
第三行意味着,从APP应用程序的角度来看,buffers/cached对于APP应用程序是可用的。 这是因为buffer/cached可以提高文件读取性能,并且在APP应用程序需要使用内存时可以立即重用。
因此,从APP应用的角度来看,可用的内存=系统free memory buffers cached。
上述示例:
2795064=16176 110652 2668236
接下来,我们将介绍何时更换内存以及如何更换内存。 如果可用内存少于额定值,开会更换。
Linux在查看内存命令时如何看待额定值:
cat /proc/meminfo
[ root @ SCS-2 tmp ] # cat/proc/meminfo
MemTotal: 3266180 kB
MemFree: 17456 kB
Buffers: 111328 kB
Cached: 2664024 kB
SwapCached: 0 kB
Active: 467236 kB
Inactive: 2644928 kB
HighTotal: 0 kB
HighFree: 0 kB
低总容量: 3266180 kb
LowFree: 17456 kB
SwapTotal: 2048276 kB
SwapFree: 1968116 kB
Dirty: 8 kB
Writeback: 0 kB
Mapped: 345360 kB
Slab: 112344 kB
Committed_AS: 535292 kB
PageTables: 2340 kB
VmallocTotal: 536870911 kB
VmallocUsed: 272696 kB
VmallocChunk: 536598175 kB
HugePages_Total: 0
HugePages_Free: 0
Hugepagesize: 2048 kB
用free -m查看的结果:
[root@scs-2 tmp]# free -m
totalusedfreesharedbufferscached
Mem: 3189 3173 16 0 107 2605
-/ buffers/cache: 460 2729
Swap: 2000 78 1921
查看/proc/kcore文件的大小:
[ root @ SCS-2 tmp ] # ll-h/proc/kcore
----1路由路由4.1gjun1212336004/proc/kcore
注释:
占用内存的测量
linux为测量一个进程占用了多少内存提供了一种方便的方法。 /proc目录提供了所有的信息。 实际上,top等工具也从这里获取适当的信息。
/proc/meminfo机器的内存使用信息
/proc/pid/maps pid是进程号,表示当前进程使用的虚拟地址。
/proc/pid/statm进程消耗的内存
[ root @ localhost~] # cat/proc/self/statm
654 57 44 0 0 334 0
Linux查看存储器命令的输出解释
CPU和CPU0。 的每一行中的每个参数的含义在第一个行为示例中如下:
参数解释/proc//status
size(pages )任务的虚拟地址空间大小VmSize/4
resident(pages ) APP应用程序使用的物理内存大小VmRSS/4
shared(pages )共享页数3
TRS(pages )程序的可执行虚拟内存大小VmExe/4
LRS(pages )映像到任务虚拟内存空间中的库的大小VmLib/4
DRS(pages )程序数据段和用户状态堆栈的大小(VmData VmStk ) 4
页面04
查看机器可用内存
/proc/28248/free
totalusedfreesharedbufferscached
mem :1023788926400973880134668503688
-/buffers/cache 3360288044735744
Swap: 1959920 89608 1870312
通过free命令查看机器的可用内存,可以看到free的值很小。 这主要是因为linux的理念是可以不浪费内存,所以我们尽可能地使用cache和buffer数据以备下次使用。 但实际上,这些内存也可以立即使用。
所以空闲内存=free buffers cached=total-used