ZFS kodu procfs aracılığıyla çeşitli istatistikleri rapor eder. En ARC büyüklüğü, önceki belirlemek için /proc/spl/kstat/zfs/arcstats
için (varsayarak procfs alışılmış olarak, ilgili / proc monte), özellikle değerleri c
, c_max
ve size
. ( Oracle Community forumundaki bu gönderiye de bakın . Oracle sitesinin kullanılamaması durumunda Alternatif İnternet Arşivi kopyası .)
c
olan hedef boyutu bayt cinsinden ARC
c_max
bir en büyük boyut bayt ARC
size
olan geçerli boyutu bayt ARC
ARC'nin maksimum boyutu modüle bir zfs_arc_max=N
parametre geçirilerek zfs
(modprobe ile), burada N
bayt cinsinden maksimum ARC boyutu veya bayt cinsinden yeni maksimum boyut yazarak anında ayarlanabilir /sys/module/zfs/parameters/zfs_arc_max
.
Linux'ta ZFS'nin nasıl uygulandığı nedeniyle, ARC belleği önbellek gibi davranır (örneğin, sistem bellek baskısı altına girerse çıkarılır), ancak çekirdek tarafından sıradan bellek ayırmaları olarak toplanır . Sistem, mevcut sistem iş yükü göz önüne alındığında beklenenden çok daha az boş hafızaya sahip gibi göründüğü için karışıklığa neden olabilir, ancak normaldir.
ARC boyutunu megabayt olarak almak için, benzer bir şey kullanabilirsiniz awk '/^size/ { print $1 " " $3 / 1048576 }' < /proc/spl/kstat/zfs/arcstats
. (1.048.576 megabayta bayt sayısıdır.)
Örneğin, sistemim (neredeyse tamamen ZFS kullanan)
$ free -m
total used free shared buffers cached
Mem: 32194 17948 14245 0 158 982
-/+ buffers/cache: 16808 15386
Swap: 49152 0 49152
$ awk '/^size/ { print $1 " " $3 / 1048576 }' < /proc/spl/kstat/zfs/arcstats
size 8138.73
$
yani şu anda yerleşik işlemlerle gerçek bellek kullanımı yaklaşık 8,669 MB'dir (16,808 MB 8,139 MB azalır).