This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
> 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