> Be careful here.  If you are using files that have no
> data in them yet
> you will get much better compression than later in
> life.  Judging by
> the fact that you got only 12.5x, I suspect that your
> files are at
> least partially populated.  Expect the compression to
> get worse over
> time.

I do expect it to get somewhat worse over time -- I don't expect such 
compression forever but didn't want to get too detailed in my original 
question. :-)   A lot of the data points I'm collecting (40%+) are quite static 
or change slowly over time - representing, for example, disk space, TCP errors 
(hopefully always zero! :-)) or JVM jstats of development JVM instances that 
get only small occasional bursts in activity. 

(snip)
> Read the first 8K
> Seek to a particular spot
> Take a lock
> Seek
> Write 64 bytes
> seek
> Write 5408 bytes
> close

Interesting, that looks a lot different than what I'm seeing.  Maybe something 
different in the implementation (I'm using perl RRDs and RRD 1.2.11).  Note 
that RRDFILE.rrd is 125504 bytes on disk.  I'll have to look into it a little 
deeper as it certainly would help performance to just read the preamble and 
modify the pieces of the RRD that need to change.  Maybe it's because my RRD's 
are quite small, they contain only one DS and I tuned down the number and 
length of the RRA's while fighting the performance issues that ultimately ended 
in me moving this to an opensolaris based box.

open("RRDFILE.rrd", O_RDONLY) = 14
fstat64(14, 0x080473E0)                         = 0
fstat64(14, 0x08047310)                         = 0
ioctl(14, TCGETA, 0x080473AC)                   Err#25 ENOTTY
read(14, " R R D\0 0 0 0 3\0\0\0\0".., 125952)  = 125504
llseek(14, 0, SEEK_CUR)                         = 125504
lseek(14, 21600, SEEK_SET)                      = 21600
lseek(14, 1600, SEEK_SET)                       = 1600
read(14, "\0\0\0\0\0\0F8FF\0\0\0\0".., 125952)  = 123904
llseek(14, 0xFFFFFFFFFFFE24F8, SEEK_CUR)        = 3896
close(14)                                       = 0
open("RRDFILE.rrd", O_RDWR) = 14
fstat64(14, 0x08047320)                         = 0
fstat64(14, 0x08047250)                         = 0
ioctl(14, TCGETA, 0x080472EC)                   Err#25 ENOTTY
read(14, " R R D\0 0 0 0 3\0\0\0\0".., 125952)  = 125504
llseek(14, 0, SEEK_CUR)                         = 125504
lseek(14, 0, SEEK_END)                          = 125504
llseek(14, 0, SEEK_CUR)                         = 125504
llseek(14, 0, SEEK_CUR)                         = 125504
lseek(14, 1504, SEEK_SET)                       = 1504
fcntl(14, F_SETLK, 0x08047430)                  = 0
mmap(0x00000000, 125504, PROT_READ|PROT_WRITE, MAP_SHARED, 14, 0) = 0xFE25F000
munmap(0xFE25F000, 125504)                      = 0
llseek(14, 0, SEEK_CUR)                         = 1504
lseek(14, 880, SEEK_SET)                        = 880
write(14, " :B0 x E\0\0\0\0 1 5\0\0".., 624)    = 624
close(14)                                       = 0

(I did an strace on linux, also, which is using RRD 1.0.49, and it looks about 
the same - appears to read the whole thing.  Maybe it's something in RRDs or 
the way I'm using it)

Thanks for spending some of your time analyzing my problem.  :-)

-Andy
 
 
This message posted from opensolaris.org
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to