热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

[20160902]简单探究linux的free命令.txt

[20160902]linux命令free的buffers与cached表示什么.txt--简单探究linux的free命令。$freetotalusedfreesharedbuf

[20160902]linux命令free的buffers与cached表示什么.txt

--简单探究linux的free命令。
$ free
             total       used       free     shared    buffers     cached
Mem:     132261196   29620656  102640540          0     174340   24209712
-/+ buffers/cache:    5236604  127024592
Swap:     31455264      10592   31444672

-/+ buffers/cache的used: used - buffers - cached
                         29620656- 174340-24209712=5236604
-/+ buffers/cache的free: free + buffers + cached       
                         102640540+ 174340+24209712=127024592

--而buffers和cached表示什么呢?
下面是关于buffers和cached的英文资料:

Buffers are associated with a specific block device, and cover caching of filesystem metadata as well as tracking
in-flight pages. The cache only contains parked file data. That is, the buffers remember what's in directories, what
file permissions are, and keep track of what memory is being written from or read to for a particular block device. The
cache only contains the contents of the files themselves.

-- buffers 缓存,主要用于块设备缓存,例如用户目录、inode值等(ls大目录可以看到这个值增加)
-- cached  缓存,主要用于缓存文件。

--所以讲free memory很少,不用担心,用来缓存文件了,另外可以如下命令来释放相关内存。

--To free pagecache:
# echo 2 >| /proc/sys/vm/drop_caches

$ free
             total       used       free     shared    buffers     cached
Mem:     132261196    7420620  124840576          0     174368    2662916
-/+ buffers/cache:    4583336  127677860
Swap:     31455264      10592   31444672

--//你可以对比上面buffers几乎不变。而cached减少了不少。

--To free dentries and inodes:
# echo 1 >| /proc/sys/vm/drop_caches
# free
             total       used       free     shared    buffers     cached
Mem:     132261196    6709548  125551648          0       1008    2228344
-/+ buffers/cache:    4480196  127781000
Swap:     31455264      10592   31444672

--//对比上面buffers减少很多,cached几乎不变,再次验证文档的内容。如果执行
--# To free pagecache, dentries and inodes:
--# echo 3 >| /proc/sys/vm/drop_caches
--这个测试大家可以自己测试。

--可以在反向验证这个判断。
# cd /
# ls -lR > /dev/null

--然后打开另外的窗口观察:
# free
             total       used       free     shared    buffers     cached
Mem:     132261196    6798588  125462608          0      15512    2232348
-/+ buffers/cache:    4550728  127710468
Swap:     31455264      10592   31444672
# sleep 5
# free
             total       used       free     shared    buffers     cached
Mem:     132261196    6969776  125291420          0      66568    2232716
-/+ buffers/cache:    4670492  127590704
Swap:     31455264      10592   31444672

# sleep 5
# free
             total       used       free     shared    buffers     cached
Mem:     132261196    7347624  124913572          0     117412    2458840
-/+ buffers/cache:    4771372  127489824
Swap:     31455264      10592   31444672

--增加主要的是buffers,也就是缓存用户目录、inode值等。希望通过这个简单的测试理解linux命令free的内容。



推荐阅读
  • 本文详细介绍了在 CentOS 系统中如何创建和管理 SWAP 分区,包括临时创建交换文件、永久性增加交换空间的方法,以及如何手动释放内存缓存。 ... [详细]
  • 函子(Functor)是函数式编程中的一个重要概念,它不仅是一个特殊的容器,还提供了一种优雅的方式来处理值和函数。本文将详细介绍函子的基本概念及其在函数式编程中的应用,包括如何通过函子控制副作用、处理异常以及进行异步操作。 ... [详细]
  • 本文详细介绍了如何正确设置Shadowsocks公共代理,包括调整超时设置、检查系统限制、防止滥用及遵守DMCA法规等关键步骤。 ... [详细]
  • oracle 对硬件环境要求,Oracle 10G数据库软硬件环境的要求 ... [详细]
  • top 命令是一个强大的工具,可以实时动态地监控系统的整体运行状况。它整合了多种信息,提供了一个全面的系统性能和运行信息视图。通过 top 命令的交互界面,用户可以使用热键进行各种管理操作。 ... [详细]
  • 本文概述了在GNU/Linux系统中,动态库在链接和运行阶段的搜索路径及其指定方法,包括通过编译时参数、环境变量及系统配置文件等方式来控制动态库的查找路径。 ... [详细]
  • 本文深入探讨了Linux内核中进程地址空间的设计与实现,包括虚拟地址空间的概念、内存描述符`mm_struct`的作用、内核线程与用户进程的区别、进程地址空间的分配方法、虚拟内存区域(VMA)的结构以及地址空间与页表之间的映射机制。 ... [详细]
  • 在测试软件或进行系统维护时,有时会遇到电脑蓝屏的情况,即便使用了沙盒环境也无法完全避免。本文将详细介绍常见的蓝屏错误代码及其解决方案,帮助用户快速定位并解决问题。 ... [详细]
  • 在使用 Nginx 作为服务器时,发现 Chrome 能正确从缓存中读取 CSS 和 JS 文件,而 Firefox 却无法有效利用缓存,导致加载速度显著变慢。 ... [详细]
  • 本文详细介绍了在Windows系统中如何配置Nginx以实现高效的缓存加速功能,包括关键的配置文件设置和示例代码。 ... [详细]
  • 入门指南:使用FastRPC技术连接Qualcomm Hexagon DSP
    本文旨在为初学者提供关于如何使用FastRPC技术连接Qualcomm Hexagon DSP的基础知识。FastRPC技术允许开发者在本地客户端实现远程调用,从而简化Hexagon DSP的开发和调试过程。 ... [详细]
  • 本文探讨了如何通过Service Locator模式来简化和优化在B/S架构中的服务命名访问,特别是对于需要频繁访问的服务,如JNDI和XMLNS。该模式通过缓存机制减少了重复查找的成本,并提供了对多种服务的统一访问接口。 ... [详细]
  • 本文详细介绍了在Linux操作系统上安装和部署MySQL数据库的过程,包括必要的环境准备、安装步骤、配置优化及安全设置等内容。 ... [详细]
  • 本文将深入探讨 Unreal Engine 4 (UE4) 中的距离场技术,包括其原理、实现细节以及在渲染中的应用。距离场技术在现代游戏引擎中用于提高光照和阴影的效果,尤其是在处理复杂几何形状时。文章将结合具体代码示例,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 实现系统调用
    实现系统调用一、实验环境​本次操作还是基于上次编译Linux0.11内核的实验环境进行操作。环境如下:二、实验目标​通过对上述实验原理的认识,相信 ... [详细]
author-avatar
乌龟北京飘
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有