Linux中各文件占用的Cache统计

2023-05-16

        统计Linux中各个文件占用cache的情况,使用工具fincore。

        可以从GitHub上获取到源码:https://github.com/david415/linux-ftools.git

        下载后,./configure; make; make install。在 /usr/local/bin 目录下生成3个工具:fadvise  fallocate  fincore。最后一个就是查询文件cache所用到的工具。fincore的基本原理是根据文件名找到inode,再对比kernel中的page cache table,得到结果。

        工具有3个可选参数,并需要指定被查询的文件:

ubuntu:/usr/local/bin$ fincore 
fincore version 1.0.0
fincore [options] files...

  --pages=false      Don't print pages
  --summarize        When comparing multiple files, print a summary report
  --only-cached      Only print stats for files that are actually in cache.

        对某个文件查询可以使用如下命令:

ubuntu:~/test/dir1$ fincore --pages=false --summarize --only-cached f11 
filename size	total pages	cached pages	cached size	cached percentage
f11 12 1 1 4096 100.000000
---
total cached size: 4096

        fincore在查询cache的时候需要指定文件名,想要查一下系统中哪些文件占用的cache比较大,可以使用下面的脚本。

        基本思路是:find 递归查找,将结果作为fincore的输入,再根据占用的cache大小排序,作为最终输出。这个方法有一个缺点是如果文件间存在硬链接,那么这个文件会被统计多次。

# !/bin/bash

if [ -e ./log ]; then
  rm -f log;
fi
  
sum=0
  
  count_file_cache()
{
  for name in `find $1`; do
    res=`fincore --pages=false --summarize --only-cached $name 2>/dev/null | grep "total cached size" | awk '{print int($4)}'`;
    if [[ $res -ne 1 && $res -ne 0 ]]; then
      echo $res $name >> log;
      sum=`expr $sum + $res`
    fi
  done
}

count_file_cache $1

sum=`expr $sum / 1024 / 1024`
echo "sum =" $sum "MB" > log2
echo "-------------------------------" >> log2
cat log | sort -k1 -g -r >> log2
mv log2 log

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux中各文件占用的Cache统计 的相关文章

  • python 可以检测它运行在哪个操作系统下吗?

    python 可以检测操作系统 然后为文件系统构建 if else 语句吗 我需要将 Fn 字符串中的 C CobaltRCX 替换为 FileSys 字符串 import os path csv from time import strf
  • 如何获取 bash 中从 Ping 接收到的数据包的百分比?

    当 ping 主机时 我希望输出仅显示收到的数据包 已发送 5 个 的百分比 我想我需要使用grep不知怎的 但我不知道如何 我是 bash 编程的新手 这是我所在的地方 ping c 5 q host grep grep 中应该包含什么
  • 将 bash 脚本作为守护进程运行

    我有一个脚本 它每 X 次运行我的 PHP 脚本 bin bash while true do usr bin php f my script php echo Waiting sleep 3 done 我怎样才能将它作为守护进程启动 要从
  • OS X 对 /usr/local/lib 的权限被拒绝

    我正在寻找有关权限问题的任何建议 直觉 线索 答案 自从我切换到新的 Macbook Pro 以来 这个问题一直困扰着我 这就是困境 某些程序在安装期间复制 usr local lib 下的库 并且在运行这些程序时出现崩溃 我认为这与此文件
  • 如何更改 Kubernetes 中的文件系统观察程序限制 (fs.inotify.max_user_watches)

    我在用着pm2 https github com Unitech pm2查看保存我的应用程序服务器的 NodeJS 程序源代码的目录 该程序在 Kubernetes 集群中运行 但是 我收到此错误 ENOSPC System limit f
  • C/C++ with GCC:静态地将资源文件添加到可执行文件/库

    有人知道如何使用 GCC 将任何资源文件静态编译为可执行文件或共享库文件吗 例如 我想添加永远不会改变的图像文件 如果它们改变了 我无论如何都必须替换该文件 并且不希望它们位于文件系统中 如果这是可能的 我认为这是因为 Visual C f
  • bash.sh 运行 cron 的权限被拒绝

    如何在这里使用 bash 脚本运行 cron 我做了如下操作 这里有错误 我想知道如何在 ubuntu 中做到这一点 我现在对它感到震惊 bash sh 文件 bin bash cd var www Controller usr bin p
  • 在 shell 脚本中将脚本目录更改为用户的 homedir

    在我的 bash 脚本中 我需要将当前目录更改为用户的主目录 如果我想更改为用户的foo主目录 从命令行我可以执行以下操作 cd foo 效果很好 但是当我从script它告诉我 bar sh line 4 cd foo No such f
  • 无法使用 tar -cvpzf 解压完整目录

    把我的头敲在这上面 I used tar cvpzf file tar gz压缩一个完整的目录 我将文件移动到另一台服务器 并尝试解压缩复制存档的目录 无法使其发挥作用 bash 3 2 tar xvpzf news tar gz tar
  • Python 线程与 Linux 中的多处理

    基于此question https stackoverflow com questions 807506 threads vs processes in linux我假设创建新流程应该几乎和创造新线程在Linux中 然而 很少的测试显示出截
  • 终止 ssh 会话会终止正在运行的进程

    我正在使用 ssh 连接到我的 ubuntu 服务器 我使用命令启动编码程序 然而 似乎当我的 ssh 会话关闭时 因为我在进入睡眠状态的笔记本电脑上启动它 有没有办法避免这种情况 当然 阻止我的笔记本电脑休眠并不是永久的解决方案 运行你的
  • 使用 xargs 时如何获取退出代码(并行)

    我制作了一个用于启动并行 rsync 进程的脚本 bin bash LIST 1 DEST DIR 2 RSYNC OPTS 3 echo rsyncing From SRC DIR To DEST DIR RSYNC OPTS RSYNC
  • Git - 致命:无法获取当前工作目录?

    When I git clone从回购协议中 我得到 fatal Could not get current working directory No such file or directory 我该怎么办 我检查了服务器并发现 git文
  • 第一次如何配置postgresql?

    我刚刚安装了 postgresql 并在安装过程中指定了密码 x 当我尝试做的时候createdb并指定我收到消息的任何密码 createdb 无法连接到数据库 postgres 致命 用户密码身份验证失败 同样适用于createuser
  • 对符号“pthread_key_delete@@GLIBC_2.2.5”的未定义引用

    我正在尝试在 Ubuntu 中创建一个文件 当我创建时 我不断收到此错误 usr bin ld gtest 1 7 0 libgtest a gtest all cc o undefined reference to symbol pthr
  • AMD OpenCL 在 Linux 上工作所需的最小必要文件子集是什么?

    我已经使用 buildroot 构建了 Linux 内核 我已将开源 amdgpu 驱动程序和所需的固件合并到其中 驱动程序很好 检测 GPU 模式设置运行良好 调整 小文本 的分辨率 启动后会显示命令行 现在我需要运行 OpenCL 程序
  • 如何每周日运行 crontab 作业

    我想弄清楚如何每周周日运行 crontab 作业 我认为以下应该可行 但我不确定我是否理解正确 下面的说法正确吗 5 8 6 这是 crontab 格式的解释 1 Entry Minute when the process will be
  • 如何告诉 CMake 将构建文件放在哪里?

    我想告诉 CMake 将文件和文件夹输出到不同的文件夹而不是当前文件夹 我在下面讨论的是 CMake 生成的文件 文件 CMakeCache txt 目录 CMakeFiles 文件 生成文件 目录 bin 文件 cmake install
  • Docker容器内的动态监听端口

    我有一个应用程序 在使用其默认端口建立一些连接后 开始打开 侦听 新的随机端口来处理现有连接 然后删除它们 视频通话 它还在通信协议内交换其IP地址和端口 我能够解决IP地址问题 但仍然无法找到一种方法来动态告诉主机的IPTABLES在Do
  • python 的 fcntl.flock 函数是否提供文件访问的线程级锁定?

    Python 的 fcnt 模块提供了一种名为 flock 1 的方法来证明文件锁定 其描述如下 对文件执行锁定操作op 描述符 fd 文件对象提供 fileno 方法被接受为 出色地 请参阅 Unix 手册集群 2 了解详情 在某些系统上

随机推荐

  • 同等学力计算机科学与技术真题-2006年

    文章目录 数学基础一 形式化下列语句 xff08 共4分 xff09 二 填空题 共 9 分 三 解答题 xff08 共 11 分 xff09 四 证明题 xff08 共17分 xff09 计算机网络一 单项选择题 共 10 分 xff0c
  • Transformer:Attention Is All You Need

    文章目录 摘要 1 简介 2 背景 3 模型架构 3 1 编码器和解码器栈 3 2 注意力 3 2 1缩放点积注意力 3 2 2 多头注意力 Multi Head Attention 3 2 3 注意力在模型中的应用 3 3 逐位置前馈网络
  • 【已解决】cannot instantiate ‘PosixPath‘ on your system

    文章目录 问题描述问题原因解决方法总结 问题描述 在使用预训练模型的时候 xff0c 加载了官方提供的预训练模型出现以下问题 xff1a File span class token string 34 D ImageClassificati
  • 2007年计算机真题

    2007年计算机真题 数学基础部分 一 用逻辑符号表达下列语句 xff08 每小题 2 分 xff0c 共 4 分 xff09 1 xff0e 分别用两种量词形式写出 xff1a 在北京居住的人未必都是北京人 答 全域 所有人 P x ma
  • kali下载及安装

    文章目录 一 kali下载二 kali安装1 创建虚拟机2 启动虚拟机3 切换成中文 总结 一 kali下载 下载地址 xff1a https www kali org get kali kali platforms 这里我使用的是虚拟机V
  • 纯css实现3D立方体

    关注公众号 xff0c 每天都能领外卖红包 纯css实现3D立方体特效 xff0c 通过3D旋转和平移原理实现 xff0c 话不多说直接贴代码 span style color 000080 lt html gt span span sty
  • windows 下 Rust 使用OpenSSL

    windows 下 Rust 使用OpenSSL 问题 在cargo toml 中添加包依赖 xff1a dependencies openssl 61 version 61 34 0 10 34 features 61 34 vendor
  • python的socket、urlib、request指定出口网卡

    需求 一台机器上有多个网卡 如何访问指定的 URL 时使用指定的网卡发送数据呢 1 curl interface eth0 www baidu com curl interface 可以指定网卡 阅读 urllib py 的源码 追述到 o
  • OCiOS开发:集合视图 UICollectionView

    简介 UICollectionView 和 UICollectionViewController 类是iOS6 新引进的API xff0c 用于展示集合视图 xff0c 布局更加灵活 xff0c 可实现多列布局 xff0c 用法类似于UIT
  • Epoll学习心得

    首先 xff0c 我们应该知道Epoll可以完成什么任务 xff1a 我们可以把Epoll理解成为这样一个人 xff0c 我们可以把她大概想象成为一个公司很多老总所共有的一个漂亮的女秘书 xff0c 老总们都很忙 xff0c 所有人和老总中
  • 音视频技术原理

    1 播放器的数据处理流程 2 封装格式 按照 一定的格式 把音视频流和描述数据 存储到文件中 3 编码格式 音频编码 G 711 G722 G726 AAC MP1 MP2 MP3 AC 3 WMA 视频编码 h265 H264 H263
  • PTA 7-134 列出完数

    PTA 7 134 列出完数 输入一个整数n xff0c 要求输出 1 xff0c n 范围内的所有完数 完数是一个正整数 xff0c 该数恰好等于其所有不同真因子之和 例如 xff0c 6 28是完数 xff0c 因为6 61 1 43
  • C/C++ 子线程阻塞主线程

    如果不需要子线程阻塞主线程 xff0c 就不要调用join方法 thread生成后就已经在执行了 xff0c 不需要 join 研究以下 join detach几个thread相关的方法
  • ubuntu 查看当前目录文件大小

    输出当前目录下的所有文件和文件夹的大小 xff0c 并按照大小排序 du h d 1 sort h du h d 1 xff1a 显示当前目录下所有一级子目录的大小 du sh 显示当前目录的总大小 du h 显示当前目录下所有子目录的大小
  • vs平台工具集

    vs2010版本之后支持使用之前的版本编译 xff0c 可以在 属性 gt 常规中找到 需要安装对应的vs版本才可以使用各自对应的选项 其中vs2013中可以识别已经安装的vs2012 xff08 Visual Studio 2012 v1
  • Ubuntu CentOS Debian 哪个系统好?

    Ubuntu CentOS Debian 哪个系统好 xff1f 十 16 2010 in VPS笔记 Linux Server玩多了 xff0c 在商业化的LINUX中我只能说 ubuntu 是一个鸡肋 UNIX只在试验中玩过 xff0c
  • 1191:流感传染

    1191 xff1a 流感传染 题目描述 有一批易感人群住在网格状的宿舍区内 xff0c 宿舍区为n n的矩阵 xff0c 每个格点为一个房间 xff0c 房间里可能住人 xff0c 也可能空着 在第一天 xff0c 有些房间里的人得了流感
  • 每个程序员半小时内必须解决的5个编程问题(C语言实现)

    最近关注的几个算法的公众号都看到了如题的一篇文章 xff0c 后1道题单拿出来我肯定不能半个小时内解决 前三道题非常基础 xff0c 相信大部分人能用自己熟悉的语言很快解决 xff0c 而且解决的方法可以多种多样 xff0c 这里说一下我对
  • 算法导论学习笔记02——最大子数组问题

    最大子数组问题 xff1a 输入一个数组A xff0c 在数组A的众多非空连续子数组中 xff0c 找到和最大的一个 目录 暴力求解方法 分治思想求解 分治思想C代码 测试脚本 暴力求解方法 对一个长度为A的数组 xff0c 可以存在个非空
  • Linux中各文件占用的Cache统计

    统计Linux中各个文件占用cache的情况 xff0c 使用工具fincore 可以从GitHub上获取到源码 xff1a https github com david415 linux ftools git 下载后 xff0c conf