獲取當前 zswap 內存使用情況和統計信息

獲取當前 zswap 內存使用情況和統計信息

zswap 文檔說:

Zswap seeks to be simple in its policies.  Sysfs attributes allow for one user
controlled policy:
* max_pool_percent - The maximum percentage of memory that the compressed
    pool can occupy.

這指定了最大限度壓縮池可以佔用的記憶體百分比。

我如何得知:

  • 目前的壓縮池佔用的記憶體百分比
  • 該池有多少空間正在使用中
  • 壓縮率、命中率和其他有用信息

答案1

目前統計:

# grep -R . /sys/kernel/debug/zswap/

壓縮率:

# cd /sys/kernel/debug/zswap
# perl -E  "say $(cat stored_pages) * 4096 / $(cat pool_total_size)"

目前的設定:

$ grep -R . /sys/module/zswap

答案2

創造/usr/local/bin/zswap內容:

#!/bin/bash

MDL=/sys/module/zswap
DBG=/sys/kernel/debug/zswap
PAGE=$[`cat $DBG/stored_pages`*4096]
POOL=$[`cat $DBG/pool_total_size`]

Show(){
    printf "========\n$1\n========\n"
    grep -R . $2 2>&1 | sed 's|.*/||'
}

Show Settings $MDL
Show Stats    $DBG

printf "\nCompression ratio: "

[ $POOL -gt 0 ] && {
     echo "scale=3;$PAGE/$POOL" | bc
} || echo zswap disabled

使檔案可執行(# chmod 755 /usr/local/bin/zswap)並啟動它。例子:

# zswap
========
Settings
========
uevent: Permission denied
same_filled_pages_enabled:Y
enabled:Y
max_pool_percent:20
compressor:zstd
zpool:zbud
accept_threshold_percent:90
========
Stats
========
same_filled_pages:72227
stored_pages:394760
pool_total_size:660660224
duplicate_entry:0
written_back_pages:0
reject_compress_poor:345
reject_kmemcache_fail:0
reject_alloc_fail:0
reject_reclaim_fail:0
pool_limit_hit:0

Compression ratio: 2.447

相關內容