Gjournal reporting 1/2 the speed of non journaled? - examples

Eric Anderson anderson at freebsd.org
Fri Aug 17 21:30:33 PDT 2007


N. Harrington wrote:
> --- Pawel Jakub Dawidek <pjd at FreeBSD.org> wrote:
> 
>> On Thu, Aug 16, 2007 at 06:02:09PM -0700, N.
>> Harrington wrote:
>>>  With ZFS, I have not seen much new going on with
>>> gjournal. I am curious what the status of gjournal
>> and
>>> if it will likely be included with 6.3 (whenever
>> that
>>> is due)
>> That was the plan, but I'm not yet sure if I'll find
>> time to do it.
>>
>>>  Also, as of late, I have been using it with
>>> 6.2-STABLE via the patches and I seem to be
>> getting
>>> 1/2 the transfer speeds compared to non journaled
>>> disks. It seems like this is recent as previous
>> tests
>>> showed it as quite fast.
>>>
>>>  Any suggestions on why this could be happening
>>> greatly appreciated.
>>>
>>>  tested via 
>>>  dd if=/dev/zero of=./testfile bs=16 count=16384
>> Gjournal is ~two times faster than UFS+SU for many
>> small, random and
>> parallel writes (such as running few 'tar x'
>> processes), but is two
>> times slower than UFS+SU for one sequential write
>> stream, as there is no
>> much that can be optimized there.
>>
>>>  With disks getting larger and larger, why is it
>>> taking so long for a journaled filesystem to be
>>> standard on BSD?
>> We have ZFS now, we don't need journaled file
>> system:)
> 
> 
>  Here is an example of my tests and what I am
> experiencing.
> 
> FreeBSD server.old 6.2-PRERELEASE FreeBSD
> 6.2-PRERELEASE  #1: Wed Nov 22 21:20:08 PST 2006  
> 
> With Gjournal:
> root@:/1-journal> time dd if=/dev/zero
> of=/1-journal/testfile1 bs=16k
> count=16384
> 16384+0 records in
> 16384+0 records out
> 268435456 bytes transferred in 10.257279 secs
> (26170240 bytes/sec)
> dd if=/dev/zero of=/cache1/testfile1 bs=16k
> count=16384  0.02s user 0.80s system 7% cpu 10.393
> total
> 
> Without Gjournal:
> root at 1:/2-UFS> time dd if=/dev/zero of=/2/testfile1
> bs=16k
>  count=16384 
> 16384+0 records in
> 16384+0 records out
> 268435456 bytes transferred in 26.682630 secs
> (10060307 bytes/sec)
> dd if=/dev/zero of=/home/testfile1 bs=16k count=16384 
> 0.01s user 0.61s system 2% cpu 28.448 total
> 
>  As you can see, with this test, using Gjournaling
> tested faster.
> 
> Now on a new build:
> 
> FreeBSD newtest 6.2-STABLE FreeBSD 6.2-STABLE #1: Tue
> Aug 14 14:31:53 PDT 2007
> nicole at newtest:/usr/obj/spare/src/sys/GENERAL  amd64
> 
> Without Gjournal
> root at newtest:/home/nicole> time dd if=/dev/zero
> of=./testfile bs=16k count=16384
> 16384+0 records in
> 16384+0 records out
> 268435456 bytes transferred in 4.749401 secs (56519854
> bytes/sec)
> dd if=/dev/zero of=./testfile bs=16k count=16384 
> 0.01s user 0.45s system 9% cpu 4.751 total
> 
> With Gjournaling:
> root at newtest:/home/nicole> time dd if=/dev/zero
> of=/tmp/testfile bs=16k
> count=16384
> 16384+0 records in
> 16384+0 records out
> 268435456 bytes transferred in 7.505348 secs (35765891
> bytes/sec)
> dd if=/dev/zero of=/tmp/testfile bs=16k count=16384 
> 0.00s user 0.57s system 7% cpu 7.517 total
> 
>  So as shown here, my test on an older 6.2 (with same
> patches) showed improved performance. But now on a new
> 6.2 build system, shows decreased performance.

Could it be that you are not writing quite enough data to fully test it? 
  Maybe in the 'old' server case, you were stopping the write *just* 
before the journal switch happened, so you happened to see the best 
sequential write throughput.  The other tests could happen to fall 
across a journal switch, which would increase the time for the test, 
probably dropping the throughput in half.. What do you think?


Eric






More information about the freebsd-fs mailing list