ZFS Cache

From: Alvar Freude <alvar(at)a-blast.org>
Date: Tue, 29 Jun 2010 11:55:00 +0200

Hi,

Ich habe einen Server mit 8 GB RAM und ZFS.

Nun erscheint mir das Cache-Verhalten mit ZFS verbesserungswürdig: die
Maschine hat noch ca. 1.5 GB RAM frei, aber mir ist aufgefallen, dass
manche Dateien nicht gecacht werden. Zuerst ist mir das mit einer
MySQL-Tabelle in gammeligem MyISAM von ca. 500 MB aufgefallen: alter
Server mit 2 GB RAM und UFS hat die fast immer nahezu komplett im RAM,
hier auch bei wiederholtem Lesen der Datei nicht.

Aber auch Tests mit ca. 50 MB großen Testdateien zeigten: wiederholtes
Lesen (time cat file >/dev/null) führen bei ZFS NICHT dazu, dass die aus
dem Cache kommt. Bei UFS (Root-Partition) schon.

Habe mir daraufhin mal die ARC-Infos angeschaut, Ausgabe von
arc_summary.pl:
<http://jhell.googlecode.com/svn/base/head/scripts/zfs/arc_summary/arc_summary.pl>

ARC Size:
        Current Size: 84.97% 1401.29M (arcsize)
        Target Size: (Adaptive) 12.50% 206.14M (c)
        Min Size (Hard Limit): 12.50% 206.14M (c_min)
        Max Size (High Water): ~8:1 1649.14M (c_max)

Auch nach mehrfachem Lesen einer 50 MB-Datei wird diese nicht gecacht.

Es wundert mich, warum auch nach mehrfachem Lesen das ZFS die Datei nicht
in den Cache packt; immerhin ist ja noch was frei.

Und: Warum wird der Maximalwert für ARC auf nur ca. 1.6 GB gesetzt, ist
es sinnvoll den in /boot/loader.conf hochzusetzen? Der FreeBSD ZFS Tuning
Guide sagt, unter AMD64 bräuchte man nichts machen.
Ich denke ich könnte nochmal 1 bis 1.5 GB zusätzlich für den Cache
nutzen.

Wie läuft das Speicher-Handling, wenn aber doch mal die laufenden
Prozesse 1.5 GB mehr brauchen? Normalerweise würde dann ja der Cache
freigegeben werden, klappt das auch mit ZFS sauber?

Unten noch die komplette Ausgabe von arc_summary.pl.

Ciao
  Alvar

------------------------------------------------------------------------
System Summary Tue Jun 29 11:45:57 2010

FreeBSD 8.0-RELEASE #3: Mon Nov 30 01:39:08 CET 2009 root

Kernel Version: 800107 (osreldate)

Hardware Platform: amd64
Processor Architecture: amd64

11:45AM up 128 days, 2:02, 2 users, load averages: 0.14, 0.23, 0.24
------------------------------------------------------------------------

Physical Memory: 8175.41M
Page Size: 4096

Kernel Memory
TOTAL: 1287.92M
DATA: 98.82% 1272.71M
TEXT: 1.18% 15.21M

ARC Summary
        Storage pool Version: 13 (spa)
        Filesystem Version: 3 (zpl)
        Memory Throttle Count: 4

ARC Misc:
        Deleted: 138999579
        Recycle Misses: 121603211
        Mutex Misses: 1086913
        Evict Skips: 1086913

ARC Size:
        Current Size: 84.90% 1400.20M (arcsize)
        Target Size: (Adaptive) 12.50% 206.14M (c)
        Min Size (Hard Limit): 12.50% 206.14M (c_min)
        Max Size (High Water): ~8:1 1649.14M (c_max)

ARC Size Breakdown:
        Recently Used Cache Size: 14.72% 206.14M (p)
        Frequently Used Cache Size: 85.28% 1194.06M (arcsize-p)

ARC Hash Breakdown:
        Elements Max: 299242
        Elements Current: 18.05% 54024
        Collisions: 206642343
        Chain Max: 13
        Chains: 8568

ARC Efficiency:
        Cache Access Total: 2082733740
        Cache Hit Ratio: 91.10% 1897293530
        Cache Miss Ratio: 8.90% 185440210
        Actual Hit Ratio: 78.29% 1630625632

        Data Demand Efficiency: 96.14%
        Data Prefetch Efficiency: 90.92%

        CACHE HITS BY CACHE LIST:
          Anonymous: 8.90% 168831073
          Most Recently Used: 18.40% 349090905 (mru)
          Most Frequently Used: 67.55% 1281534727 (mfu)
          Most Recently Used Ghost: 1.96% 37150955 (mru_ghost)
          Most Frequently Used Ghost: 3.20% 60685870 (mfu_ghost)

        CACHE HITS BY DATA TYPE:
          Demand Data: 46.11% 874749447
          Prefetch Data: 4.81% 91236977
          Demand Metadata: 39.15% 742851680
          Prefetch Metadata: 9.93% 188455426

        CACHE MISSES BY DATA TYPE:
          Demand Data: 18.96% 35161281
          Prefetch Data: 4.92% 9116896
          Demand Metadata: 44.68% 82851668
          Prefetch Metadata: 31.44% 58310365

L2 ARC Stats: (enabled with access > 0) 0

VDEV Cache Summary
        Access Total: 137032564
        Hits Ratio: 59.99% 82211532
        Miss Ratio: 40.01% 54821032
        Delegations: 2730924

ZFS Tunable (sysctl):
        kern.maxusers=384
        vfs.zfs.arc_meta_limit=432312320
        vfs.zfs.arc_meta_used=1129673976
        vfs.zfs.mdcomp_disable=0
        vfs.zfs.arc_min=216156160
        vfs.zfs.arc_max=1729249280
        vfs.zfs.zfetch.array_rd_sz=1048576
        vfs.zfs.zfetch.block_cap=256
        vfs.zfs.zfetch.min_sec_reap=2
        vfs.zfs.zfetch.max_streams=8
        vfs.zfs.prefetch_disable=0
        vfs.zfs.recover=0
        vfs.zfs.txg.synctime=5
        vfs.zfs.txg.timeout=30
        vfs.zfs.scrub_limit=10
        vfs.zfs.vdev.cache.bshift=16
        vfs.zfs.vdev.cache.size=10485760
        vfs.zfs.vdev.cache.max=16384
        vfs.zfs.vdev.aggregation_limit=131072
        vfs.zfs.vdev.ramp_rate=2
        vfs.zfs.vdev.time_shift=6
        vfs.zfs.vdev.min_pending=4
        vfs.zfs.vdev.max_pending=35
        vfs.zfs.cache_flush_disable=0
        vfs.zfs.zil_disable=0
        vfs.zfs.version.zpl=3
        vfs.zfs.version.vdev_boot=1
        vfs.zfs.version.spa=13
        vfs.zfs.version.dmu_backup_stream=1
        vfs.zfs.version.dmu_backup_header=2
        vfs.zfs.version.acl=1
        vfs.zfs.debug=0
        vfs.zfs.super_owner=0
        vm.kmem_size=2766798848
        vm.kmem_size_scale=3
        vm.kmem_size_min=0
        vm.kmem_size_max=329853485875
------------------------------------------------------------------------

-- 
** Alvar C.H. Freude, http://alvar.a-blast.org/
** http://www.assoziations-blaster.de/
** http://www.wen-waehlen.de/
** http://www.perl-blog.de/
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Tue 29 Jun 2010 - 11:55:11 CEST

search this site