[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 970923: 3.3.1 sync()



> Subject: Re: 970923:  3.3.1 sync()
> Glenn,
>
>
> I ran the tests on an ultra here, which has the same kernel patch
> level as my SS5, and don't see the problem either.  Perhaps the
> ultras are so fast that the problem is hidden in the granularity
> of our cpu measuments.  There is a 5-10x increase in the system
> CPU overhead between version 2.4.3 and 3.3.1 in the tests I've run.
>
> Here's a table summarizing what I've tested.
>
> On a SS10 and SS5 there is a big performance hit with the version 3.3.1
> on an NFS disk.  Do you have any guesses as to what is going on?
>
> I haven't tried 3.3.2b yet. I'll download it and try it.  I may also
> install the latest recommended patches from Sun on the SS5 and try again.
>
> Alas, we don't have many ultras, so I would like to get decent
> performance on older suns.
>
> Gordon
>
>
>
> netcdf                                  CPU     CPU
> version host    arch    patchlevel disk user    sys     clock
> 3.3.1   ripple  4m,ss5  103640-08  nfs   0.9    4.5     62
> 3.3.1   ripple  4m,ss5  103640-08  local 0.8    1.5     6
> 2.4.3   ripple  4m,ss5  103640-08  nfs   1.0    0.4     6
>
> 3.3.1   steam   4m,ss10 103640-03  nfs   0.6    2.5     41
> 3.3.1   steam   4m,ss10 103640-03  local 0.7    0.9     3
> 2.4.3   steam   4m,ss10 103640-03  nfs   0.7    0.4     5
>
> 3.3.1   urquell 4u,u1   103640-08  nfs   0.4    0.2     1
> 3.3.1   urquell 4u,u1   103640-08  local 0.4    0.3     2
> 2.4.3   urquell 4u,u1   103640-08  nfs   0.4    0.05    1
>
> 3.3.2b  buddy   4u,u2   103640-12  nfs   0.1    0.1     0
> 3.3.2b  buddy   4u,u2   103640-12  local 0.1    0.1     0

Gordon:

It turns out that with your test program,
netcdf-3 makes about 3 times the number of i/o system calls in the timed
section
as netcdf-2.
Of these, it makes about 4 times the number of write calls.
This is probably the problem you are seeing.

I have fixed this for the test program provided, so that now netcdf-3
makes about half the number of i/o system calls as netcdf-2.

I did several little things and a couple of big things.

The big things:

        1) moving variable fill outside of the copy loop.
                        (This now like netcdf-2)

        2) Aligned the beginning of sections to leave space for
                growth.  This feature is provisional. It causes
                files created by netcdf-3 to be different in the
                sense of 'cmp old new' because it leaves some
                empty space in the file. Old netcdf utilities should
                still be able to read the files with space in them,
                and the new ones can still read the old files.

Pick up ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-3.3.2atdb.tar.Z and
give it a try. If "big thing #2" above proves problematic, It can be
disabled at by undefineing the macro D_RNDUP at line 191 of libsrc/nc.c.

I'm leaving Monday night for most of the week.
Let me know how things go.

-glenn