Really just to see how it compares.
That's difficult. You'd need to compare it to x86_64 and this is a field
I'm not sound regarding performance figures.
Does Sparc offer any advantages
over Intel/AMD with regard to latency (LVS-NAT)?
Ufff, this is close to impossible to answer I believe. This depends on
the Linux support for either architecture, the architecture itself
(pipelining, branching, fetching, fast path handling, DMA addressing, L1
caching, ..., you name it)
Would it handle SSL
connections better, worse, or no different?
Hmm, SSL is handled in the user space normally so a test can easily be done:
sf-lb:~ # openssl speed aes-128-cbc dsa1024 blowfish
[snipped output]
OpenSSL 0.9.8a 11 Oct 2005
built on: Tue Dec 13 15:25:48 PST 2005
options:bn(64,32) md2(int) rc4(ptr,char) des(idx,cisc,16,long)
aes(partial) blowfish(ptr)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT
-DDSO_DLFCN -DHAVE_DLFCN_H -DB_ENDIAN -DTERMIO -O3 -mcpu=v9 -Wa,-Av8plus
-g -Wall -DULTRASPARC -DBN_DIV2W -DMD5_ASM
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 8786.66k 9559.27k 9790.72k 9851.56k
9865.90k
aes-128 cbc 8088.99k 8710.63k 8990.57k 9040.65k
9024.85k
sign verify sign/s verify/s
dsa 1024 bits 0.019362s 0.023641s 51.6 42.3
sf-lb:~ # cat /proc/cpuinfo
cpu : TI UltraSparc IIe (Hummingbird)
fpu : UltraSparc IIe integrated FPU
promlib : Version 3 Revision 0
prom : 4.0.6
type : sun4u
ncpus probed : 1
ncpus active : 1
Cpu0Bogo : 799.53
Cpu0ClkTck : 0000000017d78400
MMU Type : Spitfire
rnibali@marge:~ > openssl speed aes-128-cbc dsa1024 blowfish
[snipped output]
OpenSSL 0.9.8 05 Jul 2005
built on: Fri Jul 15 21:17:33 MEST 2005
options:bn(64,32) md2(int) rc4(ptr,char) des(ptr,risc1,16,long)
aes(partial) idea(int) blowfish(ptr)
compiler: cc -KPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT
-DDSO_DLFCN -DHAVE_DLFCN_H -xarch=v8 -xO5 -xstrconst -xdepend -Xa
-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 12598.89k 13169.03k 13567.31k 13700.06k
14611.85k
aes-128 cbc 10439.67k 13039.14k 13896.34k 14560.03k
15454.18k
sign verify sign/s verify/s
dsa 1024 bits 0.025449s 0.030960s 39.3 32.3
rnibali@marge:~ > openssl speed aes-128-cbc dsa1024 blowfish -multi 4
[snipped output]
OpenSSL 0.9.8 05 Jul 2005
built on: Fri Jul 15 21:17:33 MEST 2005
options:bn(64,32) md2(int) rc4(ptr,char) des(ptr,risc1,16,long)
aes(partial) idea(int) blowfish(ptr)
compiler: cc -KPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT
-DDSO_DLFCN -DHAVE_DLFCN_H -xarch=v8 -xO5 -xstrconst -xdepend -Xa
-DB_ENDIAN -DBN_DIV2W
available timing options: TIMES TIMEB HZ=100 [sysconf value]
timing function used:
blowfish cbc 20775.77k 24961.05k 28295.89k 32870.90k
29104.52k
aes-128 cbc 22505.43k 24205.80k 29679.91k 31653.57k
31783.24k
sign verify sign/s verify/s
dsa 1024 bits 0.012902s 0.014434s 77.5 69.3
rnibali@marge:~ > /usr/sbin/prtdiag | ggrep -A6 CPU
========================= CPUs =========================
Run Ecache CPU CPU
Brd CPU Module MHz MB Impl. Mask
--- --- ------- ----- ------ ------ ----
SYS 0 0 400 4.0 US-II 10.0
SYS 1 1 400 4.0 US-II 10.0
SYS 2 2 400 4.0 US-II 10.0
SYS 3 3 400 4.0 US-II 10.0
ratz@webphish:~> openssl speed aes-128-cbc dsa1024 blowfish
[snipped output]
OpenSSL 0.9.7d 17 Mar 2004
built on: Fri Oct 14 15:46:43 UTC 2005
options:bn(64,32) md2(int) rc4(idx,int) des(ptr,risc1,16,long)
aes(partial) blowfish(idx)
compiler: gcc -fPIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN
-DHAVE_DLFCN_H -DOPENSSL_NO_KRB5 -DL_ENDIAN -DTERMIO -O3
-fomit-frame-pointer -mcpu=pentium -Wall -DOPENSSL_NO_RC5
-DOPENSSL_NO_IDEA -O2 -march=i586 -mcpu=i686 -fmessage-length=0 -Wall
-fomit-frame-pointer -fno-strict-aliasing -DTERMIO -Wall
-fbranch-probabilities -DSHA1_ASM -DMD5_ASM -DRMD160_ASM
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 57522.74k 61794.01k 63494.80k 62822.58k
61587.04k
aes-128 cbc 39632.01k 40751.17k 41491.45k 41643.87k
41790.78k
sign verify sign/s verify/s
dsa 1024 bits 0.0018s 0.0022s 545.6 449.8
ratz@webphish:~> cat /proc/cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 6
model : 6
model name : AMD Athlon(tm) XP 1800+
stepping : 2
cpu MHz : 1533.026
cache size : 256 KB
If you even the numbers out, my 32bit Desktop machine out-performs any
64bit Sparc/Ultrasparc quad configuration on Solaris or Linux ;). It's
not surprising, Sparc CPUs are not the fastest in crunching. Oh, the
Sparc test was done while the CPUs were idle, whereas my desktop was
playing mp3s and I was watching a DVD, having my java-based modeler open
and git pulling Linus' kernel (don't ask). Idle time on my desktop
machine was down to 0%. And still the Sparcs don't cut it.
Could it handle more real
servers than an x86 counterpart?
No possible to answer, it's actually more a matter of your network card
than your CPU.
Regards,
Roberto Nibali, ratz
--
echo
'[q]sa[ln0=aln256%Pln256/snlbx]sb3135071790101768542287578439snlbxq' | dc
|