网站建设
关于小谭
建站案例
建站知识
联系我们
189 8069 5689
使用Hcache查看是谁占用了系统Buffer&Cache?
一、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?
本文URL:
http://cdxtjz.cn/article/ghdopi.html
其他资讯
go语言error处理 go语言 调试
windows系统编码的简单介绍
包含vb.net的编程模式的词条
在oracle软件中如何 oracle软件是做什么的
oracle如何设置闪回 oracle 存储过程闪回