Date: Thu, 27 Mar 2014 08:50:06 +0100 From: Joar Jegleim <joar.jegleim@gmail.com> To: "freebsd-fs@freebsd.org" <freebsd-fs@freebsd.org> Subject: zfs l2arc warmup Message-ID: <CAFfb-hpi20062%2BHCrSVhey1hVk9TAcOZAWgHSAP93RSov3sx4A@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
Hi list ! I struggling to get a clear understanding of how the l2arc get warm ( zfs). It's a FreeBSD 9.2-RELEASE server. >From various forum I've come up with this which I have in my /boot/loader.conf # L2ARC tuning # Maximum number of bytes written to l2arc per feed # 8MB (actuall=vfs.zfs.l2arc_write_max*(1000 / vfs.zfs.l2arc_feed_min_ms)) # so 8MB every 200ms = 40MB/s vfs.zfs.l2arc_write_max=8388608 # Mostly only relevant at the first few hours after boot # write_boost, speed to fill l2arc until it is filled (after boot) # 70MB, same rule applys, multiply by 5 = 350MB/s vfs.zfs.l2arc_write_boost=73400320 # Not sure vfs.zfs.l2arc_headroom=2 # l2arc feeding period vfs.zfs.l2arc_feed_secs=1 # minimum l2arc feeding period vfs.zfs.l2arc_feed_min_ms=200 # control whether streaming data is cached or not vfs.zfs.l2arc_noprefetch=1 # control whether feed_min_ms is used or not vfs.zfs.l2arc_feed_again=1 # no read and write at the same time vfs.zfs.l2arc_norw=1 But what I really wonder is how does the l2arc get warmed up ? I'm thinking of 2 scenarios: a.: when arc is full, stuff that evict from arc is put over in l2arc, that means that files in the fs that are never accessed will never end up in l2arc, right ? b.: zfs run through fs in the background and fill up the l2arc for any file, regardless if it has been accessed or not ( this is the 'feature' I'd like ) I suspect scenario a is what really happens, and if so, how does people warmup the l2arc manually (?) I figured that if I rsync everything from the pool I want to be cache'ed, it will fill up the l2arc for me, which I'm doing right now. But it takes 3-4 days to rsync the whole pool . Is this how 'you' do it to warmup the l2arc, or am I missing something ? The thing is with this particular pool is that it serves somewhere between 20 -> 30 million jpegs for a website. The front page of the site will for every reload present a mosaic of about 36 jpegs, and the jpegs are completely randomly fetched from the pool. I don't know what jpegs will be fetched at any given time, so I'm installing about 2TB of l2arc ( the pool is about 1.6TB today) and I want the whole pool to be available from the l2arc . Any input on my 'rsync solution' to warmup the l2arc is much appreciated :) -- ---------------------- Joar Jegleim Homepage: http://cosmicb.no Linkedin: http://no.linkedin.com/in/joarjegleim fb: http://www.facebook.com/joar.jegleim AKA: CosmicB @Freenode ----------------------
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAFfb-hpi20062%2BHCrSVhey1hVk9TAcOZAWgHSAP93RSov3sx4A>