Linux系统监控内存管理命令大全
作为一名linux系统管理员,监控内存的使用状态是非常重要的,通过监控有助于了解内存的使用状态,比如内存占用是否正常,内存是否紧缺等等,那么linux监控内存的命令是什么呢?下面跟yjbys小编一起来看看吧!
监控内存最常使用的命令有free、top等,下面是某个系统free的输出:
[]#free
total used free shared buffers cached
Mem: 16402432 16360492 41940 0 46540412714880
-/+ buffers/cache: 3180208 13222224
Swap: 8193108 264 8192844
第一行:
ltotal:物理内存的总大小。
lused:已经使用的物理内存多小。
lfree:空闲的物理内存值。
lshared:多个进程共享的内存值。
lbuffers/cached:磁盘缓存的大小。
第二行:代表物理内存使用情况。
第三行(-/+ buffers/cached):代表磁盘缓存使用状态。
第四行:Swap表示交换空间内存使用状态。
free命令输出的内存状态,可以通过两个角度来查看:一个是从内核的角度来看,一个是从应用层的角度来看的。
1.从内核的角度来查看内存的状态
内核目前可以直接分配到,不需要额外的操作,即为上面free命令输出中第二行Mem项的值,可以看出,此系统物理内存有16G,空闲的内存只有41940K,也就是40M多一点,我们来做一个这样的计算:
16402432-16360492=41940
就是总的物理内存减去已经使用的物理内存得到的就是空闲的.物理内存大小。
注意:
这里的可用内存值41940并不包含处于buffers和cached状态的内存大小。
注意:
实际上,内核完全控制着内存的使用情况,linux会在需要内存的时候,或在系统运行逐步推进时,将buffers和cached状态的内存变为free状态的内存,以供系统使用。
2.从应用层的角度来看系统内存的使用状态
也就是linux上运行的应用程序可以使用的内存大小,即free命令第三行“(-/+ buffers/cached)”的输出,可以看到,此系统已经使用的内存才3180208K,而空闲的内存达到13222224K,继续做这样一个计算:
41940(Men:free)+(465404(Men:buffers)+12714880(Men:cached))=13222224(-/+buffers/cached:free)
通过这个等式可知,应用程序可用的物理内存值是Mem项的free值加上buffers和cached值之和,也就是说,这个free值是包括buffers和cached项大小的。
对于应用程序来说,buffers/cached占有的内存是可用的,因为buffers/cached是为了提高文件读取的性能,当应用程序需要用到内存的时候buffers/cached会很快地被回收,以供应用程序使用。
ers与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 *
看看buffers的值是否变化,然后重复执行find命令,看看两次显示速度有何不同。
Linux 操作系统的内存运行原理,很大程度上是根据服务器的需求来设计的,例如系统的缓冲机制会把经常使用到的文件和数据缓存在cached中,linux总是在力求缓存更多的数据和信息,这样再次需要这些数据时可以直接从内存中取,而不需要有一个漫长的磁盘操作,这种设计思路提高了系统的整体性能。
-
Linux认证基础考试大纲
一、考试要求了解Linux的背景和特点;掌握Linux发行版本和内核编号;掌握Linux系统的安装方法;掌握Linux系统的文件类型及目录结构;熟悉磁盘分区的基本知识及其与系统安装的关系;了解Linux平台上的编辑器知识,掌握pico和vi编辑器的使用方法;掌握Linux常用命令的使...
-
ARM相关概念解释
ARM处理器是Acorn计算机有限公司面向低预算市场设计的第一款RISC微处理器。更早称作AcornRISCMachine。ARM处理器本身是32位设计,但也配备16位指令集,一般来讲比等价32位代码节省达35%,却能保留32位系统的所有优势。yjbys小编下面为你整理了ARM相关的概念,希望对你...
-
Linux考试复习题
一、选择题(每小题2分,共50分)1.在vi编辑器里,命令"dd"用来删除当前的()A.行B.变量C.字D.字符2.当运行在多用户模式下时,用Ctrl+ALT+F*可以切换多少虚拟用户终端()A.3B.6C.1D.123.Linux启动的第一个进程init启动的第一个脚本程序是()。A./etc/rc.d/init.dB./etc/r...
-
关于Linux C程序存储空间的逻辑布局
LinuxC程序存储空间的逻辑布局是怎么样的?为了方便大家,下面YJBYS小编为大家整理了关于LinuxC程序存储空间的逻辑布局的文章,希望对你有所帮助。一、APUE上指出了LinuxC程序存储空间的逻辑布局,对于X86上的`Linux正文段从0x08048000单元开始栈底则在0xC0000000之...