Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 16 Nov 2010 13:55:57 +0100
From:      Alexander Leidinger <Alexander@Leidinger.net>
To:        Christer Solskogen <christer.solskogen@gmail.com>
Cc:        freebsd-stable@freebsd.org, Ivan Voras <ivoras@freebsd.org>
Subject:   Re: "High" cpu usage when using ZFS cache device
Message-ID:  <20101116135557.66601irt6kd1gndw@webmail.leidinger.net>
In-Reply-To: <AANLkTi=tJ-Hf%2BrMqG0=tEzNV2jJW-B_7Yu_ftW4tAMqT@mail.gmail.com>
References:  <AANLkTinzwyhABYxzWknzRFzLCbcDSd3BU2kQ5tX_SSk-@mail.gmail.com> <20101116003029.GC79816@numachi.com> <AANLkTinfTgXzf7t3PtO2VAef7NSkKWc0RnGdpv=6_-Vj@mail.gmail.com> <ibtqvp$bfq$1@dough.gmane.org> <AANLkTi=tJ-Hf%2BrMqG0=tEzNV2jJW-B_7Yu_ftW4tAMqT@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Quoting Christer Solskogen <christer.solskogen@gmail.com> (from Tue,  
16 Nov 2010 13:15:32 +0100):

> On Tue, Nov 16, 2010 at 12:47 PM, Ivan Voras <ivoras@freebsd.org> wrote:
>
>> You can easily test it - use the stick as a simple disk device with UFS and
>> see how much CPU does it take simply to talk to the device.
>
> See, that is why I think it is a ZFS issue. Because I did that.
> I created a UFS filesystem on the same usb stick. Mounted it and did a
> "dd if=/dev/zero of=/mnt/file".
> The systemload goes +0.6 instead if +10.3.
>
> See:
> CPU:  0.0% user,  0.0% nice,  0.6% system,  0.0% interrupt, 99.3% idle
> Mem: 832M Active, 960M Inact, 7017M Wired, 2600K Cache, 1237M Buf, 3063M Free
> Swap: 8192M Total, 8192M Free
>
>   PID USERNAME    THR PRI NICE   SIZE    RES STATE   C   TIME   WCPU COMMAND
> 38261 root          1  46    0  5776K  1112K wdrain  7   0:07  4.98% dd
>
> But when using it as cache device for zfs:
>
> CPU:  0.0% user,  0.0% nice, 11.9% system,  0.0% interrupt, 88.1% idle
> Mem: 832M Active, 193M Inact, 5782M Wired, 2592K Cache, 1237M Buf, 5066M Free
> Swap: 8192M Total, 8192M Free
>
> The funny thing is that when I add the device (and some cache is added
> to it) the load is normal. But the load goes up when nothing is
> written to it (or beeing read from it)

How do you measure that nothing is read or written to it?

Please check with
   gstat -f '^<DEVICE>$'
if there are really no reads/writes to the device (please replace  
<DEVICE> with the name of your USB device, e.g. da0).

If you see writes, I would say
  - this is the reason for the load
  - your cache is on the way to be filled with
    useful data

If gstat shows zero activity, I suggest to run 'top -S' and look at  
the process(es) which consume about 10% CPU (do not take care about  
the idle process). Based upon this we can maybe suggest further things  
to investigate.

Bye,
Alexander.

-- 
Is a tattoo real, like a curb or a battleship?  Or are we suffering in
Safeway?

http://www.Leidinger.net    Alexander @ Leidinger.net: PGP ID = B0063FE7
http://www.FreeBSD.org       netchild @ FreeBSD.org  : PGP ID = 72077137



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20101116135557.66601irt6kd1gndw>