一个可以查看linux当前缓存了哪些大文件的小工具

标签: hcache tech | 发表时间:2017-05-20 08:11 | 作者:
出处:http://silenceshell.github.io/

linux用户可能经常遇到的一个问题是,机器有16GB内存,开的进程也不多,但是剩下的free内存并不多,大部分都被buff/cache掉了(比如下面我的PC),但是cache了些什么东西并不清楚,linux也没有个命令能查看。

   $ free -h
              total        used        free      shared  buff/cache   available
Mem:            15G        6.4G        2.3G        1.1G        6.9G        7.7G
Swap:          975M        268K        975M

前几天看到有个人用go写了个 pcstat,可以查看某个文件是否被缓存(作者的目的是数据库调优),也可以根据进程pid来查看都缓存了哪些文件,但是不能查看整个操作系统都cache了哪些文件。

因此,我基于pcstat写了个hcache,增加了查看当前操作系统cache的前top个文件的特性,你可以从 这里下载下来试用,如果有什么建议的话也欢迎反馈给我:[email protected]

使用比较简单:

   $ sudo hcache --top 10
[sudo] password for silenceshell:
+----------------------------------------------------------------------------------+----------------+------------+-----------+---------+
| Name                                                                             | Size (bytes)   | Pages      | Cached    | Percent |
|----------------------------------------------------------------------------------+----------------+------------+-----------+---------|
| /opt/google/chrome/chrome                                                        | 114911208      | 28055      | 25457     | 090.740 |
| /usr/share/code/code                                                             | 67688720       | 16526      | 12274     | 074.271 |
| /home/silenceshell/Software/pycharm-community-2016.2/lib/pycharm.jar                   | 95177431       | 23237      | 11325     | 048.737 |
| /opt/atom/atom                                                                   | 62641344       | 15294      | 10578     | 069.164 |
| /usr/bin/dockerd                                                                 | 39121168       | 9552       | 7103      | 074.361 |
| /home/silenceshell/Software/pycharm-community-2016.2/jre/jre/lib/amd64/libjfxwebkit.so | 57455824       | 14028      | 6625      | 047.227 |
| /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4.10.2                                  | 36462184       | 8902       | 6316      | 070.950 |
| /usr/lib/beyondcompare/BCompare                                                  | 30640160       | 7481       | 5505      | 073.586 |
| /usr/bin/SecureCRT                                                               | 29524560       | 7209       | 4806      | 066.667 |
| /usr/share/code/libnode.so                                                       | 21135976       | 5161       | 4588      | 088.898 |
+----------------------------------------------------------------------------------+----------------+------------+-----------+---------+
$
$ sudo ./hcache --top 3  --bname  
+-------------+----------------+------------+-----------+---------+
| Name        | Size (bytes)   | Pages      | Cached    | Percent |
|-------------+----------------+------------+-----------+---------|
| chrome      | 114911208      | 28055      | 25476     | 090.807 |
| pycharm.jar | 95177431       | 23237      | 11479     | 049.400 |
| atom        | 62641344       | 15294      | 10578     | 069.164 |
+-------------+----------------+------------+-----------+---------+
$
$ lsof /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4.10.2
COMMAND    PID   USER  FD   TYPE DEVICE SIZE/OFF    NODE NAME
quiterss 20630 silenceshell mem    REG    8,5 36462184 3936610 /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4.10.2

源码开源在Github上: hcache


相关 [linux 缓存 文件] 推荐:

一个可以查看linux当前缓存了哪些大文件的小工具

- - Zlatan Eevee
linux用户可能经常遇到的一个问题是,机器有16GB内存,开的进程也不多,但是剩下的free内存并不多,大部分都被buff/cache掉了(比如下面我的PC),但是cache了些什么东西并不清楚,linux也没有个命令能查看. 前几天看到有个人用go写了个 pcstat,可以查看某个文件是否被缓存(作者的目的是数据库调优),也可以根据进程pid来查看都缓存了哪些文件,但是不能查看整个操作系统都cache了哪些文件.

Linux 文件结构

- Shiina Luce - OSMSG
想了解 Linux 文件系统树形结构,却又不愿翻阅 FHS 的朋友,可以参考 skill2die4 制作的这张简图. 此图算是 FHS 的图形化版本,简要的说明了 Linux 系统中各个目录的用途及层级关系,适合初学者使用参考. 不过其中较新的如 /run 目录并未在其中出现. 做为参考,这是 Fedora 16 Beta i686 上的文件结构:.

五款优秀的Linux缓存系统

- 勇丞 - FeedzShare
来自: Solidot - FeedzShare  . 发布时间:2011年04月27日,  已有 4 人推荐. Naomi James 写道 "1897年,意大利经济学家帕累托(Vilfredo Pareto)发现,国家80%的财富是掌握在20%的人口手中. 这一现象被称为帕累托法则或80-20法则.

Linux 2.6 中的文件锁

- Mountain - 小程序员的草稿箱
在多任务操作系统环境中,如果一个进程尝试对正在被其他进程读取的文件进行写操作,可能会导致正在进行读操作的进程读取到一些被破坏或者不完整的数据;如果两个进程并发对同一个文件进行写操作,可能会导致该文件遭到破坏. 因此,为了避免发生这种问题,必须要采用某种机制来解决多个进程并发访问同一个文件时所面临的同步问题,由此而产生了文件加锁方面的技术.

Linux 文件结构 — LinuxTOY

- oak - linuxtoy.org
想了解 Linux 文件系统树形结构,却又不愿翻阅 FHS 的朋友,可以参考 skill2die4 制作的这张简图. 此图算是 FHS 的图形化版本,简要的说明了 Linux 系统中各个目录的用途及层级关系,适合初学者使用参考. 不过其中较新的如 /run 目录并未在其中出现.

(总结)关于Linux的缓存内存 Cache Memory详解

- d0ngd0ng - 服务器运维与网站架构|Linux运维|互联网研究
前天有朋友问我,为啥我的Linux系统没运行多少程序,显示的可用内存这么少. 其实Linux与Win的内存管理不同,会尽量缓存内存以提高读写性能,通常叫做Cache Memory. 有时候你会发现没有什么程序在运行,但是使用top或free命令看到可用内存free项会很少,此时查看系统的 /proc/meminfo 文件,会发现有一项 Cached Memory:.

Linux 内存高速缓存(cache)类型分析

- - Linux - 操作系统 - ITeye博客
      在Liunx内存管理机制中,除了对目录项(dentry,Linux文件系统中某个inode的链接)进行缓存外,. 还采取了两种高速缓存,即Buffer Cache和Page Cache,前者针对磁盘块的读写,后者针对文件inode的. 通过增加这些Cache,有效缩短 I/O时间.        先通过free命令查看内存使用情况:.

linux中squid3(高命中率)缓存服务器配置

- - 操作系统 - ITeye博客
今天对我的varnish进行了下小小的压力测试,40s里的8000并发,没有失败一个,估计还可以承受更大的并发,先不说varnish了,我最近找到个命中率很高的squid的配置文件,当然是squid3.0的配置文件,有需要的可以copy回去自己改.   系统:centos 5.x.   需要的软件:squid-3.0.STABLE25.tar.gz.

linux下的文件系统选型

- Michael - shell's home
    贝壳原来一直认为文件系统可以随便选,结果最近吃了两次苦头. 一个是btrfs对虚拟机支持不良,另一个是特定情况下xfs性能比ext3高20倍. 痛定思痛,打算列一下文件系统选型的方法和依据,欢迎拍砖.     下面我列一下纳入参考的文件系统,当然,ntfs就不要出来搞基了,玩嵌入式/光盘live之类的朋友也不要来凑热闹了阿.