저는 6.2.0-39-generic(Ubuntu 22.04, HWE)에서 zswap을 실행하고 있습니다.
내가 이해하는 바는 zswap이 스왑용으로 표시된 페이지를 가로채서 (가능한 경우) 이를 압축하고 사용자 특정 지점까지 물리적 RAM의 압축된 부분에 저장한다는 것입니다. 제 경우에는 zswap이 RAM의 최대 25%를 사용하도록 설정되어 있습니다.
그러나 시스템에 스트레스를 주는 경우(256GB RAM 및 256GB /swapfile 사용):
stress --vm-bytes 250G --vm-keep -m 1
활동 모니터나 free -h 등을 살펴보면 먼저 RAM이 가득 차고, 그 다음에는 "스왑"이 가득 차기 시작합니다. 이는 250GB를 저장하는 데 필요한 것보다 훨씬 더 많은 양입니다.
free -h
보고서:
total used free shared buff/cache available
Mem: 251Gi 249Gi 1.9Gi 35Mi 523Mi 598Mi
Swap: 255Gi 128Gi 127Gi
하지만 sudo grep -R. /sys/kernel/debug/zswap/ 보고:
sudo grep -R . /sys/kernel/debug/zswap/
/sys/kernel/debug/zswap/same_filled_pages:10982
/sys/kernel/debug/zswap/stored_pages:33556168
/sys/kernel/debug/zswap/pool_total_size:45804953600
/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
33556168*4096 = ~128GB - free -h에 의해 보고된 스왑 사용량과 일치합니다.
그렇다면 zswap으로 압축되고 여전히 RAM에 있는 경우에도 시스템은 압축되지 않은 파일 크기를 "swap"으로 보고합니까?
기본적으로 직관적이고 보고 가능한 것을 어떻게 얻을 수 있습니까?
- 사용된 총 물리적 RAM(압축되지 않음)
- 사용된 총 물리적 RAM 양(zswap을 통해 압축)
- 사용된 총 디스크 스왑 양
- 남은/사용 가능한 총 디스크 스왑 양
여기에도 게시되었습니다:https://www.reddit.com/r/kernel/comments/18iykle/accurately_monitoring_ram_and_swap_usage_while/