现在的位置: 首页 > 操作系统 > 正文

Linux性能监控常用命令——FREE

2015年01月05日 操作系统 ⁄ 共 1206字 暂无评论 ⁄ 阅读 1,122 次

free主要用来查看Linux系统内存状态情况,同样top和vmstat也可用来查看内存状态信息。

命令参数

-b 以Byte为单位显示内存使用情况。

-k 以KB为单位显示内存使用情况。

-m 以MB为单位显示内存使用情况。

-o 不显示缓冲区调节列。

-s<间隔秒数> 持续观察内存使用状况。

-t 显示内存总和列。

直接数字也可控制显示次数。

统计信息

统计信息如:

linux-free

Mem行数据说明:物理内存总量、物理内存已使用量(含缓冲和缓存)、物理内存空闲量、共享内存量、缓冲区内存占用量、缓存区内存占用量。

-/+ buffers/cache行数据说明:实际内存使用量(已使用内存减缓冲和缓存占用内存)、实际空闲内存量(空闲内存加buffers和cached)。

Swap行数据说明:交换内存(虚拟内存)总量、交换内存使用量、交换内存空闲量。

buffers和cached区别

buffer用于存入要写入disk(硬盘)的数据,而cache用于存放从disk上读出的数据。这两种机制有助于提升OS的IO性能,buffer让数据达到某个临界点才写入disk,减少了写入频次;cache将从disk中读取的数据缓存起来,这样当系统下次使用时就避免了从disk再次读出,减少了读取频次。之所有有实际内存量,是因为从应用程序角度看buffer和cache都属于可用内存。当应用程序需要时,两者都会很快的被回收。

为了提高磁盘存取效率,Linux做了一些精心的设计,除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换),还采取了两种主要Cache方式:Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache有效缩短了I/O系统调用(比如read,write,getdents)的时间。

磁盘的操作有逻辑级(文件系统)和物理级(磁盘块),这两种Cache就是分别缓存逻辑和物理级数据的。Page cache实际上是针对文件系统的,是文件的缓存,在文件层面上的数据会缓存到page cache。文件的逻辑层需要映射到实际的物理磁盘,这种映射关系由文件系统来完成。当page cache的数据需要刷新时,page cache中的数据交给buffer cache,因为Buffer Cache就是缓存磁盘块的。但是这种处理在2.6版本的内核之后就变的很简单了,没有真正意义上的cache操作。Buffer cache是针对磁盘块的缓存,也就是在没有文件系统的情况下,直接对磁盘进行操作的数据会缓存到buffer cache中。例如,文件系统的元数据都会缓存到buffer cache中。

简单说来,page cache用来缓存文件数据,buffer cache用来缓存磁盘数据。在有文件系统的情况下,对文件操作,那么数据会缓存到page cache,如果直接采用dd等工具对磁盘进行读写,那么数据会缓存到buffer cache。

» 声明:本站文章源于个人经验总结或书籍、互联网转载,内容仅用于个人学习,请勿转载,否则后果自负!

给我留言

留言无头像?