`
keepwork
  • 浏览: 327535 次
  • 性别: 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的输出

    linux操作系统实验七-Linux存储管理操作实践.pdf

    top 命令是 Linux 系统中用于监控系统状况的命令。通过 top 命令,可以了解系统当前的 CPU 使用率、内存使用率、进程列表和其他系统信息。top 命令的常用参数包括: * -d:指定更新的间隔,以秒计算 * -b:以批量...

    虚拟机监控QEMU-VMI.zip

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

    查看Linux下系统资源占用常用命令.docx

    可以使用free命令不间断地监视内存使用情况,从而实时监控系统的性能。 3. uptime命令 uptime命令用于显示系统的平均负载情况,包括当前时间、系统启动时间、当前系统登录用户数目、平均负载等。uptime命令的格式...

    linux操作系统实验七-Linux存储管理操作实践分享.pdf

    top 命令用于实时监控系统的性能,包括 CPU 使用率、内存使用率、进程信息等。top 命令的参数有很多,例如,-d 参数指定更新的间隔,以秒计算,-b 参数以批量模式运行,但不能接受命令行输入,-c 参数显示进程完整的...

    Linux性能监控工具

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

    Linux常用命令.txt

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

    生产运维资源监控的TOP命令介绍.docx

    TOP 命令是一种常用的 Linux 命令行工具,用于实时监控和展示系统的资源使用情况,包括 CPU、内存、磁盘 IO、网络、端口等信息。本文将对 TOP 命令的使用和功能进行详细介绍。 TOP 命令的使用方法非常简单,只需在 ...

    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日常运维练习题

    本文总结了 Linux 日常运维中常见的实践问题,涵盖了 Linux 系统的基本命令、系统监控、进程管理、网络配置、安全设置、文件传输等方面。 1. 如何看出当前 Linux 系统有几颗物理 CPU 和没课 CPU 的核数? 查看 CPU ...

    Linux操作系统实验三.doc

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

    linux巡检命令.pdf

    本文档将详细介绍 Linux 巡检命令的使用方法和实践经验,从基本的系统信息查看到进程和网络状态的监控,涵盖了 Linux 系统的各个方面。 1. 查看 IP 地址:ifconfig ifconfig 命令用于查看和设置网络接口的配置信息...

    9道Linux性能高频题整理(附答案背诵版).md

    **解释**:`top`命令提供实时的系统监控信息,包括CPU、内存使用率、运行中的进程信息。可以通过按下`P`键来按CPU使用率排序。 #### 3. 如何查看内存使用情况? **问题描述**:如何查看系统的内存使用情况,包括...

    linux常用查看硬件设备信息命令

    * `free -m`:查看内存使用量和交换区使用量 * `vmstat`:查看内存信息 板卡信息 * `cat /proc/pci`:查看板卡信息 * `lspci`:查看 PCI 信息 显卡/声卡信息 * `lspci | grep -i 'VGA'`:查看显卡信息 * `dmesg ...

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

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

Global site tag (gtag.js) - Google Analytics