รหัส ZFS รายงานสถิติต่างๆผ่าน procfs ในการกำหนดขนาดของ ARC ให้ดูที่/proc/spl/kstat/zfs/arcstats
(procfs สมมติว่าติดตั้งอยู่บน proc / เป็นจารีตประเพณี) โดยเฉพาะค่าสำหรับc
, และc_max
size
(โปรดดูโพสต์นี้ในฟอรัม Oracle Community สำเนาสำรองทางอินเทอร์เน็ตในกรณีที่ไซต์ Oracle ไม่พร้อมใช้งาน)
c
คือขนาดเป้าหมายของ ARC หน่วยเป็นไบต์
c_max
คือขนาดสูงสุดของ ARC หน่วยเป็นไบต์
size
คือขนาดปัจจุบันของ ARC เป็นไบต์
ขนาดสูงสุดของ ARC ที่สามารถปรับเปลี่ยนได้ทั้งโดยผ่านzfs_arc_max=N
พารามิเตอร์ไปยังzfs
โมดูล (ผ่าน modprobe) ซึ่งN
เป็นขนาดสูงสุด ARC /sys/module/zfs/parameters/zfs_arc_max
ไบต์หรือในการบินโดยการเขียนขนาดสูงสุดใหม่ในไบต์
เนื่องจากวิธีการใช้ZFS บน Linuxหน่วยความจำ ARC จะทำงานเหมือนหน่วยความจำแคช (ตัวอย่างเช่นมันจะถูกขับออกหากระบบมาอยู่ภายใต้แรงกดดันของหน่วยความจำ) แต่ถูกรวมโดยเคอร์เนลเป็นการจัดสรรหน่วยความจำปกติ สิ่งนี้สามารถทำให้เกิดความสับสนได้เนื่องจากระบบมีหน่วยความจำว่างน้อยกว่าที่คาดไว้เนื่องจากปริมาณงานของระบบในปัจจุบัน แต่เป็นเรื่องปกติ
เพื่อให้ได้ขนาด ARC awk '/^size/ { print $1 " " $3 / 1048576 }' < /proc/spl/kstat/zfs/arcstats
เมกะไบต์คุณสามารถใช้สิ่งที่ต้องการ (1,048,576 คือจำนวนไบต์ถึงเมกะไบต์)
ตัวอย่างเช่นระบบของฉัน (ซึ่งใช้ ZFS เกือบเฉพาะ) อาจรายงาน
$ 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
$
ซึ่งหมายความว่าการใช้หน่วยความจำจริงตามกระบวนการที่อยู่อาศัยในปัจจุบันมีประมาณ 8,669 MB (ลดลง 16,808 MB โดย 8,139 MB)