Measuring approximate CPU speeds with openssl
I use a variety of hardware in my day-to-day activities, and was curious to see how they compared to each other. While I could run a micro benchmarking tool to get detailed information on memory, cpu, network and disk throughput, I thought it would be easier to use openssl’s ‘speed’ option to get a rough approximation of each machines capabilities. The results are listed below:
Ultra 10 with (1) 440 MHZ UltraSPARC IIi CPU:
$ openssl speed blowfish
Doing blowfish cbc for 3s on 16 size blocks: 3028371 blowfish cbc's in 2.98s Doing blowfish cbc for 3s on 64 size blocks: 835818 blowfish cbc's in 2.98s Doing blowfish cbc for 3s on 256 size blocks: 214738 blowfish cbc's in 2.99s Doing blowfish cbc for 3s on 1024 size blocks: 54125 blowfish cbc's in 2.99s Doing blowfish cbc for 3s on 8192 size blocks: 6279 blowfish cbc's in 2.98s OpenSSL 0.9.7d 17 Mar 2004 built on: date not available options:bn(64,32) md2(int) rc4(ptr,char) des(ptr,risc1,16,long) aes(partial) blowfish(ptr) compiler: information not available available timing options: TIMES TIMEB HZ=100 [sysconf value] timing function used: times The 'numbers' are in 1000s of bytes per second processed. type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes blowfish cbc 16259.71k 17950.45k 18385.59k 18536.45k 17260.93k
Fujitsu 250 with (1) 900 MHZ UltraSPARC64V CPU:
$ openssl speed blowfish
Doing blowfish cbc for 3s on 16 size blocks: 4086473 blowfish cbc's in 3.00s Doing blowfish cbc for 3s on 64 size blocks: 1095008 blowfish cbc's in 3.00s Doing blowfish cbc for 3s on 256 size blocks: 278583 blowfish cbc's in 3.00s Doing blowfish cbc for 3s on 1024 size blocks: 69931 blowfish cbc's in 3.00s Doing blowfish cbc for 3s on 8192 size blocks: 8754 blowfish cbc's in 2.99s OpenSSL 0.9.7d 17 Mar 2004 built on: Wed Mar 17 14:57:19 EST 2004 options:bn(64,32) md2(int) rc4(ptr,char) des(idx,cisc,16,long) aes(partial) idea(int) blowfish(ptr) compiler: gcc -fPIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DOPENSSL_NO_KRB5 -O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W available timing options: TIMES TIMEB HZ=100 [sysconf value] timing function used: times The 'numbers' are in 1000s of bytes per second processed. type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes blowfish cbc 21794.52k 23360.17k 23772.42k 23869.78k 23984.20k
Powerbook G4 with (1) 1.5 GHZ G4:
$ openssl speed blowfish
To get the most accurate results, try to run this program when this computer is idle. Doing blowfish cbc for 3s on 16 size blocks: 6564697 blowfish cbc's in 2.28s Doing blowfish cbc for 3s on 64 size blocks: 1781080 blowfish cbc's in 2.23s Doing blowfish cbc for 3s on 256 size blocks: 482751 blowfish cbc's in 2.35s Doing blowfish cbc for 3s on 1024 size blocks: 118350 blowfish cbc's in 2.29s Doing blowfish cbc for 3s on 8192 size blocks: 15444 blowfish cbc's in 2.38s OpenSSL 0.9.7g 11 Apr 2005 built on: Mon Aug 22 04:38:18 PDT 2005 options:bn(64,32) md2(int) rc4(ptr,char) des(idx,cisc,16,long) aes(partial) blowfish(ptr) compiler: cc -arch i386 -arch ppc -g -Os -pipe -arch i386 -arch ppc -pipe -DOPENSSL_NO_IDEA -DFAR= available timing options: TIMEB USE_TOD HZ=100 [sysconf value] timing function used: getrusage The 'numbers' are in 1000s of bytes per second processed. type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes blowfish cbc 45997.30k 51100.78k 52532.67k 52895.72k 53053.47k
IBM HS20 Blade with (1) 3.0 GHZ Intel Xeon CPU w/ Hyperthreading:
$ /usr/sfw/bin/openssl speed blowfish
Doing blowfish cbc for 3s on 16 size blocks: 14394701 blowfish cbc's in 2.99s Doing blowfish cbc for 3s on 64 size blocks: 3827438 blowfish cbc's in 3.00s Doing blowfish cbc for 3s on 256 size blocks: 979301 blowfish cbc's in 3.00s Doing blowfish cbc for 3s on 1024 size blocks: 250691 blowfish cbc's in 3.00s Doing blowfish cbc for 3s on 8192 size blocks: 31586 blowfish cbc's in 3.00s OpenSSL 0.9.7d 17 Mar 2004 built on: date not available options:bn(64,32) md2(int) rc4(ptr,char) des(ptr,cisc,16,long) aes(partial) blowfish(ptr) compiler: information not available available timing options: TIMES TIMEB HZ=100 [sysconf value] timing function used: times The 'numbers' are in 1000s of bytes per second processed. type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes blowfish cbc 77028.50k 81652.01k 83567.02k 85569.19k 86250.84k








Harald Dumdey on January 10th, 2006
Hi Matty,
interessted in some results? I’ve collected some of my Linux-Machines ;-)
http://www.k-u-h.org/harry/index.php/2006/01/10/openssl-speed-linux/
Results of Solaris-Boxes have to follow…