hcache

Linux用戶可能經常遇到的一個問題是內存大部分都被Buff和Cache占用了,但是有時候我們想知道到底Cache了些什么內容卻沒有一個直觀好用的工具。今天給你介紹一個可以查看Linux當前緩存了哪些文件的小工具hcache。

hcache是基于pcstat的,pcstat可以查看某個文件是否被緩存和根據進程pid來查看都緩存了哪些文件。hcache在其基礎上增加了查看整個操作系統Cache和根據使用Cache大小排序的特性。

官網:https://github.com/silenceshell/hcache

安裝

hcache是使用GO開發的,安裝非常簡單,開箱即用。

$?wget?http://7xir15.com1.z0.glb.clouddn.com/hcache
$?chmod?+x?hcache
$?mv?hcache?/usr/local/bin/

使用

查看使用Cache最多的3個進程。

$?hcache?--top?3
+----------------------+----------------+------------+-----------+---------+
|?Name?????????????????|?Size?(bytes)???|?Pages??????|?Cached????|?Percent?|
|----------------------+----------------+------------+-----------+---------|
|?/usr/bin/kubelet?????|?138647424??????|?33850??????|?11751?????|?034.715?|
|?/usr/bin/dockerd?????|?39473368???????|?9638???????|?6574??????|?068.209?|
|?/usr/lib/snapd/snapd?|?18977392???????|?4634???????|?4505??????|?097.216?|
+----------------------+----------------+------------+-----------+---------+

默認情況下會顯示cache文件的全路徑,會比較長。可以使用--bname選項來僅顯示文件名。

$?hcache?--top?3?--bname+---------+----------------+------------+-----------+---------+
|?Name????|?Size?(bytes)???|?Pages??????|?Cached????|?Percent?|
|---------+----------------+------------+-----------+---------|
|?kubelet?|?138647424??????|?33850??????|?11751?????|?034.715?|
|?dockerd?|?39473368???????|?9638???????|?6574??????|?068.209?|
|?snapd???|?18977392???????|?4634???????|?4505??????|?097.216?|
+---------+----------------+------------+-----------+---------+

查看指定進程的Cache使用情況。

$?hcache?-pid?1397?-bname
+-----------------------+----------------+------------+-----------+---------+
|?Name??????????????????|?Size?(bytes)???|?Pages??????|?Cached????|?Percent?|
|-----------------------+----------------+------------+-----------+---------|
|?libm-2.23.so??????????|?1088952????????|?266????????|?185???????|?069.549?|
|?libstdc++.so.6.0.21???|?1566440????????|?383????????|?346???????|?090.339?|
|?libz.so.1.2.8?????????|?104824?????????|?26?????????|?26????????|?100.000?|
|?libdl-2.23.so?????????|?14608??????????|?4??????????|?4?????????|?100.000?|
|?libwrap.so.0.7.6??????|?36632??????????|?9??????????|?9?????????|?100.000?|
|?libaio.so.1.0.1???????|?5512???????????|?2??????????|?2?????????|?100.000?|
|?libnss_compat-2.23.so?|?35688??????????|?9??????????|?9?????????|?100.000?|
|?libnsl-2.23.so????????|?93128??????????|?23?????????|?23????????|?100.000?|
|?libc-2.23.so??????????|?1864888????????|?456????????|?456???????|?100.000?|
|?libcrypt-2.23.so??????|?39224??????????|?10?????????|?10????????|?100.000?|
|?librt-2.23.so?????????|?31712??????????|?8??????????|?8?????????|?100.000?|
|?liblz4.so.1.7.1???????|?96360??????????|?24?????????|?24????????|?100.000?|
|?libgcc_s.so.1?????????|?89696??????????|?22?????????|?22????????|?100.000?|
|?libpthread-2.23.so????|?138696?????????|?34?????????|?34????????|?100.000?|
|?libnss_nis-2.23.so????|?47648??????????|?12?????????|?12????????|?100.000?|
|?libnuma.so.1.0.0??????|?43936??????????|?11?????????|?11????????|?100.000?|
|?ld-2.23.so????????????|?162632?????????|?40?????????|?40????????|?100.000?|
|?mysqld????????????????|?24754056???????|?6044???????|?4051??????|?067.025?|
|?libnss_files-2.23.so??|?47600??????????|?12?????????|?12????????|?100.000?|
+-----------------------+----------------+------------+-----------+---------+

另外還可使用指定格式輸出,比如:JSON、純文本。更多使用方法可參考hcache -h

SQLPad

SQLPad是一個基于Nodejs開發的直接在瀏覽器運行SQL查詢并對結果進行可視化展示工具。SQLPad支持的數據庫非常多,比如:MySQL, Postgres, SQL Server, Vertica, Crate, Presto等。

官網:http://rickbergfalk.github.io/sqlpad/

安裝

  • 安裝Nodejs

默認軟件源里nodejs版本比較老,是4.x的。SQLPad最低需要6.x的,使用官方源安裝6.x的nodejs。

Debian/Ubuntu

$?curl?-sL?https://deb.nodesource.com/setup_6.x?|?bash?-
$?apt-get?-y?install?nodejs

RHEL/CentOS

$?curl?--silent?--location?https://rpm.nodesource.com/setup_6.x?|?bash?-
$?yum?install?nodejs
  • 安裝SQLPad

$?npm?install?sqlpad?-g
  • 啟動SQLPad

$?sqlpadLaunching?server?WITHOUT?SSL
Welcome?to?SqlPad!.?Visit?http://localhost:80?to?get?started

啟動后會顯示出訪問地址,SQLPad默認綁定在0.0.0.0:80。如果想更改可以指定--ip--port參數。

使用

用瀏覽器訪問http://ip:80頁面,注冊賬號后便可使用。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


建立一個數據庫連接

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

SQLPad支持對表名和字段名的自動提示

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

直接根據查詢結果生成各種圖表

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


SQLPad功能還是很強大的,還可以將查詢結查導出CVS和Excel格式等,快和你的小伙伴用起來吧!

參考文檔

http://www.google.com
https://nodejs.org/en/download/package-manager/
http://www.datastart.cn/tech/2017/05/20/hcache.html


轉自:http://mp.weixin.qq.com/s?__biz=MzI3MTI2NzkxMA==&mid=2247485268&idx=1&sn=cdc948082289a4c0c8eb354071689cc9&chksm=eac5267dddb2af6be116f9302ac400a848acda13680a47a59d3aecc6057d2782659d3b79500d&mpshare=1&scene=23&srcid=05262NtnrWCYMxa68eBRFy7A#rd