`
keepwork
  • 浏览: 332419 次
  • 性别: 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-memory-manage.rar_Linux 内存管理_linux_memory_内存管理 linux_内存管理

    9. 内存管理工具:`free`命令显示当前系统的内存使用情况,`top`和`htop`可以实时监控进程内存占用,`smem`报告详细的内存使用报告,包括物理和交换内存。 10. 调优策略:Linux内存管理可以通过调整内核参数来优化...

    linux-monitor.rar

    3. 在远程服务器上执行系统监控命令(如`top`、`df`、`free`等),收集数据。 4. 数据会被处理并存储,如果超过预设的阈值,触发警报机制。 5. `mail`模块利用smtplib库通过SMTP服务器发送警报邮件给指定的接收人。 ...

    UnixLinux-系统自动化管理-内存管理篇.doc

    Linux系统的内存管理虽然与AIX有所不同,但也提供了一系列工具,如`free`、`top`和`htop`等,用于查看内存状态。在Linux中,`sysctl`命令可以用来动态调整内存相关参数,如`vm.min_free_kbytes`对应于AIX的minfree。...

    Linux Top命令参详解

    `top` 命令是 Linux 系统中最常用的系统监控工具之一,它能够实时地显示系统中各个进程的资源占用状况,包括 CPU 使用率、内存使用情况等。在实际应用中,无论是对于系统管理员还是普通用户来说,掌握 `top` 命令的...

    Linux命令大全搜索工具linux-command-master.zip

    Linux命令涵盖范围广泛,包括文件和目录管理(如`cd`、`mkdir`、`rm`、`cp`、`mv`)、文本处理(如`grep`、`sed`、`awk`)、进程管理(如`ps`、`kill`、`top`)、网络通信(如`ping`、`curl`、`nc`)以及系统监控...

    Linux 获取CPU和内存的大小

    在Linux操作系统中,监控CPU和内存的使用情况是系统管理员日常任务的重要部分,这有助于优化系统性能、排查问题以及合理分配资源。以下是一些获取CPU和内存大小以及使用率的方法。 **一、CPU信息** 1. **查看CPU...

    linux-Linux性能优化实战案例

    1. **性能监控工具**:Linux提供多种命令行工具,如`top`, `htop`, `vmstat`, `iostat`, `mpstat`, 和 `free`,用于实时监控CPU、内存、磁盘I/O和进程状态,帮助识别性能瓶颈。 2. **系统调用分析**:通过`strace`...

    Linux查看CPU和内存使用情况

    本文将详细介绍如何在Linux环境下使用`top`命令查看CPU使用率,以及如何利用`free`命令监控内存状态。 #### 使用`top`命令查看CPU使用情况 `top`命令是一个实时的系统监视工具,它能够提供关于系统任务执行情况的...

    BIG-IP系统Linux主机部分内存问题故障排除方法

    通过`free`、`top`和`slabtop`等命令,可以有效地监控和定位内存使用中的问题。此外,及时关注官方文档和社区支持,也是解决这类问题的重要途径。通过对这些工具和技术的熟练掌握,可以显著提高BIG-IP系统的稳定性和...

    Linux性能优化-内存篇_WEL.pdf

    Linux性能优化-内存篇 在Linux系统中,性能优化是系统管理员和开发者最关心的问题之一。Linux性能优化可以从多个方面入手,包括CPU、内存、磁盘I/O、网络等方面。在这篇文章中,我们将主要讨论Linux性能优化的内存...

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

    Linux系统管理员可以使用free命令结合top等其他工具,来实时监控和分析内存的使用情况。通过理解free命令的输出以及内存管理的机制,管理员可以更有效地优化系统性能,并合理分配系统资源。在实际操作中,管理员可能...

    监控cpu内存.txt

    根据提供的文件信息,本文将详细解释与Linux系统中CPU及内存监控相关的知识点,包括脚本的基本结构、各命令的功能及用途、以及如何有效地监控Linux服务器的CPU和内存使用情况。 ### 一、脚本基本结构解析 #### 1.1...

    Linux系统命令top,ps,kill,free,vmstat等命令的源码

    在Linux操作系统中,掌握一些基础的系统管理命令是至关重要的,比如`top`, `ps`, `kill`, `free`和`vmstat`等。这些命令提供了监控系统性能、查看进程状态、管理进程以及分析内存和虚拟内存使用情况的能力。本源码包...

    GNU-Linux-Tools-Summary[1].rar

    9. **系统监控**:`iotop`监控I/O活动,`vmstat`显示虚拟内存统计,`iostat`监控磁盘活动,`free`查看内存使用情况。 10. **文本处理工具**:`sed`和`awk`是强大的流编辑器和文本解析工具,常用于数据处理和日志...

    嵌入式Linux内存与性能详解-史子旺

    书中可能还会介绍如何使用工具如`free`、`top`、`vmstat`、`sar`等监控内存使用情况,以及`strace`和`gdb`等工具调试内存问题。 在嵌入式环境中的性能优化,作者可能会讨论如何针对特定硬件优化内存配置,如内存...

    linux下top命令的使用.docx

    `top` 命令是 Linux 系统中非常重要的实时监控工具之一,主要用于查看和监控系统资源使用情况,特别是 CPU 和内存的使用情况。虽然大多数程序员都熟悉 `top` 命令的基本使用,但在深入理解和高效利用该命令方面仍...

    AIX和linux系统内存监控分析.pdf

    在Linux中,可以使用top、free、vmstat等命令监控内存使用情况,proc文件系统(/proc/meminfo)提供了详细的内存统计信息。 内存调整和监控是系统管理员日常维护的重要环节。通过理解内存管理的基本原理和使用适当...

    linux-common-tools.rar_Common tools_easel_linux common tools_lin

    8. **系统诊断**:`dmesg`显示内核消息,`syslog`记录系统事件,`free`显示内存使用情况,`iostat`监控I/O性能。 9. **文件权限和所有权**:`chmod`改变文件和目录的权限,`chown`和`chgrp`改变所有者和组。 10. *...

    linux下top使用方法

    `top` 命令是Linux系统中一个非常强大的实时监控工具,它可以帮助用户了解系统的整体运行状态,包括CPU使用率、内存使用情况以及各个进程的状态等。通过`top`命令,管理员可以快速地获取到当前系统的关键性能指标,...

Global site tag (gtag.js) - Google Analytics