linux 性能监控命令4——free

原文转自网络

在Windows系统中查看内存的使用情况很简单,想必大家都已经耳熟能详了,那么在Linux系统如何查看内存使用情况呢?下面和大家分享在Linux系统下查看内存使用情况的free命令:[root@scs-2 tmp]# free     

         total        used     free    shared    buffers     cached  
Mem:   3266180     3250004     16176     0       110652      2668236 
 -/+ buffers/cache: 471116   2795064  
Swap:  2048276       80160   1968116 

 

下面是对这些数值的解释:

total:总计物理内存的大小。

used:已使用多大。

free:可用有多少。

Shared:多个进程共享的内存总额。

Buffers/cached:磁盘缓存的大小。

第三行(-/+ buffers/cached):

used:已使用多大。

free:可用有多少。

第四行就不多解释了。

 

区别:第二行(mem)的used/free与第三行(-/+ buffers/cache)used/free的区别。 

这两个的区别在于使用的角度来看,第一行是从OS的角度来看,因为对于OS,buffers/cached都是属于被使用,所以他的可用内存是16176KB,已用内存是3250004KB,其中包括,内核(OS)使用+Application(X,
oracle,etc)使用的+buffers+cached.

第三行所指的是从应用程序角度来看,对于应用程序来说,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。

所以从应用程序的角度来说,可用内存=系统free memory+buffers+cached。

如上例:

2795064=16176+110652+2668236

 

 

接下来解释什么时候内存会被交换,以及按什么方交换。当可用内存少于额定值的时候,就会开会进行交换。

如何看额定值:

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  
LowTotal: 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  
     total used free shared buffers cached  
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  
-r——– 1 root root 4.1G Jun 12 12:04 /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 

输出解释

CPU 以及CPU0。。。的每行的每个参数意思(以第一行为例)为:

参数 解释 /proc//status

Size (pages) 任务虚拟地址空间的大小 VmSize/4

Resident(pages) 应用程序正在使用的物理内存的大小 VmRSS/4

Shared(pages) 共享页数 0

Trs(pages) 程序所拥有的可执行虚拟内存的大小 VmExe/4

Lrs(pages) 被映像到任务的虚拟内存空间的库的大小 VmLib/4

Drs(pages) 程序数据段和用户态的栈的大小 (VmData+ VmStk )4

dt(pages) 04

查看机器可用内存

/proc/28248/>free  
total used free shared buffers cached  
Mem: 1023788 926400 97388 0 134668 503688  
-/+ buffers/cache: 288044 735744  
Swap: 1959920 89608 1870312 

我们通过free命令查看机器空闲内存时,会发现free的值很小。这主要是因为,在Linux系统中有这么一种思想,内存不用白不用,因此它尽可能的cache和buffer一些数据,以方便下次使用。但实际上这些内存也是可以立刻拿来使用的。

所以 空闲内存=free+buffers+cached=total-used

 

时间: 2024-10-18 14:02:02

linux 性能监控命令4——free的相关文章

linux性能监控命令大全

一.分析工具 1.CPU性能分析工具: vmstat ps sar time strace pstree top 2.Memory性能分析工具: vmstat strace top ipcs ipcrm cat /proc/meminfo cat /proc/slabinfo cat /proc//maps 3.I/O性能分析工具: vmstat ipstat repquota quotacheck 4.Network性能分析工具: ifconfig ethereal tethereal ipt

linux 性能监控命令6——mpstat,vmstat,iostat

1.mpstat mpstat是MultiProcessor Statistics的缩写,是实时系统监控工具.其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中.在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息.下面只介绍mpstat与CPU相关的参数,mpstat的语法如下: mpstat [-P {|ALL}] [internal [count]] 参数的含义如下: 参数 解释 -P {|ALL} 表示监控哪个CPU, cpu在[0,

linux 性能监控命令7——sar 命令

sar(System Activity Reporter系统活动情况报告)是目前Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况.系统调用的使用情况.磁盘I/O.CPU效率.内存使用状况.进程活动及IPC有关的活动等.本文主要以CentOS 6.3 x64系统为例,介绍sar命令. sar命令常用格式 sar [options] [-A] [-o file] t [n] 其中: t为采样间隔,n为采样次数,默认值是1: -o file表示将命令

linux 性能监控命令5——w,who,whoami,whois

原文整理自网络: whois  功能说明:查找并显示用户信息.  语 法:whois [帐号名称]  补充说明:whois指令会去查找并显示指定帐号的用户相关信息,因为它是到Network Solutions的WHOIS数据库去查找,所以该帐号名称必须在上面注册方能寻获,且名称没有大小写的差别.  ---------------------------------------------------------  whoami  功能说明:先似乎用户名称.  语 法:whoami [--help

使用vmstat和iostat命令进行Linux性能监控

使用vmstat和iostat命令进行Linux性能监控 这是我们正在进行的Linux命令和性能监控系列的一部分.vmstat和iostat两个命令都适用于所有主要的类unix系统(Linux/unix/FreeBSD/Solaris). 如果vmstat和iostat命令在你的系统中不可用,请安装sysstat软件包.vmstat,sar和iostat命令都包含在sysstat(系统监控工具)软件包中.iostat命令生成CPU和所有设备的统计信息.你可以从这个连接中下载源代码包编译安装sys

Collectl: Linux 性能监控的全能冠军

Collectl: Linux 性能监控的全能冠军 对于一个 Linux 系统管理员来说确保自己管理的系统处于一个良好的状态是其首要责任.Linux 系统管理员可以找到有很多工具来帮助自己监控和显示系统中的进程,例如 top 和 htop ,但是这些工具都不能与 collectl 相媲美. Collectl: Linux Performance Monitoring collectl是一款非常优秀并且有着丰富的命令行功能的实用程序,你可以用它来采集描述当前系统状态的性能数据.不同于大多数其它的系

Linux性能监控

转自 http://hi.baidu.com/ccex/blog/item/f613f9d3d5e401d6a8ec9af8.html Linux性能监控   Linux性能监控之绪论篇性能调优的目的是找到系统的瓶颈,并且调节系统来设法消除这些瓶颈.我们在监控性能的时候重点在于监视一下子系统:1.CPU2.Memory3.IO4.Network 但这些系统都是彼此依赖,不能单独只看其中一个.当一个系统负载过重时往往会引起其它子系统的问题,比如说:->大量的读入内存的IO请求(page-in IO

三张图看遍Linux 性能监控、测试、优化工具

三张图看遍Linux 性能监控.测试.优化工具 Linux 平台上的性能工具有很多,眼花缭乱,长期的摸索和经验发现最好用的还是那些久经考验的.简单的小工具.系统性能专家 Brendan D. Gregg 在最近的 LinuxCon NA 2014 大会上更新了他那个有名的关于 Linux 性能方面的 talk (Linux Performance Tools) 和幻灯片. 和 Brendan 去年的 talk 比较,今年增加了测试和优化两部分.下面的三张图片分别总结了 Linux 各个子系统以及

常用的linux系统监控命令整理

  找到最耗CPU的java线程ps命令 命令:ps -mp pid -o THREAD,tid,time 或者 ps -Lfp pid 结果展示: 这个命令的作用,主要是可以获取到对应一个进程下的线程的一些信息. 比如你想分析一下一个java进程的一些运行瓶颈点,可以通过该命令找到所有当前Thread的占用CPU的时间,也就是这里的最后一列. 比如这里找到了一个TID : 30834 ,所占用的TIME时间最高. 通过 printf "%xn" 30834 首先转化成16进制, 继续