At my work, I have both a Sun T5220 and M3000. The T5220 has 64 ~1.2 GHz “threads” composed of one CPU with 8 cores of 8 threads each. The M3000 has 8 ~2.75GHz threads composed of 4 cores of 2 threads each.
Product installs were taking much longer than usual, and my customer asked me to find out why. The answer: his install is not very parallel, so being limited to a single slower thread really killed the uncompress and install time.
Here are some numbers. Tested on Solaris 10, with files in /tmp which is mounted on RAM. Input file is Sun Studio 12. The .tar file was removed in between tests, and de/compressions of the files were performed before timing them. Tests were repeated once :).
$ ls -l studio12u1-sol-sparc.tar*
-rw-r--r-- 1 alucard 1000 530489344 Nov 19 14:57 studio12u1-sol-sparc.tar
-rw-r--r-- 1 alucard 1000 523107141 Nov 19 14:57 studio12u1-sol-sparc.tar.bz2
-rw-r--r-- 1 alucard 1000 522070280 Nov 19 15:15 studio12u1-sol-sparc.tar.gz
M3000:
$ time gunzip studio12u1-sol-sparc.tar.gz
real 0m6.210s
user 0m5.041s
sys 0m1.168s
$ time bunzip2 studio12u1-sol-sparc.tar.bz2
real 2m13.908s
user 2m11.729s
sys 0m2.110s
T5220:
$ time gunzip studio12u1-sol-sparc.tar.gz
real 0m33.612s
user 0m30.704s
sys 0m2.905s
$ time bunzip2 studio12u1-sol-sparc.tar.bz2
real 6m29.298s
user 6m25.302s
sys 0m3.985s
The M3000 gunzip’d in 20% of the time the T5220 did, and bunzip’d in 33% of the time. Expected, once you look, because a single thread is much slower on one than on the other.
Now here’s the T5220 with parallel un/compression tools, pigz and pbzip2 (available for Solaris from SunFreeware):
$ time unpigz studio12u1-sol-sparc.tar.gz
real 0m8.400s
user 0m9.779s
sys 0m3.875s
$ time pbunzip2 studio12u1-sol-sparc.tar.bz2
real 0m32.492s
user 8m23.074s
sys 0m4.807s
Parallel gunzip completed in 25% of the time as single-threaded on the T5220, and parallel bunzip2 completed in 10% of the time! Amazing what throwing 63 more threads on the task can do!
So if you’re wondering why your Sun T series is slow – try doing more things in parallel :).
Note: to take advantage of pbunzip2’s parallel decompression, the files must be compressed with pbzip2 (said files can still be decompressed with plain bzip2).
Comment
Commenting is closed for this article.
Yet Another GuruPlug custom kernel HOWTO Mysterious Solaris errors