-
一、hcache
- Linux用户可能经常遇到的一个问题是内存大部分都被Buffer和Cache占用了,但是有时候我们想知道到底Cache了些什么内容却没有一个直观好用的工具。今天给你介绍一个可以查看Linux当前缓存了哪些文件的小工具hcache。
- Hcache作者:伊布
- 前几天看到有个人用go写了个pcstat,可以查看某个文件是否被缓存(作者的目的是数据库调优),也可以根据进程pid来查看都缓存了哪些文件,但是不能查看整个操作系统都cache了哪些文件。因此,我基于pcstat写了个hcache,增加了查看当前操作系统cache的前top个文件的特性,你可以从这里下载下来试用,如果有什么建议的话也欢迎反馈给我:hubottle@gmail.com
- 官网:https://github.com/silenceshell/hcache
- 二、安装
- hcache是使用GO开发的,安装非常简单,开箱即用。
- $ wget http://7xir15.com1.z0.glb.clouddn.com/hcache
- $ chmod +x hcache
- $ mv hcache /usr/local/bin/
- 1
- 2
- 3
- $ wget http://7xir15.com1.z0.glb.clouddn.com/hcache
- $ chmod +x hcache
- $ mv hcache /usr/local/bin/
- 三、使用
- $ free –m
- total used free shared buff/cache available
- Mem: 7823 1952 174 9 5696 5518
- Swap: 0 0 0
- 1
- 2
- 3
- 4
- $ free –m
- total used free shared buff/cache available
- Mem: 7823 1952 174 9 5696 5518
- Swap: 0 0 0
- 查看使用Cache最多的3个进程。
- $ hcache ––top 3
- +––––––––––––––––––––––––––––+––––––––––––––––+––––––––––––+–––––––––––+–––––––––+
- | Name | Size (bytes) | Pages | Cached | Percent |
- |––––––––––––––––––––––––––––+––––––––––––––––+––––––––––––+–––––––––––+–––––––––|
- | /usr/bin/dockerd | 33368760 | 8147 | 8147 | 100.000 |
- | /usr/bin/docker–containerd | 7115584 | 1738 | 1738 | 100.000 |
- | /etc/udev/hwdb.bin | 6711310 | 1639 | 1639 | 100.000 |
- +––––––––––––––––––––––––––––+––––––––––––––––+––––––––––––+–––––––––––+–––––––––+
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- $ hcache ––top 3
- +––––––––––––––––––––––––––––+––––––––––––––––+––––––––––––+–––––––––––+–––––––––+
- | Name | Size (bytes) | Pages | Cached | Percent |
- |––––––––––––––––––––––––––––+––––––––––––––––+––––––––––––+–––––––––––+–––––––––|
- | /usr/bin/dockerd | 33368760 | 8147 | 8147 | 100.000 |
- | /usr/bin/docker–containerd | 7115584 | 1738 | 1738 | 100.000 |
- | /etc/udev/hwdb.bin | 6711310 | 1639 | 1639 | 100.000 |
- +––––––––––––––––––––––––––––+––––––––––––––––+––––––––––––+–––––––––––+–––––––––+
- 默认情况下会显示cache文件的全路径,会比较长。可以使用––bname选项来仅显示文件名。
- $ hcache ––top 3 ––bname
- +–––––––––––––––––––+––––––––––––––––+––––––––––––+–––––––––––+–––––––––+
- | Name | Size (bytes) | Pages | Cached | Percent |
- |–––––––––––––––––––+––––––––––––––––+––––––––––––+–––––––––––+–––––––––|
- | dockerd | 33368760 | 8147 | 8147 | 100.000 |
- | docker–containerd | 7115584 | 1738 | 1738 | 100.000 |
- | hwdb.bin | 6711310 | 1639 | 1639 | 100.000 |
- +–––––––––––––––––––+––––––––––––––––+––––––––––––+–––––––––––+–––––––––+
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- $ hcache ––top 3 ––bname
- +–––––––––––––––––––+––––––––––––––––+––––––––––––+–––––––––––+–––––––––+
- | Name | Size (bytes) | Pages | Cached | Percent |
- |–––––––––––––––––––+––––––––––––––––+––––––––––––+–––––––––––+–––––––––|
- | dockerd | 33368760 | 8147 | 8147 | 100.000 |
- | docker–containerd | 7115584 | 1738 | 1738 | 100.000 |
- | hwdb.bin | 6711310 | 1639 | 1639 | 100.000 |
- +–––––––––––––––––––+––––––––––––––––+––––––––––––+–––––––––––+–––––––––+
- 查看指定进程的Cache使用情况。
- $ hcache –pid 2903 –bname
- 1
- $ hcache –pid 2903 –bname
- 另外还可使用指定格式输出,比如:JSON、纯文本。更多使用方法可参考hcache –h。
- $ hcache –h
- Usage of hcache:
- –bname
- convert paths to basename to narrow the output
- –histo
- print a simple histogram instead of raw data
- –json
- return data in JSON format
- –nohdr
- omit the header from terse & text output
- –pid int
- show all open maps for the given pid
- –plain
- return data with no box characters
- –pps
- include the per–page status in JSON output
- –terse
- show terse output
- –top int
- convert paths to basename to narrow the output
- –unicode
- return data with unicode box characters
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- $ hcache –h
- Usage of hcache:
- –bname
- convert paths to basename to narrow the output
- –histo
- print a simple histogram instead of raw data
- –json
- return data in JSON format
- –nohdr
- omit the header from terse & text output
- –pid int
- show all open maps for the given pid
- –plain
- return data with no box characters
- –pps
- include the per–page status in JSON output
- –terse
- show terse output
- –top int
- convert paths to basename to narrow the output
- –unicode
- return data with unicode box characters
- 完结。。
使用Hcache查看是谁占用了系统Buffer&Cache?
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。