Marwell Kirkwood ARM 기반 NAS 서버인 Zyxel NSA 310이 있습니다. ZCACHE를 활성화하여 자체 3.8 커널을 컴파일했지만 여전히 256MB의 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
압축하는 것이 "병합" 페이지인 것은 알지만 압축률 등을 확인하는 것은 어떻습니까?
답변1
zcache는 RAM 내부에 묻혀 있으며 현재 도구로는 쉽게 볼 수 없습니다. 자세한 내용을 보려면 debugfs를 설치하고 원하는 것보다 더 많은 통계가 있는 /sys/kernel/debug/zcache를 살펴봐야 합니다. frontswap은 pers_*(지속성용)로 보고되고 cleancache는 eph_*(임시용)로 보고됩니다. 하지만 여기에는 향후 다른 범주가 포함될 수 있습니다. 클린캐시와 프론트스왑 저장 및 로딩을 위한 별도의 디렉터리가 있습니다.
답변2
최신 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