Linux查看哪些进程占用的系统 buffer/cache 较高 (hcache,lsof)命令

news2024/10/6 2:30:33

1、什么是buffer/cache ?

    buffer/cache 其实是作为服务器系统的文件数据缓存使用的,尤其是针对进程对文件存在 read/write 操作的时候,所以当你的服务进程在对文件进行读写的时候,Linux内核为了提高服务的读写速度,则将会把文件放在此处的 buffer/cache 中进行缓存使用,由于 Linux服务的特点便是任何事物都会以文件的形式进行存在,所以你会发现不管你是否对文件做了大规模的读写,机器的 buffer/cache 是一直都存在的,并且持续的增高不下,这是因为服务器所产生的网络连接也好,用户协议的(UDP)套接字也好,这部分的数据系统都会为应用程序创建对应的文件描述符,而这些文件描述符的使用,则又都会重新进入 buffer/cache 中做读写使用,所以这也是你的机器始终都会存在较高 buffer/cache 的原因,(因为所有的文件读写都会用到 buffer/cache,在内存合理的情况下)

2、buffer/cache 需要注意的一些特点

    在服务内存够用的情况下,Linux内核为了加快对文件的读写效率会将文件放入之buffer/cache 中 以保证读写效率,但其实,尽管当你的应用程序对文件的读写运行结束后,buffer/cache 也不会自动释放该部分内存,而是作为缓冲进行保留,等到你的服务进程在下一次进行相同文件的读写时就可以直接使用,省去了各种重新进行内存初始化的操作;所以这将会导致,当你的应用进程频繁对不同的文件进行读写时,你会发现服务所可以直接使用的free内存将会越来越少的一个重要原因;难道 buffer/cache 在这样无休止的缓存当中就不会自动释放?当然不是,当服务器在内存压力较大的情况下时,则将会自动进行内存的回收,作为free空间分给其它进程使用,这其中主要回收的一个内存则是 buffer/cache 的缓冲区内存块;

3、如何进行手动 buffer/cache 回收?

    除了在系统进程内存使用较大压力的情况下进行内存的回收外,我们也可以进行手动的buffer/cache回收,但由于buffer/cache主要是用于文件的读写使用,所以进行文件回收时,一般常伴随系统的IO彪高,因为系统内核也对比cache中的数据与硬盘中的数据是否一致,如果不一致需要写会,然后才能进行内存的回收

将内存中数据强制先刷新到磁盘中
sync;

清理Buffer缓存区域
echo 3 > /proc/sys/vm/drop_caches 表示清除pagecache和slab分配器中的缓存对象
echo 1 > /proc/sys/vm/drop_caches:表示清除pagecache。
echo 2 > /proc/sys/vm/drop_caches:表示清除回收slab分配器中的对象(包括目录项缓存和inode缓存)。slab分配器是内核中管理内存的一种机制,其中很多缓存数据实现都是用的pagecache。

1、hcache的下载地址

      hcache的github地址:https://github.com/silenceshell/hcache

2、 hcache的使用方式

    当前下载完对应的hcache后,则直接是一个对应的 bin文件,此时直接将对应的bin文件进行 chmod 授权后即可使用

将该bin文件设置为可执行文件

chmod 755 hcache

将该hcache移动到usr的bin目录中,使其可以被全局调用该命令

mv  hcache  /usr/local/bin/

3、hcache常用命令

全局显示10个最大的被缓存文件

hcache --top 10

查看指定进程ID所使用的buffer/cache 的使用情况

hcache -pid 3090

通过上述所获取到的被缓存最大的文件名称后,可以直接通过 lsof   file_name 得到当前所开启该文件的所有进程信息;

显示使用/dev/shm/PostgreSQL.1268002820的进程信息

lsof /dev/shm/PostgreSQL.1268002820

获取当前进程号所打开的所有文件信息

lsof -p 3090

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1040284.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

​旅行季《乡村振兴战略下传统村落文化旅游设计》许少辉八一新著想象和世界一样宽广

​旅行季《乡村振兴战略下传统村落文化旅游设计》许少辉八一新著想象和世界一样宽广

微信如何一次自动回复多条信息?

微信已经成为了我们在工作中不可或缺的通讯工具,但是由于微信平台并没有开放自动回复和快捷回复等方便的功能,一旦咨询大量增加,就会出现回复不及时的情况。这会对客户的满意度造成影响,降低客户转化率,甚至导致客户流…

STL库——string类的常见使用

一、基本介绍 1.string类是STL库里面比较常见的一个数据结构,string是表示字符串的字符串类 ,该类的接口与常规容器的接口基本相同,再添加了一些专门用来操作string的常规操作。 2.string在底层实际是:basic_string模板类的别名…

全自动情感故事对话视频生成神器

搞笑聊天视频是近年来备受欢迎的一种娱乐形式,它能够快速、简单地制作出形象生动、幽默搞笑的对话视频,给人带来欢乐与笑声。而今天,我要向大家介绍的是一款功能强大、操作简单的搞笑聊天视频生成器。 这款聊天视频生成器具备多项令人惊叹的…

Linux内核之内存管理分段机制原理与实现(从无到有的过程)

1. 分段机制概述 对于分段机制,要从Intel的微处理器的8086开始说起,刚开始内存空间比较小,内存寻址采用的是直接访问物理地址的方式。由于技术的发展,计算机做的事情越来越多,程序也越来越大,为了更大的内…

重生奇迹MU游戏开店技巧

重生奇迹游戏开店攻略 在游戏之中有很多炫酷的玩法,而且还有存在很多奇怪的现象,很多玩家喜欢在游戏之中充当商人,然后在游戏之中开店卖一些东西,或者是倒卖一些物品。 从买卖物品之中赚取一定差价,的确这样可以为玩…

Jetsonnano B01 笔记8:屏幕分辨率的调整

最近我的jetson 被学弟借用学习了一阵子,他在一顿捯饬后,成功将我的屏幕分辨率改成了一个阴间的水平,十分影响操作学习。 终端命令更改分辨率: 我们可以打开终端,输入以下命令来更改分辨率,但这样做有一个…

6个基于DSPM组件的使用案例

在这个信息技术时代,企业必须应对日益增长的生成和保护大量数据的需求。这就是为什么制定广泛而有效的策略来处理和保护这些数据比以往任何时候都更加重要的原因。数据安全状况管理 (DSPM) 是一种解决方案,可帮助现代组织实施全面…

Unity 2021.x及以下全版本Crack

前言 最近Unity那档子事不出来了吗,搞得所有人都挺烦的,顺便在公司内网需要我完成一个游戏的项目,就研究了一下如何将Unity给Crack掉。 注意所有操作应有连接外网的权限 以我选择的版本为例,我使用的是Unity 2021.3.5f1与Unity…

【HarmonyOS】解决API6 WebView跳转外部浏览器问题、本地模拟器启动黑屏

【问题描述1】 HarmonyOS API6 Java开发中使用WebView组件,如果网页中有跳转链接,点击会跳转到手机系统浏览器。 【解决方案】 解决这个问题的方法就是给WebView这种自定义的WebAgent对象。具体代码如下: WebConfig webConfigthis.webView…

甲骨文创新中心与正初为职教集团达成人才培养合作,探索数实结合产教融合模式

2023年9月20日,甲骨文(南京)人工智能创新中心(以下简称“甲骨文创新中心”)与正初为职教集团在南京举行了战略合作签约仪式。甲骨文创新中心正式宣布和正初为职教集团达成职业教育数实结合产教融合合作协议&#xff0c…

数据集笔记:T-drive 北京出租车轨迹数据

数据地址:T-Drive trajectory data sample - Microsoft Research 1 数据描述 此数据集包含了2008年2月2日至2月8日在北京期间10,357辆出租车的GPS轨迹。此数据集中的总点数约为1500万,轨迹的总距离达到了900万公里。图1显示了两个连续点之间的时间间隔和…

java后端笔记

写在前面 节选自: 黑马程序员:新版Java面试专题视频教程:https://www.bilibili.com/video/BV1yT411H7YK?p1 javaguide:https://javaguide.cn/home.html 集合 ConcurrentHashMap JDK1.7:分段数组链表,用…

TCP 和 UDP哪个更好

传输控制协议 (TCP) 和用户数据报协议 (UDP) 是互联网的基础支柱,支持从网络源到目的地的不同类型的数据传输。TCP更可靠,而UDP优先考虑速度和效率。本文解释了两种协议的工作原理,并详细讨论了…

分享53个Python源码源代码总有一个是你想要的

分享53个Python源码源代码总有一个是你想要的 链接:https://pan.baidu.com/s/1ew3w2_DXlSBrK7Mybx3Ttg?pwd8888 提取码:8888 项目名称 100-Python ControlXiaomiDevices DRF-ADMIN 后台管理系统 FishC-Python3小甲鱼 Flask框架的api项目脚手架 …

LLM-TAP随笔——语言模型训练数据【深度学习】【PyTorch】【LLM】

文章目录 3、语言模型训练数据3.1、词元切分3.2、词元分析算法 3、语言模型训练数据 数据质量对模型影响非常大。 典型数据处理:质量过滤、冗余去除、隐私消除、词元切分等。 训练数据的构建时间、噪音或有害信息情况、数据重复率等因素都对模型性能有较大影响。训…

JavaScript系列从入门到精通系列第九篇:JavaScript中赋值运算符和关系运算符以及Unicode编码介绍

一:赋值运算符 1: 右侧的值可以赋值给左侧的变量。 var a 123; console.log(a);//123 2: var a 10; a a 5; a 5; 上边这两个写法是一样的。 3:- var a 10; a a-5; a - 5; 上边这两个写法是一样的。 4:* …

Cesium 展示——label 从十进制小数转度分秒

文章目录 需求分析 需求 Cesium 显示 坐标点label 从十进制小数转度分秒 分析 写一个转换方法 function decimalToDMS(decimal) {const degree Math.floor(decimal);const minute Math.floor((decimal - degree) * 60);const second ((decimal - degree) * 60 - minute) *…

ChunJun: 自定义插件

序言 Chunjun的版本兼容可能会有问题,在我们了解了自定义插件后,在修改源码以应对不同的场景就会得心应手了,针对Chunjun1.12.Release版本说明cuiyaonan2000163.com 自定义插件整体流程 从数据流的角度来看ChunJun,可以理解为不同数据源的数据流通过对应的ChunJu…

一文了解数据治理全知识体系!

在业界,大家都为如何做好数据治理而感到困惑。数据治理工作一定要先摸清楚数据的家底,规划好路线图,再进行决策。 本文从数据治理的误区、元数据管理、数据质量管理、数据资产管理等4个方面整理出数据治理的一套经验总结,给予数据…