> 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