[Linux-bruxelles] Bench serveur : OpenSSL speed (RPS OVH, Celeron, VIA, P3, Athlon)

Didier Misson didier.linux at gmail.com
Ven 4 Jan 08:22:36 CET 2008


Frederic Peters a écrit :
> Didier Misson écrivait :
> 
>> Je voudrais faire quelques tests simples pour comparer les performances
>> de différents PC ou serveurs :
>>
>> - cpu
>> - copro math (décompression, conversion de taille photo) : le cpu VIA
>> Samuel C3 est particulièrement faible de ce côté...
> 
> Aujourd'hui, les seules utilisations qui demandent de la puissance au
> processeur[1] concernent la crypto, que ce soit pour servir des pages
> en HTTPS, utiliser rsync/ssh ou chiffrer des données; pour mesurer les
> performances, je passe donc par "openssl speed", par exemple :
>   openssl speed dsa512
>   openssl speed -evp aes-128-cbc
> 
> 
>> - ram
> 
> Aucune idée, ça n'a jamais été un facteur de performance [2].
> 
> 
>> - disk
> 
> Là, la référence, c'est bonnie (paquet bonnie++ dispo dans Debian)
> mais je n'ai jamais utilisé.

Voilà quelques tests rapides en OpenSSL :

=============================================================================
mon desktop : AMD Athlon 1800+ :
------------------------------

processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 6
model           : 8
model name      : AMD Athlon(tm) XP 1800+
stepping        : 0
cpu MHz         : 1526.581
cache size      : 256 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca
cmov pat pse36 mmx fxsr sse syscall mmxext 3dnowext 3dnow up ts
bogomips        : 3054.68
clflush size    : 32



didier at didier-desktop:~$ openssl speed dsa512
Doing 512 bit sign dsa's for 10s: 12274 512 bit DSA signs in 9.01s
Doing 512 bit verify dsa's for 10s: 10477 512 bit DSA verify in 9.03s
OpenSSL 0.9.8e 23 Feb 2007
built on: Mon Oct 22 13:17:36 UTC 2007
options:bn(64,32) md2(int) rc4(idx,int) des(ptr,risc1,16,long)
aes(partial) blowfish(idx)
compiler: gcc-4.1 -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS
-D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -O3
-march=i686 -Wa,--noexecstack -g -Wall -DOPENSSL_BN_ASM_PART_WORDS
-DOPENSSL_IA32_SSE2 -DSHA1_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM
available timing options: TIMES TIMEB HZ=100 [sysconf value]
timing function used: times
                  sign    verify    sign/s verify/s
dsa  512 bits 0.000734s 0.000862s   1362.3   1160.2




didier at didier-desktop:~$ openssl speed -evp aes-128-cbc
Doing aes-128-cbc for 3s on 16 size blocks: 5550016 aes-128-cbc's in 2.71s
Doing aes-128-cbc for 3s on 64 size blocks: 2504397 aes-128-cbc's in 2.91s
Doing aes-128-cbc for 3s on 256 size blocks: 756155 aes-128-cbc's in 2.92s
Doing aes-128-cbc for 3s on 1024 size blocks: 200244 aes-128-cbc's in 2.94s
Doing aes-128-cbc for 3s on 8192 size blocks: 25403 aes-128-cbc's in 2.92s
OpenSSL 0.9.8e 23 Feb 2007
built on: Mon Oct 22 13:17:36 UTC 2007
options:bn(64,32) md2(int) rc4(idx,int) des(ptr,risc1,16,long)
aes(partial) blowfish(idx)
compiler: gcc-4.1 -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS
-D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -O3
-march=i686 -Wa,--noexecstack -g -Wall -DOPENSSL_BN_ASM_PART_WORDS
-DOPENSSL_IA32_SSE2 -DSHA1_ASM -DMD5_ASM -DRMD160_ASM -DAES_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
aes-128-cbc      32767.62k    55079.52k    66293.04k    69744.85k
71267.59k



==============================================================================
ancien serveur @ home : VIA Samuel C3 à 800 MHz (partie math à 400 MHz)
-----------------------------------------------

processor       : 0
vendor_id       : CentaurHauls
cpu family      : 6
model           : 7
model name      : VIA Samuel 2
stepping        : 3
cpu MHz         : 796.102
cache size      : 64 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu de tsc msr cx8 mtrr pge mmx 3dnow
bogomips        : 1594.16



abrasd02:~# openssl speed dsa512
Doing 512 bit sign dsa's for 10s: 1194 512 bit DSA signs in 8.91s
Doing 512 bit verify dsa's for 10s: 827 512 bit DSA verify in 7.43s
OpenSSL 0.9.8c 05 Sep 2006
built on: Fri Sep 28 20:45:54 UTC 2007
options:bn(64,32) md2(int) rc4(idx,int) des(ptr,risc1,16,long)
aes(partial) blowfish(idx)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT
-DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -O3 -Wa,--noexecstack -g
-Wall
available timing options: TIMES TIMEB HZ=100 [sysconf value]
timing function used: times
                  sign    verify    sign/s verify/s
dsa  512 bits 0.007462s 0.008984s    134.0    111.3


Vraiment très lent !


abrasd02:~# openssl speed -evp aes-128-cbc
Doing aes-128-cbc for 3s on 16 size blocks: 975313 aes-128-cbc's in 2.98s
Doing aes-128-cbc for 3s on 64 size blocks: 263539 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 256 size blocks: 67225 aes-128-cbc's in 3.01s
Doing aes-128-cbc for 3s on 1024 size blocks: 16878 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 8192 size blocks: 2114 aes-128-cbc's in 3.01s
OpenSSL 0.9.8c 05 Sep 2006
built on: Fri Sep 28 20:45:54 UTC 2007
options:bn(64,32) md2(int) rc4(idx,int) des(ptr,risc1,16,long)
aes(partial) blowfish(idx)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT
-DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -O3 -Wa,--noexecstack -g
-Wall
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
aes-128-cbc       5236.58k     5622.17k     5717.48k     5761.02k
5753.45k



La première conclusion est que le VIA Samuel C3 à 800 Mhz est TRES loin
derrière le P3 à 866 MHz...

Il est possible qu'il soit mal configuré ici et que ses capacités de
cryptage (voir mail précédent) inclu en hardware dans le VIA C3, ne soit
pas utilisé.
Mais clairement, un programme non optimalisé qui fait des maths, de la
décompression, du calcul d'images, ça va trainer un max !


==============================================================================
nouveau serveur @ home : Pentium 3 à 866 MHz
--------------------------------------------

processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 8
model name      : Pentium III (Coppermine)
stepping        : 6
cpu MHz         : 863.918
cache size      : 256 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca
cmov pat pse36 mmx fxsr sse up
bogomips        : 1728.90
clflush size    : 32




didier at abrasd03:~$ openssl speed dsa512
Doing 512 bit sign dsa's for 10s: 6641 512 bit DSA signs in 9.86s
Doing 512 bit verify dsa's for 10s: 5524 512 bit DSA verify in 9.98s
OpenSSL 0.9.8e 23 Feb 2007
built on: Mon Oct 22 13:17:36 UTC 2007
options:bn(64,32) md2(int) rc4(idx,int) des(ptr,risc1,16,long)
aes(partial) blowfish(idx)
compiler: gcc-4.1 -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS
-D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -O3
-march=i686 -Wa,--noexecstack -g -Wall -DOPENSSL_BN_ASM_PART_WORDS
-DOPENSSL_IA32_SSE2 -DSHA1_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM
available timing options: TIMES TIMEB HZ=100 [sysconf value]
timing function used: times
                  sign    verify    sign/s verify/s
dsa  512 bits 0.001485s 0.001807s    673.5    553.5


didier at abrasd03:~$ openssl speed -evp aes-128-cbc
Doing aes-128-cbc for 3s on 16 size blocks: 2663970 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 64 size blocks: 1225320 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 256 size blocks: 388792 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 1024 size blocks: 104513 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 8192 size blocks: 13326 aes-128-cbc's in 3.00s
OpenSSL 0.9.8e 23 Feb 2007
built on: Mon Oct 22 13:17:36 UTC 2007
options:bn(64,32) md2(int) rc4(idx,int) des(ptr,risc1,16,long)
aes(partial) blowfish(idx)
compiler: gcc-4.1 -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS
-D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -O3
-march=i686 -Wa,--noexecstack -g -Wall -DOPENSSL_BN_ASM_PART_WORDS
-DOPENSSL_IA32_SSE2 -DSHA1_ASM -DMD5_ASM -DRMD160_ASM -DAES_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
aes-128-cbc      14207.84k    26140.16k    33176.92k    35673.77k
36388.86k




===========================================================================

Serveur Kimsufi @  OVH : Celeron 2 Ghz

processor       : 0
vendor_id       : GenuineIntel
cpu family      : 15
model           : 4
model name      : Intel(R) Celeron(R) CPU 2.66GHz
stepping        : 9
cpu MHz         : 2000.502
cache size      : 256 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 5
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss
ht tm pbe lm constant_tsc up pni monitor ds_cpl tm2 cid cx16 xtpr lahf_lm
bogomips        : 4004.36


didier at ks:~$ openssl speed dsa512
Doing 512 bit sign dsa's for 10s: 12426 512 bit DSA signs in 9.99s
Doing 512 bit verify dsa's for 10s: 10165 512 bit DSA verify in 9.75s
OpenSSL 0.9.8c 05 Sep 2006
built on: Fri Sep 28 20:42:52 UTC 2007
options:bn(64,32) md2(int) rc4(idx,int) des(ptr,risc1,16,long)
aes(partial) blowfish(idx)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT
-DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -O3 -march=i686
-Wa,--noexecstack -g -Wall -DOPENSSL_BN_ASM_PART_WORDS
-DOPENSSL_IA32_SSE2 -DSHA1_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM
available timing options: TIMES TIMEB HZ=100 [sysconf value]
timing function used: times
                  sign    verify    sign/s verify/s
dsa  512 bits 0.000804s 0.000959s   1243.8   1042.6



didier at ks:~$ openssl speed -evp aes-128-cbc
Doing aes-128-cbc for 3s on 16 size blocks: 5341588 aes-128-cbc's in 2.62s
Doing aes-128-cbc for 3s on 64 size blocks: 2502433 aes-128-cbc's in 2.68s
Doing aes-128-cbc for 3s on 256 size blocks: 874171 aes-128-cbc's in 2.88s
Doing aes-128-cbc for 3s on 1024 size blocks: 246631 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 8192 size blocks: 28496 aes-128-cbc's in 2.75s
OpenSSL 0.9.8c 05 Sep 2006
built on: Fri Sep 28 20:42:52 UTC 2007
options:bn(64,32) md2(int) rc4(idx,int) des(ptr,risc1,16,long)
aes(partial) blowfish(idx)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT
-DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -O3 -march=i686
-Wa,--noexecstack -g -Wall -DOPENSSL_BN_ASM_PART_WORDS
-DOPENSSL_IA32_SSE2 -DSHA1_ASM -DMD5_ASM -DRMD160_ASM -DAES_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
aes-128-cbc      32620.38k    59759.59k    77704.09k    84183.38k
84886.99k






===============================================================================

Serveur RPS @ OVH : Celeron 1,3 GHz (mais Core plus récent, plus performant)


processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 14
model name      : Intel(R) Celeron(R) CPU          215  @ 1.33GHz
stepping        : 8
cpu MHz         : 1333.405
cache size      : 512 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 10
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe
 nx constant_tsc up arch_perfmon bts pni monitor tm2 xtpr
bogomips        : 2668.57
clflush size    : 64



r10068:~# openssl speed dsa512
Doing 512 bit sign dsa's for 10s: 13236 512 bit DSA signs in 9.99s
Doing 512 bit verify dsa's for 10s: 11163 512 bit DSA verify in 10.00s
OpenSSL 0.9.8c 05 Sep 2006
built on: Fri Sep 28 20:42:52 UTC 2007
options:bn(64,32) md2(int) rc4(idx,int) des(ptr,risc1,16,long)
aes(partial) blowfish(idx)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT
-DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -O3 -march=i686
-Wa,--noexecstack -g -Wall -DOPENSSL_BN_ASM_PART_WORDS
-DOPENSSL_IA32_SSE2 -DSHA1_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM
available timing options: TIMES TIMEB HZ=100 [sysconf value]
timing function used: times
                  sign    verify    sign/s verify/s
dsa  512 bits 0.000755s 0.000896s   1324.9   1116.3


r10068:~# openssl speed -evp aes-128-cbc
Doing aes-128-cbc for 3s on 16 size blocks: 5110189 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 64 size blocks: 2232403 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 256 size blocks: 687970 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 1024 size blocks: 183620 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 8192 size blocks: 23379 aes-128-cbc's in 3.00s
OpenSSL 0.9.8c 05 Sep 2006
built on: Fri Sep 28 20:42:52 UTC 2007
options:bn(64,32) md2(int) rc4(idx,int) des(ptr,risc1,16,long)
aes(partial) blowfish(idx)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT
-DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -O3 -march=i686
-Wa,--noexecstack -g -Wall -DOPENSSL_BN_ASM_PART_WORDS
-DOPENSSL_IA32_SSE2 -DSHA1_ASM -DMD5_ASM -DRMD160_ASM -DAES_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
aes-128-cbc      27254.34k    47624.60k    58706.77k    62675.63k
63840.26k



Le RPS semble relativement performant.
Evidemment, ce n'est PAS un Core 2 ou Core 4 haut de gamme !
Mais il se défend par rapport à un Celeron 2 Ghz,
il est au dessu de mon P3 de récup ...
(et ne parlons pas du VIA C3 à 800 Mhz)

Il n'est pas évident de dire qui est le meilleur entre mon desktop
Athlon 1800+, le Kimsufi OVH Celeron 2Ghz et le RPS OVH Celeron 1,3 GHz

Les écarts ne me semblent pas trop grands.

En tout cas, il ne faut pas oublier la TRES faible consommation
électrique de ces cartes Intel utilisées dans les RPS OVH

http://www.intel.com/cd/products/services/emea/fra/motherboards/347221.htm
http://www.intel.com/cd/products/services/emea/fra/motherboards/374146.htm

http://www.imedialinux.com/intel-d201gly-power-consumption-and-performance.html


Donc, pour mon usage, ces cartes mères Intel low-power low-cost,
semblent intéressantes.
Je pourrais en acheter personnellement. (j'y réfléchi en tout cas)


--------------------------------------------------------------------

Pour le serveur RPS chez OVH lui-même, une des choses certainement
limitatives pour les grosses applications, c'est le fait que ces
serveurs OVH "Real Private Server", s'ils ont une vraie carte mère, cpu
et mémoire, propre,
n'ont pas leur disque dur propre !
Ce sont des disques SAN RAID, mais donc des disques partagés,
en iSCSI ou NFS
Pour le moment, les RPS en beta sont en iSCSI.

Je vais tester cette partie là avec Bonnie, ce WE j'espère.

-- 
Didier

Google Talk : didier.misson at gmail.com
Jabber : didier.misson at amessage.be
http://www.misson.net




Plus d'informations sur la liste de diffusion Linux-bruxelles