`
keepwork
  • 浏览: 326318 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Linux--内存监控free&top

 
阅读更多

 开发者博客www.developsearch.com

 

 

# free命令 : 监控内存使用情况

# free -b -s5 命令: 将会在终端窗口中连续不断地报告内存的使用情况,每5秒钟更新一次。

 

[root@linuxeye ~]# free 
           total       used       free        shared     buffers      cached 
Mem:       3894036    3473544     420492          0      72972        1332348 
-/+ buffers/cache:    2068224     1825812 
Swap:      4095992    906036      3189956 

 

 

每个选项的含义:

第一行:

total:物理内存的总大小

used:已经使用的物理内存大小

free:空闲的物理内存大小

shared:多个进程共享的内存大小

buffers/cached:磁盘缓存的大小

 

第二行Mem:代表物理内存使用情况

第三行(-/+ buffers/cached):代表磁盘缓存使用状态

第四行:Swap表示交换空间内存使用状态

 

free命令输出的内存状态,可以通过两个角度来查看:一个是从内核的角度来看,一个是从应用层的角度来看的。

从内核的角度来查看内存的状态

就是内核目前可以直接分配到,不需要额外的操作,即为上面free命令输出中第二行Mem项的值,可以看出,此系统物理内存有3894036K,空闲的内存只有420492K,也就是40M多一点,我们来做一个这样的计算:

3894036 – 3473544 = 420492

其实就是总的物理内存减去已经使用的物理内存得到的就是空闲的物理内存大小,注意这里的可用内存值420492并不包含处于buffers和cached状态的内存大小。

如果你认为这个系统空闲内存太小,那你就错了,实际上,内核完全控制着内存的使用情况,Linux会在需要内存的时候,或在系统运行逐步推进时,将buffers和cached状态的内存变为free状态的内存,以供系统使用。

从应用层的角度来看系统内存的使用状态

也就是Linux上运行的应用程序可以使用的内存大小,即free命令第三行 -/+ buffers/cached 的输出,可以看到,此系统已经使用的内存才2068224K,而空闲的内存达到1825812K,继续做这样一个计算:

420492+(72972+1332348)=1825812

通过这个等式可知,应用程序可用的物理内存值是Mem项的free值加上buffers和cached值之和,也就是说,这个free值是包括buffers和cached项大小的,对于应用程序来说,buffers/cached占有的内存是可用的,因为buffers/cached是为了提高文件读取的性能,当应用程序需要用到内存的时候,buffers/cached会很快地被回收,以供应用程序使用。

buffers与cached的异同

在Linux 操作系统中,当应用程序需要读取文件中的数据时,操作系统先分配一些内存,将数据从磁盘读入到这些内存中,然后再将数据分发给应用程序;当需要往文件中写数据时,操作系统先分配内存接收用户数据,然后再将数据从内存写到磁盘上。然而,如果有大量数据需要从磁盘读取到内存或者由内存写入磁盘时,系统的读写性能就变得非常低下,因为无论是从磁盘读数据,还是写数据到磁盘,都是一个很消耗时间和资源的过程,在这种情况下,Linux引入了buffers和cached机制。

buffers与cached都是内存操作,用来保存系统曾经打开过的文件以及文件属性信息,这样当操作系统需要读取某些文件时,会首先在buffers与cached内存区查找,如果找到,直接读出传送给应用程序,如果没有找到需要数据,才从磁盘读取,这就是操作系统的缓存机制,通过缓存,大大提高了操作系统的性能。但buffers与cached缓冲的内容却是不同的。

buffers是用来缓冲块设备做的,它只记录文件系统的元数据(metadata)以及 tracking in-flight pages,而cached是用来给文件做缓冲。更通俗一点说:buffers主要用来存放目录里面有什么内容,文件的属性以及权限等等。而cached直接用来记忆我们打开过的文件和程序。

为了验证我们的结论是否正确,可以通过vi打开一个非常大的文件,看看cached的变化,然后再次vi这个文件,感觉一下两次打开的速度有何异同,是不是第二次打开的速度明显快于第一次呢?

接着执行下面的命令:find /* -name  *.conf 

看看buffers的值是否变化,然后重复执行find命令,看看两次显示速度有何不同。

 

 

# top : 查看内存正在使用的情况

 

 

 

 

 

 

分享到:
评论

相关推荐

    嵌入式Linux内存管理之free命令

    作为一名linux系统管理员,监控内存的使用状态是非常重要的,监控内存最常使用的命令有free、top等,下面是某个系统free的输出

    虚拟机监控QEMU-VMI.zip

    不需要对虚拟机中内核代码进行修改.top: 获得某虚拟机CPU利用率free: 获得某虚拟机内存利用率虚拟机系统调用表保护功能ps: 列出某虚拟机中所有进程信息lsmod: 列出某虚拟机中所有模块(驱动)信息translate: 将某...

    Linux性能监控工具

    Linux性能监控工具 top:显示所有进程情况, vmstat:显示系统活动,硬件和系统信息, uptime,w:显示系统的平均负载, ps,pstree:显示进程, free(如果不带任何参数输入,默认是以KB为单位输出):内存使用情况, ...

    Linux常用命令.txt

    - free:显示内存使用情况。 - uptime:显示系统运行时间、用户数和负载。 3. 网络操作: - ifconfig:配置网络接口参数。 - ping:测试网络连通性。 - netstat:显示网络连接、路由表等信息。 - ssh:远程...

    linux监控工具汇总

    linux监控工具汇总,包括top、vmstat、sar、uptime、ps、free、iostat、mpstat、numastat、pmap netstat、iptraf等监控工具的纤细说明和瓶颈分析。

    Linux系统日常维护标准.docx

    1.5. free查看内存使用状况 10 1.6. ps 查看系统进程 10 1.7. netstat 查看网络状况 12 1.8. 抓包工具tcpdump 13 1.9 查看磁盘空间大小 13 二、【linux网络相关】 14 2.1. ifconfig 查看网卡IP 14 2.2. 给一个网卡...

    Linux从零入门实战-2019年七月Z线.txt

    知识点1: Linux系统监控 相关命令:iostat/free/top/dstat/iotop 知识点2: Linux自化运维 实战项目: 使用Docker自动部署zabbix运维系统,实时监控服务器性能 第四阶段 Linux系统构建 第九讲 Linux系统构建 知识...

    入门学习Linux常用必会60个命令实例详解doc/txt

    ◆ 系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab; ◆ 网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup; ◆ 系统...

    计算机病毒与防护:Linux性能监控.pptx

    top介绍;top介绍;top介绍;top介绍;top介绍;free介绍;free介绍;free介绍;sar介绍;sar -d t n -d 报告每一个块设备的使用情况 t 采样间隔,必须 n 采样次数,可选 参数解释 tps 每秒传输的数据量 rd_sec/s 每秒从设备...

    Linux操作系统实验三.doc

    (3)free命令:显示系统内存的使用情况,包括内存总量、已经使用内存数量,空闲内存数量等信息。 (4) top命令:实时监控系统进程。 (5)sleep 命令:用于使进程延迟一段时间再执行。 其格式为: sleep time; command (6...

    57个Linux常用命令含参数介绍和使用示例

    系统监控:Linux中的命令可以用来监控系统的状态,如top、htop、free等,这些命令可以帮助用户了解系统的运行状态,及时发现和解决问题。 程序调试:Linux中的命令可以用来调试程序,如gdb、strace等,这些命令可以...

    Linux系统中3个性能监控和优化命令讲解.doc

    为大家整理出了三个有关性能监控和优化命令详细讲解,涉及top命令、free命令和vmstat命令,真的是很详细的讲解,希望能帮到大家。

    Linux基本命令的使用

    • ls -l 列出文件详细信息 l(list) • ls -a 列出当前目录下所有文件及目录,包括隐藏的 a(all) • mkdir 创建目录 • rmdir 命令删除目录 ...• top命令实时监控进程状态 • bg、jobs、fg命令控制进程显示

    Python 做简单的系统监控

    在linux下有许许多系统命令可以让我们时刻监控系统运行的状态,如ps,top,free等等,要获取这些系统信息,Python可以通过subprocess模块调用并获取结果。但这样做显得很麻烦,尤其是要写很多解析代码。而且对例如...

    Linux 常用系统状态查看命令图

    linux 常用查看系统信息分析工具。 如如: iostat iotop perf dstat strace netstat free top tcpdump 等等!

    Linux命令笔记

    3:free查看内存使用状态 语法: free [选项] 4:查看CPU信息 /proc/cpuinfo 5:uptime启动时间和平均负载 语法: uptime 6:uname查看系统与内核相关信息 语法: uname [选项] 7:判断当前系统的位数(32位或64位..) ...

    集群好书《高性能Linux服务器构建实战》 试读章节下载

    由国内著名技术社区联合推荐的2012年IT技术力作:《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》,即将上架发行,此书从Web应用、数据备份与恢复、网络存储应用、运维监控与性能优化、集群高级应用等...

    LINUX 24学时教程

    本书详细讲解了用Linux的图形配置工具配置Caldera OpenLinux,通过一个ppp与网络连接、使用K桌面环境、用StarOffice提高在家办公的效率、网络浏览、发传真、接收email及使用GIMP等图形工具。 24学时每次1小时的课程...

    redhat linux教材20课程学习文档

    第一部分 Linux简介和原理介绍 第一章 概述 1.1 Linux 的历史及背景 1.1.1 什么是 Linux? 1.1.2 Linux 该怎么念? 1.1.3 Linux 的历史 1.1.4 Linux的优点 1.2 Linux与开源软件 1.3 Linux 与 Windows 的比较 1.3.1 ...

    Linux系统性能优化命令与工具大全

    linux系统下性能监控及优化工具集,有vmstat、sar、iostat、uptime、free、watch、top、gtop、dmesg、pmap和strace等等,如果上面这些命令你都没有听过,那还等什么呢,赶紧学吧。

Global site tag (gtag.js) - Google Analytics