[Linux-cachefs] Unknown source of Invals causing performance problem

Rob Leitman robl at voicebox.com
Wed Feb 18 00:18:59 UTC 2015


What exactly should I be looking for in an NFS wireshark capture?

David, sorry about the delay.  I'm still seeing a similar problem, however Objects are non-zero:

FS-Cache statistics
Cookies: idx=20 dat=40203 spc=0
Objects: alc=40206 nal=0 avl=40206 ded=35834
ChkAux : non=0 ok=25398 upd=0 obs=0
Pages  : mrk=4011746 unc=4002619
Acquire: n=40223 nul=0 noc=0 ok=40223 nbf=0 oom=0
Lookups: n=40206 neg=14808 pos=25398 crt=14808 tmo=0
Invals : n=383862 run=383115
Updates: n=0 nul=0 run=383115
Relinqs: n=35852 nul=0 wcr=0 rtr=0
AttrChg: n=0 ok=0 nbf=0 oom=0 run=0
Allocs : n=0 ok=0 wt=0 nbf=0 int=0
Allocs : ops=0 owt=0 abt=0
Retrvls: n=247620 ok=26030 wt=31694 nod=221590 nbf=0 int=0 oom=0
Retrvls: ops=247620 owt=92602 abt=0
Stores : n=3915595 ok=3915595 agn=0 nbf=0 oom=0
Stores : ops=236199 run=4139310 pgs=3903111 rxd=3903161 olm=0
VmScan : nos=4002569 gon=0 bsy=0 can=50 wt=633
Ops    : pend=109888 run=865127 enq=4618402 can=1807 rej=0
Ops    : dfr=3642 rel=866934 gc=3642
CacheOp: alo=0 luo=0 luc=0 gro=0
CacheOp: inv=0 upo=0 dro=0 pto=0 atc=0 syn=0
CacheOp: rap=0 ras=0 alp=0 als=0 wrp=0 ucp=0 dsp=0


Thanks,

Rob

-----Original Message-----
From: David Howells [mailto:dhowells at redhat.com] 
Sent: Monday, December 08, 2014 6:22 AM
To: Rob Leitman
Cc: dhowells at redhat.com; linux-cachefs at redhat.com
Subject: Re: [Linux-cachefs] Unknown source of Invals causing performance problem

Rob Leitman <robl at voicebox.com> wrote:

> Cookies: idx=4 dat=15 spc=0
> ...
> Invals : n=17536803 run=0

That looks really weird.  You've got 15 data files which are being invalidated
over 17 million times between them - but in no cases do you have any
invalidation states reached.  (Indices may not be invalidated).

> Objects: alc=0 nal=0 avl=0 ded=0

There are no objects allocated.  Do you have a cache actually attached?


Anyway, the fscache_n_invalidates counter counts calls to
__fscache_invalidate() - which should only be called through
fscache_invalidate().

That in turn is called from nfs_fscache_invalidate() which is called in two
places:

 (1) nfs_set_cache_invalid() - if NFS decides to invalidate the data.

 (2) update_changeattr() - if NFSv4 sees an altered change attribute.

Can you use wireshark to check that the change attribute is remaining
constant?

David




More information about the Linux-cachefs mailing list