текущей конфигурации является swappiness = 40; zswap cache = 40
free -m
команда сообщает
total used free shared buff/cache available
Mem: 3615 1353 1232 191 1029 1806
Swap: 4095 4 4091
zswap отладочную информацию по команде sudo grep -r . /sys/kernel/debug/zswap
/sys/kernel/debug/zswap/stored_pages:892
/sys/kernel/debug/zswap/pool_total_size:1220608
/sys/kernel/debug/zswap/duplicate_entry:0
/sys/kernel/debug/zswap/written_back_pages:0
/sys/kernel/debug/zswap/reject_compress_poor:0
/sys/kernel/debug/zswap/reject_kmemcache_fail:0
/sys/kernel/debug/zswap/reject_alloc_fail:0
/sys/kernel/debug/zswap/reject_reclaim_fail:0
/sys/kernel/debug/zswap/pool_limit_hit:0
Страницы в zswap все еще считаются как подкачанный диск. Я полагаю, что это необходимо, потому что размер пула zswap является динамичным, и это позволяет в конечном счете перемещать все страницы в дисковую подкачку.
/sys/kernel/debug/zswap/written_back_pages шоу, сколько страниц, где на самом деле записано в диск, но насколько я понимаю это, является всем временем кумулятивный инкремент.
Получить текущее число байтов, подкачанных на диске:
Вы хотите вычислить
$used_swap_in_bytes(as shown by "free -b" or "swapon -s") -
/sys/kernel/debug/zswap/stored_pages * $(getconf PAGESIZE)
например, (в байтах)
echo "$(LANG=c free -b |grep Swap |awk '{print $3}') - $(sudo \
cat /sys/kernel/debug/zswap/stored_pages)*$(getconf PAGESIZE)" |bc -l
echo bytes swapped on disk
или в Mio (округленный пол):
echo | awk '{value='"$(LANG=c free -b |grep Swap |awk '{print $3}')\
- $(sudo cat /sys/kernel/debug/zswap/stored_pages)*\
$(getconf PAGESIZE)"';printf "%.0f\n", value/1024**2}'
echo Mio swapped on disk