Linux
我如何確定 ZCACHE 在我的盒子上工作?
我有一個基於 Marwell Kirkwood ARM 的 NAS 伺服器 Zyxel NSA 310。我編譯了自己的 3.8 核心並啟用了 ZCACHE,但我仍然看到 256 MB 的 RAM。我不確定 GNU 免費實用程序是否應該顯示額外的 RAM。我如何發現它真的有效?我需要做一些額外的步驟來使用它嗎?我已將“zcache”添加到命令行。
root@nas:~# free -m total used free shared buffers cached Mem: 247 218 29 0 7 166 -/+ buffers/cache: 43 203 Swap: 1427 0 1427 root@nas:~# zgrep CACHE /proc/config.gz CONFIG_CLEANCACHE=y CONFIG_ZCACHE=y root@nas:~# dmesg | grep zcache Kernel command line: console=ttyS0,115200 root=/dev/sda3 zcache zcache: using lzo compressor zcache: cleancache enabled using kernel transcendent memory and compression buddies zcache: cleancache: ignorenonactive = 1 zcache: frontswap enabled using kernel transcendent memory and compression buddies zcache: frontswap: excl gets = 1 active only = 1 zcache: created ephemeral local tmem pool, id=0 zcache: created persistent local tmem pool, id=1 zcache: created ephemeral local tmem pool, id=2 zcache: created ephemeral local tmem pool, id=3 zcache: created ephemeral local tmem pool, id=4 root@nas:~# cat /proc/cmdline console=ttyS0,115200 root=/dev/sda3 zcache
我知道它正在“合併”壓縮它們的頁面,但是如何查看壓縮率或類似的東西。
zcache 隱藏在 ram 中,使用目前工具不容易看到。要查看詳細資訊,您需要掛載 debugfs 並查看 /sys/kernel/debug/zcache 那裡有一大堆統計資訊,比您想要的要多。frontswap 報告為 pers_(用於持久性),而 cleancache 報告為 eph_(用於臨時性),儘管將來可能包括其他類別。cleancache 和 frontswap 儲存和載入有單獨的目錄。
最新的 git 中的佈局似乎發生了一些變化:
# ls cleancache ; ls frontswap ; ls zbud failed_gets invalidates puts succ_gets failed_stores invalidates loads succ_stores eph_buddied_count eph_evicted_pageframes eph_zbytes pers_cumul_zbytes pers_pageframes pers_zombie_count eph_cumul_zbytes eph_pageframes eph_zpages pers_cumul_zpages pers_unbuddied_count pers_zpages eph_cumul_zpages eph_unbuddied_count pers_buddied_count pers_evicted_pageframes pers_zbytes # uname -v #201308150422 SMP Thu Aug 15 08:31:51 UTC 2013