SlideShare una empresa de Scribd logo
1 de 52
Descargar para leer sin conexión
PERFUG #3
les perfs système pour les nuls
29 août 2013
v1.0
Ludovic Piot
lpiot@octo.com
@lpiot
AGENDA
• Introduction
• les douleurs
• Pour quoi faire ?
• Présentation des outils
• CPU : openSSL / sysbench
• RAM : bandwidth / sysbench
• I/O : bonnie++ / iozone / sysbench
• requêtes HTTP : apachebench / wrk
• base de données : sysbench
INTRODUCTION
• APM vs. perfs unitaires des composants techniques
• Application Performance Monitoring Management
(cf. http://apmblo24g.compuware.com/2013/08/21/devops-is-changing-
the-m-in-apm-performance-requires-management-not-monitoring/)
• collaboration
• expertise
• actions préventives
• disclaimer : ce sont des perfs unitaires !
pas d’extrapolation des perfs applicatives
INTRODUCTION
applica&on)
socle)
technique)
système)
hyperviseur)/)matériel)
réseau)/)stockage)
• maîtrise réduite des couches
basses de l’infrastructure
• organisation des DSI en
silos de compétence
• collaboration verrouillée
• incompréhension du
besoin
• manque d’expert
disponible
LES DOULEURS
Source : Next Generation Datacenters in Financial Services : driving extreme efficiency and effective cost savings, byTony Bishop
• maîtrise réduite de
l’architecture
• composants mutualisés
• cloud
• virtualisation
LES DOULEURS
Source : Next Generation Datacenters in Financial Services : driving extreme efficiency and effective cost savings, byTony Bishop
POUR QUOI FAIRE ?
POUR QUOI FAIRE ?
• Choisir un composant technique
• CPU (taille du cache, hyperthreading,
jeu d’instructions)
• CIFS vs NFS
• RAID matériel vs. logiciel
• AWS EBS avec I/O garantis ou pas
• Apache vs. Nginx vs. shortfin
POUR QUOI FAIRE ?
• Tester des hypothèses de tuning
• réservation de RAM en virtualisation
• choix d’un filesystem (et de ses options)
• Tester des hypothèses d’architecture
• load-balancing en round-robin ou en dépassement de quota
• Apache devantTomcat pour servir les fichiers statiques
NUMBERS EVERYONE
SHOULD KNOW
The cost of I/O
(by Paolo Fragomeni)
https://medium.com/p/37a93d4e0013
L1-cache	

 3 cycles
L2-cache	

 14 cycles
RAM	

 250 cycles
Disk	

 41 000 000 cycles
Network	

 240 000 000 cycles
Numbers everyone should know
(by Jeff Dean, Google)
http://static.googleusercontent.com/external_content/untrusted_dlcp/
research.google.com/en/us/people/jeff/stanford-295-talk.pdf, page 13
L1 cache reference	

 0.5 ns
Branch mispredict	

 5 ns
L2 cache reference	

 7 ns
Mutex lock/unlock	

 100 ns
Main memory reference	

 100 ns
Compress 1K bytes with Zippy	

 10 000 ns
Send 2K bytes over 1 Gbps network	

 20 000 ns
Read 1 MB sequentially from memory	

 250 000 ns
Round trip within same datacenter	

 500 000 ns
Disk seek	

 10 000 000 ns
Read 1 MB sequentially from network	

 10 000 000 ns
Read 1 MB sequentially from disk	

 30 000 000 ns
Send packet CA->Netherlands->CA	

 150 000 000 ns
POUR QUOI FAIRE ?
• Optimiser le capacity planning
(et leTCO)
• CPU vs. GDU
• DB physique / virtuelle, mutualisée vs. dédiée
• NUMA, CPU overcommit
COMMENT FAIRE ?
COMMENT FAIRE ?
• Tester par comparaison…
• Outillage simple
• peu intrusif
• tests faciles à implémenter
• tests faciles à répliquer
• collecte des données facilitée
• analyse des données facilitée
CPU
CPU - Cas d’école : chiffrement applicatif
• Question :
• entre 2 processeurs donnés…
• l’un disposant du jeu d’instructions AES-NI (serveur R820)
• l’autre ne disposant pas de ce jeu d’instruction (serveur
R810)
• dans une machine virtuelleVMware…
• quelle différence de performance peut-on attendre…
• sur un traitement applicatif en Java de chiffrement symétrique ?
CPU - Cas d’école : chiffrement applicatif
• Traitement applicatif
CPU - Cas d’école : chiffrement applicatif
• CPUs à comparer
•
vendor_id : GenuineIntel
cpu family : 6
model : 26
model name : Intel(R) Xeon(R) CPU E7540 @ 2.00GHz
stepping : 4
cpu MHz : 1994.994
cache size : 18432 KB
fpu : yes
fpu_exception : yes
cpuid level : 11
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 syscall nx rdtscp lm
constant_tsc arch_perfmon pebs bts rep_good
xtopology tsc_reliable nonstop_tsc aperfmperf pni
ssse3 cx16 sse4_1 sse4_2 popcnt hypervisor lahf_lm
ida
bogomips : 3989.98
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management:
vendor_id : GenuineIntel
cpu family : 6
model : 37
model name : Intel(R) Xeon(R) CPU E5-4610 0 @
2.40GHz
stepping : 1
cpu MHz : 2399.999
cache size : 15360 KB
fpu : yes
fpu_exception : yes
cpuid level : 13
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 syscall nx rdtscp lm
constant_tsc arch_perfmon pebs bts rep_good
xtopology tsc_reliable nonstop_tsc aperfmperf pni
pclmulqdq ssse3 cx16 sse4_1 sse4_2 popcnt aes
hypervisor lahf_lm ida arat
bogomips : 4799.99
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management:
CPU - Cas d’école : chiffrement applicatif
• Résultats de tirs de perf applicatifs
220,00$ms$
270,00$ms$
320,00$ms$
370,00$ms$
420,00$ms$
470,00$ms$
520,00$ms$
R810$
R820$
en moy. = +7%
perc. 50 = +10%
perc. 30 = +20%
CPU - Cas d’école : chiffrement applicatif
• Une tendance se dégage… timidement
CPU - Outil : openSSL
root@xxx:/home/lpiot/poc_crypto-1.0 # openssl speed
(…)
Doing aes-256 cbc for 3s on 16 size blocks: 11985663 aes-256 cbc's in 3.00s
Doing aes-256 cbc for 3s on 64 size blocks: 4208819 aes-256 cbc's in 3.00s
Doing aes-256 cbc for 3s on 256 size blocks: 1135478 aes-256 cbc's in 3.00s
Doing aes-256 cbc for 3s on 1024 size blocks: 276032 aes-256 cbc's in 3.00s
Doing aes-256 cbc for 3s on 8192 size blocks: 38026 aes-256 cbc's in 3.00s
(…)
OpenSSL 0.9.8j-fips 07 Jan 2009
built on: Wed Jan 11 17:40:32 UTC 2012
options:bn(64,64) md2(int) rc4(16x,int) des(idx,cisc,4,long) aes(partial) blowfish(ptr2)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -
DMD32_REG_T=int -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-
unwind-tables -g -fomit-frame-pointer -fno-strict-aliasing -DTERMIO -Wall -fstack-protector -fprofile-use -
DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_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
(…)
md5 34109.60k 103963.82k 237333.50k 349442.05k 405222.74k
hmac(md5) 26625.30k 96095.57k 193378.38k 281552.21k 404815.87k
sha1 36680.54k 105444.36k 210998.62k 325011.46k 369740.46k
(…)
aes-128 cbc 77020.09k 117352.21k 135510.02k 141283.33k 142879.40k
aes-192 cbc 69790.14k 101752.17k 115271.42k 119376.21k 120384.17k
aes-256 cbc 63923.54k 89788.14k 96894.12k 94218.92k 103836.33k
(…)
aes-256 ige 90340.65k 93965.35k 96967.68k 97552.38k 97957.21k
sign verify sign/s verify/s
rsa 512 bits 0.000137s 0.000013s 7317.0 78349.9
rsa 1024 bits 0.000682s 0.000038s 1466.7 26624.4
rsa 2048 bits 0.004286s 0.000130s 233.3 7666.5
rsa 4096 bits 0.030486s 0.000488s 32.8 2047.4
sign verify sign/s verify/s
dsa 512 bits 0.000134s 0.000142s 7490.3 7039.3
dsa 1024 bits 0.000375s 0.000420s 2667.3 2383.6
dsa 2048 bits 0.001294s 0.001495s 772.6 668.7
CPU - Outil : openSSL
• Résultats des tirs openSSL
CPU - Outil : sysbench
• Déploiement
• disponible dans les repositories standards
• 170 ko
• dépendances : libc + libmysqlclient
• Info
• véritable boîte à outil : permet aussi de faire des tests sur
• le scheduler (option --test=threads)
• le mutex (option --test=mutex)
• les accès séquentiels / aléatoires à la mémoire (option --test=memory*)
• les accès séquentiels / aléatoires en I/O (option --test=fileio)
• le moteur de SGBD-R mySQL (option --test=oltp)
• manuel : http://sysbench.sourceforge.net/docs/
CPU - Outil : sysbench
• Usage
• compte utilisateur sans droit spécifique
• création de nombres premiers
ubuntu@xxx:~$ sysbench --test=cpu --cpu-max-prime=20000 run
sysbench 0.4.12: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 1
Doing CPU performance benchmark
Threads started!
Done.
Maximum prime number checked in CPU test: 20000
Test execution summary:
total time: 125.4803s
total number of events: 10000
total time taken by event execution: 125.4679
per-request statistics:
min: 4.71ms
avg: 12.55ms
max: 149.16ms
approx. 95 percentile: 112.83ms
Threads fairness:
events (avg/stddev): 10000.0000/0.00
execution time (avg/stddev): 125.4679/0.00
RAM
RAM - Cas d’école : ressources virtuelles réservées
• Question :
• dans une machine virtuelleVMware…
• quelle différence de performance peut-on attendre…
• si l’on réserve la RAM
• ou si l’on reste en RAM dynamiquement allouée (ballooning)
RAM - Outil : bandwidth
• Déploiement
• sources disponibles sur Internet : http://home.comcast.net/~veritas/bandwidth.html
• 332 ko
• dépendances (pour la compilation) : make + nasm + gcc
• Info
• tout automatique
• permet aussi de faire des tests sur la bande passante réseau
RAM - Outil : bandwidth
• Usage
• compte utilisateur sans droit spécifique
• usage de nice pour forcer le scheduler (droits de sudo sur nice)
• produit un graphique BMP dans ./
ubuntu@xxx:~/bandwidth-0.32p$ sudo nice -n -2 ./bandwidth64
This is bandwidth version 0.32p.
Copyright (C) 2005-2012 by Zack T Smith.
This software is covered by the GNU Public License.
It is provided AS-IS, use at your own risk.
See the file COPYING for more information.
CPU family: GenuineIntel
CPU features: MMX SSE SSE2 SSE3 SSSE3 SSE4.1 SSE4.2 AES AVX XD Intel64
Cache 0: L1 data cache, line size 64, 8-ways, 64 sets, size 32k
Cache 1: L1 instruction cache, line size 64, 8-ways, 64 sets, size 32k
Cache 2: L2 unified cache, line size 64, 8-ways, 512 sets, size 256k
Cache 3: L3 unified cache, line size 64, 20-ways, 16384 sets, size 20480k
Notation: B = byte, kB = 1024 B, MB = 1048576 B.
CPU speed is 1795.67 MHz.
Sequential read (128-bit), size = 128 B, loops = 2169503744, 52957.3 MB/s
Sequential read (128-bit), size = 256 B, loops = 1066926080, 52088.9 MB/s
Sequential read (128-bit), size = 384 B, loops = 722815632, 52933.6 MB/s
Sequential read (128-bit), size = 512 B, loops = 536608768, 52391.5 MB/s
RAM - Outil : bandwidth
• Résultats sans réservation de mémoire
RAM - Outil : bandwidth
• Résultats avec réservation de mémoire
RAM - Outil : sysbench
• Déploiement
• déjà vu
• Info
• paramétrage plus fin que bandwidth
• accès séquentiels / aléatoires (option --memory-access-mode={seq,rnd})
• restriction aux opérations de lecture / écriture (option --memory-oper={read,
write, none})
• restriction à la mémoire globale / locale au thread (option --memory-
scope={global,local})
• 3 défauts
• pas de test complet (il faut enchaîner les tests seq/rnd, read/write, global/local)
• pas de représentation graphique fine
• gros défaut : résultats donnés sous forme très synthétique
RAM - Outil : sysbench
• Usage
• compte utilisateur sans droit spécifique
ubuntu@xxx:~$ sysbench --test=memory run
sysbench 0.4.12: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 1
Doing memory operations speed test
Memory block size: 1K
Memory transfer size: 102400M
Memory operations type: write
Memory scope type: global
Threads started!
Done.
Operations performed: 104857600 (250271.37 ops/sec)
102400.00 MB transferred (244.41 MB/sec)
Test execution summary:
total time: 418.9756s
total number of events: 104857600
total time taken by event execution: 317.1497
per-request statistics:
min: 0.00ms
avg: 0.00ms
max: 24.08ms
approx. 95 percentile: 0.00ms
Threads fairness:
events (avg/stddev): 104857600.0000/0.00
execution time (avg/stddev): 317.1497/0.00
I/O
I/O - Cas d’école : choix du type de stockage EC2
• Question :
• dans une machine virtuelle Amazon WS EC2…
• quelle différence de performance peut-on attendre…
• si l’on utilise un disque EBS standard
• si l’on utilise un disque EBS avec 100 I/O réservées
• si l’on utilise le disque local (RAW)
• même type de filesystem
• mêmes options de filesystem
I/O - Outil : bonnie++
• Déploiement
• disponible dans les repositories standards
• 254 ko
• dépendances : libc + libgcc + libstdc++
• Info
• bonnie++ permet de s’affranchir des mécanismes de buffering propres à l’OS : on obtient des
données d’I/O «pures»
• -b no write buffering. fsync() after every write.
• -D use direct IO (O_DIRECT) for the bulk IO tests.
I/O - Outil : bonnie++
• Usage
• compte utilisateur sans droit spécifique
• lecture / écriture de fichiers au contenu aléatoire de taille supérieure à la RAM
ubuntu@xxx:~$ bonnie++ -d ~/bonnie/ -s 3500 -n 10:5000:2000:10
Writing a byte at a time...done
Writing intelligently...done
Rewriting...done
Reading a byte at a time...done
Reading intelligently...done
start 'em...done...done...done...done...done...
Create files in sequential order...done.
Stat files in sequential order...done.
Delete files in sequential order...done.
Create files in random order...done.
Stat files in random order...done.
Delete files in random order...done.
Version 1.96 ------Sequential Output------ --Sequential Input- --Random-
Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
ip-10-33-137- 3500M 131 94 33126 6 27059 6 325 91 118166 13 5126 102
Latency 169ms 320ms 4234ms 95407us 241ms 4340us
Version 1.96 ------Sequential Create------ --------Random Create--------
ip-10-33-137-25 -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files:max:min /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
10:5000:2000/10 3894 28 +++++ +++ 13717 69 4423 29 +++++ +++ 13381 78
Latency 72274us 24339us 72206us 72164us 72109us 47368us
1.96,1.96,ip-10-33-137-25,1,1377459694,3500M,,
131,94,33126,6,27059,6,325,91,118166,13,5126,102,10,5000,2000,,10,3894,28,+++++,+++,13717,69,4423,29,+++++,+++,
13381,78,169ms,320ms,4234ms,95407us,241ms,4340us,72274us,24339us,72206us,72164us,72109us,47368us
I/O - Outil : bonnie++
0"
10000"
20000"
30000"
40000"
50000"
60000"
70000"
80000"
90000"
100000"
110000"
120000"
130000"
140000"
Seq."Output"Per"
Chr"K/s"
Block"K/s" Rewrite"K/s" Seq."Input"Per"
Chr"K/s"
Block"K/s" Random"seeks/s" Seq."Create/s" Delete/s" Random"Create/
s"
Delete/s"
bonnie_ebs_1.results"
bonnie_ebs_2.results"
bonnie_ebs_3.results"
bonnie_dedicated_io_1.results"
bonnie_dedicated_io_2.results"
bonnie_dedicated_io_3.results"
bonnie_no_ebs_1.results"
bonnie_no_ebs_2.results"
bonnie_no_ebs_3.results"
I/O - Outil : bonnie++
0"
10"
20"
30"
40"
50"
60"
70"
80"
90"
100"
Seq."Output"Per"
Chr"%CPU"
Block"%CPU" Rewrite"%CPU" Seq."Input"Per"
Chr"%CPU"
Block"%CPU" Random"seeks"
%CPU"
Seq."Create"
%CPU"
Delete"%CPU" Random"Create"
%CPU"
Delete"%CPU"
bonnie_ebs_1.results"
bonnie_ebs_2.results"
bonnie_ebs_3.results"
bonnie_dedicated_io_1.results"
bonnie_dedicated_io_2.results"
bonnie_dedicated_io_3.results"
bonnie_no_ebs_1.results"
bonnie_no_ebs_2.results"
bonnie_no_ebs_3.results"
I/O - Outil : iozone
• Déploiement
• sources disponibles sur Internet : http://www.iozone.org/
• 254 ko
• dépendances (pour la compilation) : make + gcc
• Info
• outil ultra-complet
• sait travailler en file / mmap
• sait tester le direct IO
• sait purger le cache processeur, le cache système
• teste avec une large taille de buffers
• outil de diagnostic également
• sait vérifier chaque octet pour débusquer un système I/O défectueux
I/O - Outil : iozone
• Usage
• compte utilisateur sans droit spécifique
• lecture / écriture de fichiers au contenu aléatoire de taille supérieure à la RAMubuntu@xxx:~/PerfUG_20130829/iozone3_420/src/current$ ./iozone -Ra
Iozone: Performance Test of File I/O
Version $Revision: 3.420 $
Compiled for 64 bit mode.
Build: linux-AMD64
Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins (…)
Run began: Sun Aug 25 15:32:23 2013
Excel chart generation enabled
Auto Mode
Command line used: ./iozone -Ra
Output is in Kbytes/sec
Time Resolution = 0.000001 seconds.
Processor cache size set to 1024 Kbytes.
Processor cache line size set to 32 bytes.
File stride size set to 17 * record size.
random random bkwd record stride
KB reclen write rewrite read reread read write read rewrite read fwrite
frewrite fread freread
64 4 492717 942521 1562436 2203800 1518251 842003 1066042 1013707 1421755 913649
998622 1452528 2133730
64 8 520419 1143223 2561267 3363612 1933893 1421755 1484662 1255511 2067979 955947
1124074 1492919 3203069
64 16 608965 1492919 2892445 3165299 2379626 1070292 1421755 1734015 1526887 1083249
969761 1562436 3791156
(…)
128 4 465708 990891 1778862 2202044 1579934 1015251 1243315 1085013 1455701 1123617
753179 1487977 1827299
128 8 592699 1040839 1424795 3468030 2286447 1102844 1508887 1603529 1561553 1102844
1015251 1598754 2608629
I/O - Outil : iozone
4
32
256
2048
16384
0
10000
20000
30000
40000
50000
60000
70000
80000
90000
100000
110000
120000
130000
140000
150000
160000
170000
180000
64
128
256
512
1024
2048
4096
8192
16384
32768
65536
131072
262144
524288
1048576
Record size in Kbytes
Kbytes/sec
File size in Kbytes
Write performance
170000-180000
160000-170000
150000-160000
140000-150000
130000-140000
120000-130000
110000-120000
100000-110000
90000-100000
80000-90000
70000-80000
60000-70000
50000-60000
40000-50000
30000-40000
20000-30000
10000-20000
0-10000
CPU Cache effect
Memory /
buffer cache
Not measured
Physical disk I/
O
Kbytes/sec
http://www.iozone.org
Don Capps
REQUÊTES HTTP
HTTP - Cas d’école : comparaison de serveurs
• Question :
• dans une même machine virtuelleVMware…
• quelle différence de performance peut-on attendre…
• entre différents serveurs Web
• apache2
• nginx
• shortfin
• pour la publication de fichiers statiques ?
HTTP - Outil : apachebench
• Déploiement
• disponible dans les apache-utils
• 55 ko
• dépendances : libapr1, libaprutil1, libc6, libssl1.0.0
• Info
• peut-on faire un outil plus simple et plus parlant ?
HTTP - Outil : apachebench
• Usage
• compte utilisateur sans droit spécifique
• -c : nombre de threads simultané (i.e. utilisateurs concurrents)
• -n : nombre de requêtes totales
ubuntu@xxx:~$ ab -c 200 -n 2000 http://localhost:8082/
asf-logo.gif
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd,
http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://
www.apache.org/
Benchmarking localhost (be patient)
Completed 200 requests
(…)
Completed 1800 requests
Completed 2000 requests
Finished 2000 requests
Server Software: nginx/1.1.19
Server Hostname: localhost
Server Port: 8082
Document Path: /asf-logo.gif
Document Length: 7279 bytes
Concurrency Level: 200
Time taken for tests: 1.200 seconds
Complete requests: 2000
Failed requests: 0
Write errors: 0
Total transferred: 14982000 bytes
HTML transferred: 14558000 bytes
Requests per second: 1666.60 [#/sec] (mean)
Time per request: 120.004 [ms] (mean)
Time per request: 0.600 [ms] (mean, across all
concurrent requests)
Transfer rate: 12191.93 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 50 182.8 7 1022
Processing: 3 64 42.7 60 685
Waiting: 2 51 35.0 52 679
Total: 22 114 192.3 78 1126
Percentage of the requests served within a certain
time (ms)
50% 78
66% 89
75% 93
80% 96
90% 111
95% 199
98% 1117
99% 1122
100% 1126 (longest request)
HTTP - Outil : apachebench
• Résultats
Server Software: Apache/2.2.22
Server Port: 80
(…)
Concurrency Level: 200
Time taken for tests: 3.897 seconds
Complete requests: 2000
Failed requests: 0
Write errors: 0
Total transferred: 15068000 bytes
HTML transferred: 14558000 bytes
Requests per second: 513.25 [#/sec] (mean)
Time per request: 389.671 [ms] (mean)
Time per request: 1.948 [ms] (mean, across all
concurrent requests)
Transfer rate: 3776.23 [Kbytes/sec] receiv.
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 12 15.5 4 80
Processing: 14 219 689.3 86 3874
Waiting: 6 205 691.3 63 3868
Total: 24 232 688.4 93 3889
Percentage of the requests served within a certain
time (ms)
50% 93
66% 99
75% 108
80% 125
90% 150
95% 185
98% 3882
99% 3885
100% 3889 (longest request)
Server Software: nginx/1.1.19
Server Port: 8082
(…)
Time taken for tests: 1.200 seconds
Complete requests: 2000
Failed requests: 0
Write errors: 0
Total transferred: 14982000 bytes
HTML transferred: 14558000 bytes
Requests per second: 1666.60 [#/sec] (mean)
Time per request: 120.004 [ms] (mean)
Time per request: 0.600 [ms] (mean, across all
concurrent requests)
Transfer rate: 12191.93 [Kbytes/sec]
received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 50 182.8 7 1022
Processing: 3 64 42.7 60 685
Waiting: 2 51 35.0 52 679
Total: 22 114 192.3 78 1126
Percentage of the requests served within a certain
time (ms)
50% 78
66% 89
75% 93
80% 96
90% 111
95% 199
98% 1117
99% 1122
100% 1126 (longest request)
HTTP - Outil : apachebench
• Résultats
Server Software: Apache/2.2.22
Server Port: 80
(…)
Concurrency Level: 200
Time taken for tests: 3.897 seconds
Complete requests: 2000
Failed requests: 0
Write errors: 0
Total transferred: 15068000 bytes
HTML transferred: 14558000 bytes
Requests per second: 513.25 [#/sec] (mean)
Time per request: 389.671 [ms] (mean)
Time per request: 1.948 [ms] (mean, across all
concurrent requests)
Transfer rate: 3776.23 [Kbytes/sec] receiv.
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 12 15.5 4 80
Processing: 14 219 689.3 86 3874
Waiting: 6 205 691.3 63 3868
Total: 24 232 688.4 93 3889
Percentage of the requests served within a certain
time (ms)
50% 93
66% 99
75% 108
80% 125
90% 150
95% 185
98% 3882
99% 3885
100% 3889 (longest request)
Server Software: Apache-Coyote/1.1
Server Port: 8080
(…)
Concurrency Level: 200
Time taken for tests: 5.181 seconds
Complete requests: 2000
Failed requests: 0
Write errors: 0
Total transferred: 4626000 bytes
HTML transferred: 4132000 bytes
Requests per second: 386.06 [#/sec] (mean)
Time per request: 518.055 [ms] (mean)
Time per request: 2.590 [ms] (mean, across all
concurrent requests)
Transfer rate: 872.03 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 75 245.6 0 1040
Processing: 8 225 494.1 147 4161
Waiting: 5 212 494.4 144 4157
Total: 8 300 659.0 154 5161
Percentage of the requests served within a certain
time (ms)
50% 154
66% 183
75% 193
80% 205
90% 240
95% 1152
98% 2429
99% 5156
100% 5161 (longest request)
HTTP - Outil : apachebench
• Résultats
Server Software: Apache/2.2.22
Server Port: 80
(…)
Concurrency Level: 200
Time taken for tests: 3.897 seconds
Complete requests: 2000
Failed requests: 0
Write errors: 0
Total transferred: 15068000 bytes
HTML transferred: 14558000 bytes
Requests per second: 513.25 [#/sec] (mean)
Time per request: 389.671 [ms] (mean)
Time per request: 1.948 [ms] (mean, across all
concurrent requests)
Transfer rate: 3776.23 [Kbytes/sec] receiv.
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 12 15.5 4 80
Processing: 14 219 689.3 86 3874
Waiting: 6 205 691.3 63 3868
Total: 24 232 688.4 93 3889
Percentage of the requests served within a certain
time (ms)
50% 93
66% 99
75% 108
80% 125
90% 150
95% 185
98% 3882
99% 3885
100% 3889 (longest request)
Server Software: shortfin/0.9.5
Server Port: 8081
(…)
Concurrency Level: 200
Time taken for tests: 11.675 seconds
Complete requests: 2000
Failed requests: 0
Write errors: 0
Total transferred: 14738000 bytes
HTML transferred: 14558000 bytes
Requests per second: 171.31 [#/sec] (mean)
Time per request: 1167.470 [ms] (mean)
Time per request: 5.837 [ms] (mean, across all
concurrent requests)
Transfer rate: 1232.80 [Kbytes/sec]
received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 16 18.7 8 78
Processing: 960 1122 265.3 1061 2070
Waiting: 2 56 39.2 50 220
Total: 975 1138 269.7 1066 2117
Percentage of the requests served within a certain
time (ms)
50% 1066
66% 1078
75% 1103
80% 1116
90% 1150
95% 2073
98% 2117
99% 2117
HTTP - Outil : wrk
• Déploiement
• disponible sur GitHub : https://github.com/wg/wrk
• 55 ko
• dépendances (à la compilation) : libssl-dev
• Info
• similaire à apachebench
• Usage
• compte utilisateur sans droit spécifique
• -t : nombre de threads simultané (i.e. utilisateurs concurrents)
• -c : nombre de connexions ouvertes simultanées
• -d : durée du test
HTTP - Outil : wrk
• Résultats
ubuntu@ip-10-33-173-90:~/PerfUG_20130829/wrk-master
$ ./wrk -t12 -c400 -d30s http://localhost:80/asf-
logo.gif # Apache
Running 30s test @ http://localhost:80/asf-logo.gif
12 threads and 400 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 17.02s 7.64s 28.51s 61.51%
Req/Sec 229.50 571.66 7.11k 93.15%
71474 requests in 30.04s, 512.26MB read
Socket errors: connect 0, read 99, write 0,
timeout 2995
Requests/sec: 2379.20
Transfer/sec: 17.05MB
ubuntu@ip-10-33-173-90:~/PerfUG_20130829/wrk-master
$ ./wrk -t12 -c400 -d30s http://localhost:8081/asf-
logo.gif # shortfin
Running 30s test @ http://localhost:8081/asf-
logo.gif
12 threads and 400 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 166.15ms 107.50ms 5.74s 99.77%
Req/Sec 198.99 35.27 301.00 72.18%
71568 requests in 30.13s, 502.95MB read
Socket errors: connect 0, read 52, write 0,
timeout 56
Requests/sec: 2375.37
Transfer/sec: 16.69MB
ubuntu@ip-10-33-173-90:~/PerfUG_20130829/wrk-master
$ ./wrk -t12 -c400 -d30s http://localhost:8080/asf-
logo.gif # Tomcat
Running 30s test @ http://localhost:8080/asf-
logo.gif
12 threads and 400 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 454.81ms 1.06s 24.04s 94.18%
Req/Sec 50.56 15.17 103.00 73.15%
17324 requests in 30.07s, 18.90MB read
Socket errors: connect 0, read 37, write 0,
timeout 1803
Non-2xx or 3xx responses: 17324
Requests/sec: 576.12
ubuntu@ip-10-33-173-90:~/PerfUG_20130829/wrk-master
$ ./wrk -t12 -c400 -d30s http://localhost:8082/asf-
logo.gif # nginx
Running 30s test @ http://localhost:8082/asf-
logo.gif
12 threads and 400 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 758.08ms 182.88ms 849.17ms 93.11%
Req/Sec 437.60 0.86k 8.33k 93.22%
126041 requests in 30.03s, 0.88GB read
Requests/sec: 4197.24
Transfer/sec: 30.00MB
REQUÊTES MYSQL
DB - Outil : sysbench
• Déploiement
• déjà vu
• Info
• permet de bencher une instance de base de données
• crée une table et un jeu de données
• passe des requêtes de différentes natures et produit des restitutions
SELECT c FROM sbtest WHERE id=N
SELECT c FROM sbtest WHERE id BETWEEN N AND M
SELECT SUM(K) FROM sbtest WHERE id BETWEEN N and M
SELECT c FROM sbtest WHERE id between N and M ORDER BY c
SELECT DISTINCT c FROM sbtest WHERE id BETWEEN N and M ORDER BY c
UPDATEs on index / non-index column:
UPDATE sbtest SET k=k+1 WHERE id=N
UPDATE sbtest SET c=N WHERE id=M
DELETE FROM sbtest WHERE id=N
INSERT INTO sbtest VALUES (...)
QUESTIONS ?

Más contenido relacionado

La actualidad más candente

QCon 2015 Broken Performance Tools
QCon 2015 Broken Performance ToolsQCon 2015 Broken Performance Tools
QCon 2015 Broken Performance ToolsBrendan Gregg
 
Analyzing OS X Systems Performance with the USE Method
Analyzing OS X Systems Performance with the USE MethodAnalyzing OS X Systems Performance with the USE Method
Analyzing OS X Systems Performance with the USE MethodBrendan Gregg
 
Extreme Linux Performance Monitoring and Tuning
Extreme Linux Performance Monitoring and TuningExtreme Linux Performance Monitoring and Tuning
Extreme Linux Performance Monitoring and TuningMilind Koyande
 
Profiling your Applications using the Linux Perf Tools
Profiling your Applications using the Linux Perf ToolsProfiling your Applications using the Linux Perf Tools
Profiling your Applications using the Linux Perf ToolsemBO_Conference
 
Reconnaissance of Virtio: What’s new and how it’s all connected?
Reconnaissance of Virtio: What’s new and how it’s all connected?Reconnaissance of Virtio: What’s new and how it’s all connected?
Reconnaissance of Virtio: What’s new and how it’s all connected?Samsung Open Source Group
 
Summit2014 riel chegu_w_0340_automatic_numa_balancing_0
Summit2014 riel chegu_w_0340_automatic_numa_balancing_0Summit2014 riel chegu_w_0340_automatic_numa_balancing_0
Summit2014 riel chegu_w_0340_automatic_numa_balancing_0sprdd
 
YOW2020 Linux Systems Performance
YOW2020 Linux Systems PerformanceYOW2020 Linux Systems Performance
YOW2020 Linux Systems PerformanceBrendan Gregg
 
(PFC303) Milliseconds Matter: Design, Deploy, and Operate Your Application fo...
(PFC303) Milliseconds Matter: Design, Deploy, and Operate Your Application fo...(PFC303) Milliseconds Matter: Design, Deploy, and Operate Your Application fo...
(PFC303) Milliseconds Matter: Design, Deploy, and Operate Your Application fo...Amazon Web Services
 
Open Source Systems Performance
Open Source Systems PerformanceOpen Source Systems Performance
Open Source Systems PerformanceBrendan Gregg
 
(PFC302) Performance Benchmarking on AWS | AWS re:Invent 2014
(PFC302) Performance Benchmarking on AWS | AWS re:Invent 2014(PFC302) Performance Benchmarking on AWS | AWS re:Invent 2014
(PFC302) Performance Benchmarking on AWS | AWS re:Invent 2014Amazon Web Services
 
Linux Performance 2018 (PerconaLive keynote)
Linux Performance 2018 (PerconaLive keynote)Linux Performance 2018 (PerconaLive keynote)
Linux Performance 2018 (PerconaLive keynote)Brendan Gregg
 
Kernel Recipes 2017 - Understanding the Linux kernel via ftrace - Steven Rostedt
Kernel Recipes 2017 - Understanding the Linux kernel via ftrace - Steven RostedtKernel Recipes 2017 - Understanding the Linux kernel via ftrace - Steven Rostedt
Kernel Recipes 2017 - Understanding the Linux kernel via ftrace - Steven RostedtAnne Nicolas
 
LISA18: Hidden Linux Metrics with Prometheus eBPF Exporter
LISA18: Hidden Linux Metrics with Prometheus eBPF ExporterLISA18: Hidden Linux Metrics with Prometheus eBPF Exporter
LISA18: Hidden Linux Metrics with Prometheus eBPF ExporterIvan Babrou
 
Kernel Recipes 2016 - Understanding a Real-Time System (more than just a kernel)
Kernel Recipes 2016 - Understanding a Real-Time System (more than just a kernel)Kernel Recipes 2016 - Understanding a Real-Time System (more than just a kernel)
Kernel Recipes 2016 - Understanding a Real-Time System (more than just a kernel)Anne Nicolas
 
bcc/BPF tools - Strategy, current tools, future challenges
bcc/BPF tools - Strategy, current tools, future challengesbcc/BPF tools - Strategy, current tools, future challenges
bcc/BPF tools - Strategy, current tools, future challengesIO Visor Project
 
Java Performance Analysis on Linux with Flame Graphs
Java Performance Analysis on Linux with Flame GraphsJava Performance Analysis on Linux with Flame Graphs
Java Performance Analysis on Linux with Flame GraphsBrendan Gregg
 
Performance comparison of Distributed File Systems on 1Gbit networks
Performance comparison of Distributed File Systems on 1Gbit networksPerformance comparison of Distributed File Systems on 1Gbit networks
Performance comparison of Distributed File Systems on 1Gbit networksMarian Marinov
 
Linux Performance Tools
Linux Performance ToolsLinux Performance Tools
Linux Performance ToolsBrendan Gregg
 
Performance Wins with BPF: Getting Started
Performance Wins with BPF: Getting StartedPerformance Wins with BPF: Getting Started
Performance Wins with BPF: Getting StartedBrendan Gregg
 

La actualidad más candente (20)

QCon 2015 Broken Performance Tools
QCon 2015 Broken Performance ToolsQCon 2015 Broken Performance Tools
QCon 2015 Broken Performance Tools
 
Analyzing OS X Systems Performance with the USE Method
Analyzing OS X Systems Performance with the USE MethodAnalyzing OS X Systems Performance with the USE Method
Analyzing OS X Systems Performance with the USE Method
 
Extreme Linux Performance Monitoring and Tuning
Extreme Linux Performance Monitoring and TuningExtreme Linux Performance Monitoring and Tuning
Extreme Linux Performance Monitoring and Tuning
 
Profiling your Applications using the Linux Perf Tools
Profiling your Applications using the Linux Perf ToolsProfiling your Applications using the Linux Perf Tools
Profiling your Applications using the Linux Perf Tools
 
Reconnaissance of Virtio: What’s new and how it’s all connected?
Reconnaissance of Virtio: What’s new and how it’s all connected?Reconnaissance of Virtio: What’s new and how it’s all connected?
Reconnaissance of Virtio: What’s new and how it’s all connected?
 
Summit2014 riel chegu_w_0340_automatic_numa_balancing_0
Summit2014 riel chegu_w_0340_automatic_numa_balancing_0Summit2014 riel chegu_w_0340_automatic_numa_balancing_0
Summit2014 riel chegu_w_0340_automatic_numa_balancing_0
 
YOW2020 Linux Systems Performance
YOW2020 Linux Systems PerformanceYOW2020 Linux Systems Performance
YOW2020 Linux Systems Performance
 
Introduction to Perf
Introduction to PerfIntroduction to Perf
Introduction to Perf
 
(PFC303) Milliseconds Matter: Design, Deploy, and Operate Your Application fo...
(PFC303) Milliseconds Matter: Design, Deploy, and Operate Your Application fo...(PFC303) Milliseconds Matter: Design, Deploy, and Operate Your Application fo...
(PFC303) Milliseconds Matter: Design, Deploy, and Operate Your Application fo...
 
Open Source Systems Performance
Open Source Systems PerformanceOpen Source Systems Performance
Open Source Systems Performance
 
(PFC302) Performance Benchmarking on AWS | AWS re:Invent 2014
(PFC302) Performance Benchmarking on AWS | AWS re:Invent 2014(PFC302) Performance Benchmarking on AWS | AWS re:Invent 2014
(PFC302) Performance Benchmarking on AWS | AWS re:Invent 2014
 
Linux Performance 2018 (PerconaLive keynote)
Linux Performance 2018 (PerconaLive keynote)Linux Performance 2018 (PerconaLive keynote)
Linux Performance 2018 (PerconaLive keynote)
 
Kernel Recipes 2017 - Understanding the Linux kernel via ftrace - Steven Rostedt
Kernel Recipes 2017 - Understanding the Linux kernel via ftrace - Steven RostedtKernel Recipes 2017 - Understanding the Linux kernel via ftrace - Steven Rostedt
Kernel Recipes 2017 - Understanding the Linux kernel via ftrace - Steven Rostedt
 
LISA18: Hidden Linux Metrics with Prometheus eBPF Exporter
LISA18: Hidden Linux Metrics with Prometheus eBPF ExporterLISA18: Hidden Linux Metrics with Prometheus eBPF Exporter
LISA18: Hidden Linux Metrics with Prometheus eBPF Exporter
 
Kernel Recipes 2016 - Understanding a Real-Time System (more than just a kernel)
Kernel Recipes 2016 - Understanding a Real-Time System (more than just a kernel)Kernel Recipes 2016 - Understanding a Real-Time System (more than just a kernel)
Kernel Recipes 2016 - Understanding a Real-Time System (more than just a kernel)
 
bcc/BPF tools - Strategy, current tools, future challenges
bcc/BPF tools - Strategy, current tools, future challengesbcc/BPF tools - Strategy, current tools, future challenges
bcc/BPF tools - Strategy, current tools, future challenges
 
Java Performance Analysis on Linux with Flame Graphs
Java Performance Analysis on Linux with Flame GraphsJava Performance Analysis on Linux with Flame Graphs
Java Performance Analysis on Linux with Flame Graphs
 
Performance comparison of Distributed File Systems on 1Gbit networks
Performance comparison of Distributed File Systems on 1Gbit networksPerformance comparison of Distributed File Systems on 1Gbit networks
Performance comparison of Distributed File Systems on 1Gbit networks
 
Linux Performance Tools
Linux Performance ToolsLinux Performance Tools
Linux Performance Tools
 
Performance Wins with BPF: Getting Started
Performance Wins with BPF: Getting StartedPerformance Wins with BPF: Getting Started
Performance Wins with BPF: Getting Started
 

Destacado

Dev opsmeetup sept2013-leaseweb
Dev opsmeetup sept2013-leasewebDev opsmeetup sept2013-leaseweb
Dev opsmeetup sept2013-leasewebMicrosoft
 
Resume Shavez Hasan (1)
Resume Shavez Hasan (1)Resume Shavez Hasan (1)
Resume Shavez Hasan (1)Shavez Mirza
 
Openstack benelux 2015
Openstack benelux 2015Openstack benelux 2015
Openstack benelux 2015Microsoft
 
Corredor Norte De La Isla Hispaniola Creole
Corredor Norte De La Isla Hispaniola CreoleCorredor Norte De La Isla Hispaniola Creole
Corredor Norte De La Isla Hispaniola Creoleguesta96e92
 
Docker open stack
Docker open stackDocker open stack
Docker open stackGuangya Liu
 
Deploy Python apps in 5 min with a PaaS
Deploy Python apps in 5 min with a PaaSDeploy Python apps in 5 min with a PaaS
Deploy Python apps in 5 min with a PaaSAppsembler
 
Docker meetup - PaaS interoperability
Docker meetup - PaaS interoperabilityDocker meetup - PaaS interoperability
Docker meetup - PaaS interoperabilityLudovic Piot
 
New Features of Kubernetes v1.2.0 beta
New Features of Kubernetes v1.2.0 betaNew Features of Kubernetes v1.2.0 beta
New Features of Kubernetes v1.2.0 betaGiragadurai Vallirajan
 
Movie recommendation system using Apache Mahout and Facebook APIs
Movie recommendation system using Apache Mahout and Facebook APIsMovie recommendation system using Apache Mahout and Facebook APIs
Movie recommendation system using Apache Mahout and Facebook APIsSmitha Mysore Lokesh
 
Maintaining an up to date application stack (in a containerized world)
Maintaining an up to date application stack (in a containerized world)Maintaining an up to date application stack (in a containerized world)
Maintaining an up to date application stack (in a containerized world)Christoph Görn
 
Intro to Mahout
Intro to MahoutIntro to Mahout
Intro to MahoutUri Lavi
 
From legacy to modern CI/CD in tis with concourse
From legacy to modern CI/CD in tis with concourseFrom legacy to modern CI/CD in tis with concourse
From legacy to modern CI/CD in tis with concourseisshan
 
Las redes sociales 1ro a
Las redes sociales 1ro aLas redes sociales 1ro a
Las redes sociales 1ro aMariuxi Cuasqui
 
Scalling development teams using Docker
Scalling development teams using DockerScalling development teams using Docker
Scalling development teams using DockerDaniel Oliveira Filho
 
Oxalide MorningTech #1 - BigData
Oxalide MorningTech #1 - BigDataOxalide MorningTech #1 - BigData
Oxalide MorningTech #1 - BigDataLudovic Piot
 
Container Days Boston - Kubernetes in production
Container Days Boston - Kubernetes in productionContainer Days Boston - Kubernetes in production
Container Days Boston - Kubernetes in productionMike Splain
 
Cloud hybridation leveraging on Docker 1.12
Cloud hybridation leveraging on Docker 1.12Cloud hybridation leveraging on Docker 1.12
Cloud hybridation leveraging on Docker 1.12Ludovic Piot
 
Oxalide Workshop #5 - Docker avancé & Kubernetes
Oxalide Workshop #5 - Docker avancé & KubernetesOxalide Workshop #5 - Docker avancé & Kubernetes
Oxalide Workshop #5 - Docker avancé & KubernetesLudovic Piot
 

Destacado (20)

DailyTranslate Brochure
DailyTranslate BrochureDailyTranslate Brochure
DailyTranslate Brochure
 
Dev opsmeetup sept2013-leaseweb
Dev opsmeetup sept2013-leasewebDev opsmeetup sept2013-leaseweb
Dev opsmeetup sept2013-leaseweb
 
Resume Shavez Hasan (1)
Resume Shavez Hasan (1)Resume Shavez Hasan (1)
Resume Shavez Hasan (1)
 
Openstack benelux 2015
Openstack benelux 2015Openstack benelux 2015
Openstack benelux 2015
 
Corredor Norte De La Isla Hispaniola Creole
Corredor Norte De La Isla Hispaniola CreoleCorredor Norte De La Isla Hispaniola Creole
Corredor Norte De La Isla Hispaniola Creole
 
Docker open stack
Docker open stackDocker open stack
Docker open stack
 
Deploy Python apps in 5 min with a PaaS
Deploy Python apps in 5 min with a PaaSDeploy Python apps in 5 min with a PaaS
Deploy Python apps in 5 min with a PaaS
 
Docker meetup - PaaS interoperability
Docker meetup - PaaS interoperabilityDocker meetup - PaaS interoperability
Docker meetup - PaaS interoperability
 
New Features of Kubernetes v1.2.0 beta
New Features of Kubernetes v1.2.0 betaNew Features of Kubernetes v1.2.0 beta
New Features of Kubernetes v1.2.0 beta
 
Movie recommendation system using Apache Mahout and Facebook APIs
Movie recommendation system using Apache Mahout and Facebook APIsMovie recommendation system using Apache Mahout and Facebook APIs
Movie recommendation system using Apache Mahout and Facebook APIs
 
Maintaining an up to date application stack (in a containerized world)
Maintaining an up to date application stack (in a containerized world)Maintaining an up to date application stack (in a containerized world)
Maintaining an up to date application stack (in a containerized world)
 
Intro to Mahout
Intro to MahoutIntro to Mahout
Intro to Mahout
 
From legacy to modern CI/CD in tis with concourse
From legacy to modern CI/CD in tis with concourseFrom legacy to modern CI/CD in tis with concourse
From legacy to modern CI/CD in tis with concourse
 
Las redes sociales 1ro a
Las redes sociales 1ro aLas redes sociales 1ro a
Las redes sociales 1ro a
 
Scalling development teams using Docker
Scalling development teams using DockerScalling development teams using Docker
Scalling development teams using Docker
 
Oxalide MorningTech #1 - BigData
Oxalide MorningTech #1 - BigDataOxalide MorningTech #1 - BigData
Oxalide MorningTech #1 - BigData
 
Container Days Boston - Kubernetes in production
Container Days Boston - Kubernetes in productionContainer Days Boston - Kubernetes in production
Container Days Boston - Kubernetes in production
 
Cloud hybridation leveraging on Docker 1.12
Cloud hybridation leveraging on Docker 1.12Cloud hybridation leveraging on Docker 1.12
Cloud hybridation leveraging on Docker 1.12
 
Oxalide Workshop #5 - Docker avancé & Kubernetes
Oxalide Workshop #5 - Docker avancé & KubernetesOxalide Workshop #5 - Docker avancé & Kubernetes
Oxalide Workshop #5 - Docker avancé & Kubernetes
 
Mesos introduction
Mesos introductionMesos introduction
Mesos introduction
 

Similar a PerfUG 3 - perfs système

CPN302 your-linux-ami-optimization-and-performance
CPN302 your-linux-ami-optimization-and-performanceCPN302 your-linux-ami-optimization-and-performance
CPN302 your-linux-ami-optimization-and-performanceCoburn Watson
 
Shak larry-jeder-perf-and-tuning-summit14-part2-final
Shak larry-jeder-perf-and-tuning-summit14-part2-finalShak larry-jeder-perf-and-tuning-summit14-part2-final
Shak larry-jeder-perf-and-tuning-summit14-part2-finalTommy Lee
 
DEF CON 27 - ALI ISLAM and DAN REGALADO WEAPONIZING HYPERVISORS
DEF CON 27 - ALI ISLAM and DAN REGALADO WEAPONIZING HYPERVISORSDEF CON 27 - ALI ISLAM and DAN REGALADO WEAPONIZING HYPERVISORS
DEF CON 27 - ALI ISLAM and DAN REGALADO WEAPONIZING HYPERVISORSFelipe Prado
 
Analyze Virtual Machine Overhead Compared to Bare Metal with Tracing
Analyze Virtual Machine Overhead Compared to Bare Metal with TracingAnalyze Virtual Machine Overhead Compared to Bare Metal with Tracing
Analyze Virtual Machine Overhead Compared to Bare Metal with TracingScyllaDB
 
HKG18-TR14 - Postmortem Debugging with Coresight
HKG18-TR14 - Postmortem Debugging with CoresightHKG18-TR14 - Postmortem Debugging with Coresight
HKG18-TR14 - Postmortem Debugging with CoresightLinaro
 
VMworld 2016: vSphere 6.x Host Resource Deep Dive
VMworld 2016: vSphere 6.x Host Resource Deep DiveVMworld 2016: vSphere 6.x Host Resource Deep Dive
VMworld 2016: vSphere 6.x Host Resource Deep DiveVMworld
 
Larson Macaulay apt_malware_past_present_future_out_of_band_techniques
Larson Macaulay apt_malware_past_present_future_out_of_band_techniquesLarson Macaulay apt_malware_past_present_future_out_of_band_techniques
Larson Macaulay apt_malware_past_present_future_out_of_band_techniquesScott K. Larson
 
Deep Dive on Amazon EC2 Instances (March 2017)
Deep Dive on Amazon EC2 Instances (March 2017)Deep Dive on Amazon EC2 Instances (March 2017)
Deep Dive on Amazon EC2 Instances (March 2017)Julien SIMON
 
Performance Analysis Tools for Linux Kernel
Performance Analysis Tools for Linux KernelPerformance Analysis Tools for Linux Kernel
Performance Analysis Tools for Linux Kernellcplcp1
 
CNNECST: an FPGA-based approach for the hardware acceleration of Convolutiona...
CNNECST: an FPGA-based approach for the hardware acceleration of Convolutiona...CNNECST: an FPGA-based approach for the hardware acceleration of Convolutiona...
CNNECST: an FPGA-based approach for the hardware acceleration of Convolutiona...NECST Lab @ Politecnico di Milano
 
iland Internet Solutions: Leveraging Cassandra for real-time multi-datacenter...
iland Internet Solutions: Leveraging Cassandra for real-time multi-datacenter...iland Internet Solutions: Leveraging Cassandra for real-time multi-datacenter...
iland Internet Solutions: Leveraging Cassandra for real-time multi-datacenter...DataStax Academy
 
Leveraging Cassandra for real-time multi-datacenter public cloud analytics
Leveraging Cassandra for real-time multi-datacenter public cloud analyticsLeveraging Cassandra for real-time multi-datacenter public cloud analytics
Leveraging Cassandra for real-time multi-datacenter public cloud analyticsJulien Anguenot
 
Compare Performance-power of Arm Cortex vs RISC-V for AI applications_oct_2021
Compare Performance-power of Arm Cortex vs RISC-V for AI applications_oct_2021Compare Performance-power of Arm Cortex vs RISC-V for AI applications_oct_2021
Compare Performance-power of Arm Cortex vs RISC-V for AI applications_oct_2021Deepak Shankar
 
20160503 Amazed by AWS | Tips about Performance on AWS
20160503 Amazed by AWS | Tips about Performance on AWS20160503 Amazed by AWS | Tips about Performance on AWS
20160503 Amazed by AWS | Tips about Performance on AWSAmazon Web Services Korea
 
Fast datastacks - fast and flexible nfv solution stacks leveraging fd.io
Fast datastacks - fast and flexible nfv solution stacks leveraging fd.ioFast datastacks - fast and flexible nfv solution stacks leveraging fd.io
Fast datastacks - fast and flexible nfv solution stacks leveraging fd.ioOPNFV
 

Similar a PerfUG 3 - perfs système (20)

CPN302 your-linux-ami-optimization-and-performance
CPN302 your-linux-ami-optimization-and-performanceCPN302 your-linux-ami-optimization-and-performance
CPN302 your-linux-ami-optimization-and-performance
 
Shak larry-jeder-perf-and-tuning-summit14-part2-final
Shak larry-jeder-perf-and-tuning-summit14-part2-finalShak larry-jeder-perf-and-tuning-summit14-part2-final
Shak larry-jeder-perf-and-tuning-summit14-part2-final
 
DEF CON 27 - ALI ISLAM and DAN REGALADO WEAPONIZING HYPERVISORS
DEF CON 27 - ALI ISLAM and DAN REGALADO WEAPONIZING HYPERVISORSDEF CON 27 - ALI ISLAM and DAN REGALADO WEAPONIZING HYPERVISORS
DEF CON 27 - ALI ISLAM and DAN REGALADO WEAPONIZING HYPERVISORS
 
The Spectre of Meltdowns
The Spectre of MeltdownsThe Spectre of Meltdowns
The Spectre of Meltdowns
 
Analyze Virtual Machine Overhead Compared to Bare Metal with Tracing
Analyze Virtual Machine Overhead Compared to Bare Metal with TracingAnalyze Virtual Machine Overhead Compared to Bare Metal with Tracing
Analyze Virtual Machine Overhead Compared to Bare Metal with Tracing
 
Deep Dive on Amazon EC2
Deep Dive on Amazon EC2Deep Dive on Amazon EC2
Deep Dive on Amazon EC2
 
HKG18-TR14 - Postmortem Debugging with Coresight
HKG18-TR14 - Postmortem Debugging with CoresightHKG18-TR14 - Postmortem Debugging with Coresight
HKG18-TR14 - Postmortem Debugging with Coresight
 
VMworld 2016: vSphere 6.x Host Resource Deep Dive
VMworld 2016: vSphere 6.x Host Resource Deep DiveVMworld 2016: vSphere 6.x Host Resource Deep Dive
VMworld 2016: vSphere 6.x Host Resource Deep Dive
 
Nmap Guide
Nmap GuideNmap Guide
Nmap Guide
 
Larson Macaulay apt_malware_past_present_future_out_of_band_techniques
Larson Macaulay apt_malware_past_present_future_out_of_band_techniquesLarson Macaulay apt_malware_past_present_future_out_of_band_techniques
Larson Macaulay apt_malware_past_present_future_out_of_band_techniques
 
Deep Dive on Amazon EC2 Instances (March 2017)
Deep Dive on Amazon EC2 Instances (March 2017)Deep Dive on Amazon EC2 Instances (March 2017)
Deep Dive on Amazon EC2 Instances (March 2017)
 
Performance Analysis Tools for Linux Kernel
Performance Analysis Tools for Linux KernelPerformance Analysis Tools for Linux Kernel
Performance Analysis Tools for Linux Kernel
 
CNNECST: an FPGA-based approach for the hardware acceleration of Convolutiona...
CNNECST: an FPGA-based approach for the hardware acceleration of Convolutiona...CNNECST: an FPGA-based approach for the hardware acceleration of Convolutiona...
CNNECST: an FPGA-based approach for the hardware acceleration of Convolutiona...
 
SOFA Tutorial
SOFA TutorialSOFA Tutorial
SOFA Tutorial
 
iland Internet Solutions: Leveraging Cassandra for real-time multi-datacenter...
iland Internet Solutions: Leveraging Cassandra for real-time multi-datacenter...iland Internet Solutions: Leveraging Cassandra for real-time multi-datacenter...
iland Internet Solutions: Leveraging Cassandra for real-time multi-datacenter...
 
Leveraging Cassandra for real-time multi-datacenter public cloud analytics
Leveraging Cassandra for real-time multi-datacenter public cloud analyticsLeveraging Cassandra for real-time multi-datacenter public cloud analytics
Leveraging Cassandra for real-time multi-datacenter public cloud analytics
 
QCon London.pdf
QCon London.pdfQCon London.pdf
QCon London.pdf
 
Compare Performance-power of Arm Cortex vs RISC-V for AI applications_oct_2021
Compare Performance-power of Arm Cortex vs RISC-V for AI applications_oct_2021Compare Performance-power of Arm Cortex vs RISC-V for AI applications_oct_2021
Compare Performance-power of Arm Cortex vs RISC-V for AI applications_oct_2021
 
20160503 Amazed by AWS | Tips about Performance on AWS
20160503 Amazed by AWS | Tips about Performance on AWS20160503 Amazed by AWS | Tips about Performance on AWS
20160503 Amazed by AWS | Tips about Performance on AWS
 
Fast datastacks - fast and flexible nfv solution stacks leveraging fd.io
Fast datastacks - fast and flexible nfv solution stacks leveraging fd.ioFast datastacks - fast and flexible nfv solution stacks leveraging fd.io
Fast datastacks - fast and flexible nfv solution stacks leveraging fd.io
 

Más de Ludovic Piot

[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...
[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...
[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...Ludovic Piot
 
Devops, un tour d'horizon - Eutelsat 2018
Devops, un tour d'horizon -  Eutelsat 2018Devops, un tour d'horizon -  Eutelsat 2018
Devops, un tour d'horizon - Eutelsat 2018Ludovic Piot
 
(RivieraDev 2018) #serverless - 2 ans de retourS d'expérience
(RivieraDev 2018) #serverless - 2 ans de retourS d'expérience(RivieraDev 2018) #serverless - 2 ans de retourS d'expérience
(RivieraDev 2018) #serverless - 2 ans de retourS d'expérienceLudovic Piot
 
DevoxxFR 2018 #serverless - Mettez-le en œuvre dans votre entreprise et arriv...
DevoxxFR 2018 #serverless - Mettez-le en œuvre dans votre entreprise et arriv...DevoxxFR 2018 #serverless - Mettez-le en œuvre dans votre entreprise et arriv...
DevoxxFR 2018 #serverless - Mettez-le en œuvre dans votre entreprise et arriv...Ludovic Piot
 
ClusterEurope2018 - Bootcamp Kubernetes - présentation
ClusterEurope2018 - Bootcamp Kubernetes - présentationClusterEurope2018 - Bootcamp Kubernetes - présentation
ClusterEurope2018 - Bootcamp Kubernetes - présentationLudovic Piot
 
A quick comparison of managed kubernetes services at public cloud providers'
A quick comparison of managed kubernetes services at public cloud providers'A quick comparison of managed kubernetes services at public cloud providers'
A quick comparison of managed kubernetes services at public cloud providers'Ludovic Piot
 
CloudExpo Europe 2017 - DevOps entre client et fournisseur
CloudExpo Europe 2017 - DevOps entre client et fournisseurCloudExpo Europe 2017 - DevOps entre client et fournisseur
CloudExpo Europe 2017 - DevOps entre client et fournisseurLudovic Piot
 
DevOps, quel futur pour les Ops ?
DevOps, quel futur pour les Ops ?DevOps, quel futur pour les Ops ?
DevOps, quel futur pour les Ops ?Ludovic Piot
 
Oxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performanceOxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performanceLudovic Piot
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinLudovic Piot
 
Oxalide Workshop #3 - Elasticearch, an overview
Oxalide Workshop #3 - Elasticearch, an overviewOxalide Workshop #3 - Elasticearch, an overview
Oxalide Workshop #3 - Elasticearch, an overviewLudovic Piot
 

Más de Ludovic Piot (11)

[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...
[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...
[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...
 
Devops, un tour d'horizon - Eutelsat 2018
Devops, un tour d'horizon -  Eutelsat 2018Devops, un tour d'horizon -  Eutelsat 2018
Devops, un tour d'horizon - Eutelsat 2018
 
(RivieraDev 2018) #serverless - 2 ans de retourS d'expérience
(RivieraDev 2018) #serverless - 2 ans de retourS d'expérience(RivieraDev 2018) #serverless - 2 ans de retourS d'expérience
(RivieraDev 2018) #serverless - 2 ans de retourS d'expérience
 
DevoxxFR 2018 #serverless - Mettez-le en œuvre dans votre entreprise et arriv...
DevoxxFR 2018 #serverless - Mettez-le en œuvre dans votre entreprise et arriv...DevoxxFR 2018 #serverless - Mettez-le en œuvre dans votre entreprise et arriv...
DevoxxFR 2018 #serverless - Mettez-le en œuvre dans votre entreprise et arriv...
 
ClusterEurope2018 - Bootcamp Kubernetes - présentation
ClusterEurope2018 - Bootcamp Kubernetes - présentationClusterEurope2018 - Bootcamp Kubernetes - présentation
ClusterEurope2018 - Bootcamp Kubernetes - présentation
 
A quick comparison of managed kubernetes services at public cloud providers'
A quick comparison of managed kubernetes services at public cloud providers'A quick comparison of managed kubernetes services at public cloud providers'
A quick comparison of managed kubernetes services at public cloud providers'
 
CloudExpo Europe 2017 - DevOps entre client et fournisseur
CloudExpo Europe 2017 - DevOps entre client et fournisseurCloudExpo Europe 2017 - DevOps entre client et fournisseur
CloudExpo Europe 2017 - DevOps entre client et fournisseur
 
DevOps, quel futur pour les Ops ?
DevOps, quel futur pour les Ops ?DevOps, quel futur pour les Ops ?
DevOps, quel futur pour les Ops ?
 
Oxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performanceOxalide Morning tech #2 - démarche performance
Oxalide Morning tech #2 - démarche performance
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
 
Oxalide Workshop #3 - Elasticearch, an overview
Oxalide Workshop #3 - Elasticearch, an overviewOxalide Workshop #3 - Elasticearch, an overview
Oxalide Workshop #3 - Elasticearch, an overview
 

Último

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 

Último (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 

PerfUG 3 - perfs système

  • 1. PERFUG #3 les perfs système pour les nuls 29 août 2013 v1.0 Ludovic Piot lpiot@octo.com @lpiot
  • 2. AGENDA • Introduction • les douleurs • Pour quoi faire ? • Présentation des outils • CPU : openSSL / sysbench • RAM : bandwidth / sysbench • I/O : bonnie++ / iozone / sysbench • requêtes HTTP : apachebench / wrk • base de données : sysbench
  • 4. • APM vs. perfs unitaires des composants techniques • Application Performance Monitoring Management (cf. http://apmblo24g.compuware.com/2013/08/21/devops-is-changing- the-m-in-apm-performance-requires-management-not-monitoring/) • collaboration • expertise • actions préventives • disclaimer : ce sont des perfs unitaires ! pas d’extrapolation des perfs applicatives INTRODUCTION applica&on) socle) technique) système) hyperviseur)/)matériel) réseau)/)stockage)
  • 5. • maîtrise réduite des couches basses de l’infrastructure • organisation des DSI en silos de compétence • collaboration verrouillée • incompréhension du besoin • manque d’expert disponible LES DOULEURS Source : Next Generation Datacenters in Financial Services : driving extreme efficiency and effective cost savings, byTony Bishop
  • 6. • maîtrise réduite de l’architecture • composants mutualisés • cloud • virtualisation LES DOULEURS Source : Next Generation Datacenters in Financial Services : driving extreme efficiency and effective cost savings, byTony Bishop
  • 8. POUR QUOI FAIRE ? • Choisir un composant technique • CPU (taille du cache, hyperthreading, jeu d’instructions) • CIFS vs NFS • RAID matériel vs. logiciel • AWS EBS avec I/O garantis ou pas • Apache vs. Nginx vs. shortfin
  • 9. POUR QUOI FAIRE ? • Tester des hypothèses de tuning • réservation de RAM en virtualisation • choix d’un filesystem (et de ses options) • Tester des hypothèses d’architecture • load-balancing en round-robin ou en dépassement de quota • Apache devantTomcat pour servir les fichiers statiques
  • 10. NUMBERS EVERYONE SHOULD KNOW The cost of I/O (by Paolo Fragomeni) https://medium.com/p/37a93d4e0013 L1-cache 3 cycles L2-cache 14 cycles RAM 250 cycles Disk 41 000 000 cycles Network 240 000 000 cycles Numbers everyone should know (by Jeff Dean, Google) http://static.googleusercontent.com/external_content/untrusted_dlcp/ research.google.com/en/us/people/jeff/stanford-295-talk.pdf, page 13 L1 cache reference 0.5 ns Branch mispredict 5 ns L2 cache reference 7 ns Mutex lock/unlock 100 ns Main memory reference 100 ns Compress 1K bytes with Zippy 10 000 ns Send 2K bytes over 1 Gbps network 20 000 ns Read 1 MB sequentially from memory 250 000 ns Round trip within same datacenter 500 000 ns Disk seek 10 000 000 ns Read 1 MB sequentially from network 10 000 000 ns Read 1 MB sequentially from disk 30 000 000 ns Send packet CA->Netherlands->CA 150 000 000 ns
  • 11. POUR QUOI FAIRE ? • Optimiser le capacity planning (et leTCO) • CPU vs. GDU • DB physique / virtuelle, mutualisée vs. dédiée • NUMA, CPU overcommit
  • 13. COMMENT FAIRE ? • Tester par comparaison… • Outillage simple • peu intrusif • tests faciles à implémenter • tests faciles à répliquer • collecte des données facilitée • analyse des données facilitée
  • 14. CPU
  • 15. CPU - Cas d’école : chiffrement applicatif • Question : • entre 2 processeurs donnés… • l’un disposant du jeu d’instructions AES-NI (serveur R820) • l’autre ne disposant pas de ce jeu d’instruction (serveur R810) • dans une machine virtuelleVMware… • quelle différence de performance peut-on attendre… • sur un traitement applicatif en Java de chiffrement symétrique ?
  • 16. CPU - Cas d’école : chiffrement applicatif • Traitement applicatif
  • 17. CPU - Cas d’école : chiffrement applicatif • CPUs à comparer • vendor_id : GenuineIntel cpu family : 6 model : 26 model name : Intel(R) Xeon(R) CPU E7540 @ 2.00GHz stepping : 4 cpu MHz : 1994.994 cache size : 18432 KB fpu : yes fpu_exception : yes cpuid level : 11 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 syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology tsc_reliable nonstop_tsc aperfmperf pni ssse3 cx16 sse4_1 sse4_2 popcnt hypervisor lahf_lm ida bogomips : 3989.98 clflush size : 64 cache_alignment : 64 address sizes : 40 bits physical, 48 bits virtual power management: vendor_id : GenuineIntel cpu family : 6 model : 37 model name : Intel(R) Xeon(R) CPU E5-4610 0 @ 2.40GHz stepping : 1 cpu MHz : 2399.999 cache size : 15360 KB fpu : yes fpu_exception : yes cpuid level : 13 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 syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq ssse3 cx16 sse4_1 sse4_2 popcnt aes hypervisor lahf_lm ida arat bogomips : 4799.99 clflush size : 64 cache_alignment : 64 address sizes : 40 bits physical, 48 bits virtual power management:
  • 18. CPU - Cas d’école : chiffrement applicatif • Résultats de tirs de perf applicatifs 220,00$ms$ 270,00$ms$ 320,00$ms$ 370,00$ms$ 420,00$ms$ 470,00$ms$ 520,00$ms$ R810$ R820$ en moy. = +7% perc. 50 = +10% perc. 30 = +20%
  • 19. CPU - Cas d’école : chiffrement applicatif • Une tendance se dégage… timidement
  • 20. CPU - Outil : openSSL root@xxx:/home/lpiot/poc_crypto-1.0 # openssl speed (…) Doing aes-256 cbc for 3s on 16 size blocks: 11985663 aes-256 cbc's in 3.00s Doing aes-256 cbc for 3s on 64 size blocks: 4208819 aes-256 cbc's in 3.00s Doing aes-256 cbc for 3s on 256 size blocks: 1135478 aes-256 cbc's in 3.00s Doing aes-256 cbc for 3s on 1024 size blocks: 276032 aes-256 cbc's in 3.00s Doing aes-256 cbc for 3s on 8192 size blocks: 38026 aes-256 cbc's in 3.00s (…) OpenSSL 0.9.8j-fips 07 Jan 2009 built on: Wed Jan 11 17:40:32 UTC 2012 options:bn(64,64) md2(int) rc4(16x,int) des(idx,cisc,4,long) aes(partial) blowfish(ptr2) compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN - DMD32_REG_T=int -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous- unwind-tables -g -fomit-frame-pointer -fno-strict-aliasing -DTERMIO -Wall -fstack-protector -fprofile-use - DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_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 (…) md5 34109.60k 103963.82k 237333.50k 349442.05k 405222.74k hmac(md5) 26625.30k 96095.57k 193378.38k 281552.21k 404815.87k sha1 36680.54k 105444.36k 210998.62k 325011.46k 369740.46k (…) aes-128 cbc 77020.09k 117352.21k 135510.02k 141283.33k 142879.40k aes-192 cbc 69790.14k 101752.17k 115271.42k 119376.21k 120384.17k aes-256 cbc 63923.54k 89788.14k 96894.12k 94218.92k 103836.33k (…) aes-256 ige 90340.65k 93965.35k 96967.68k 97552.38k 97957.21k sign verify sign/s verify/s rsa 512 bits 0.000137s 0.000013s 7317.0 78349.9 rsa 1024 bits 0.000682s 0.000038s 1466.7 26624.4 rsa 2048 bits 0.004286s 0.000130s 233.3 7666.5 rsa 4096 bits 0.030486s 0.000488s 32.8 2047.4 sign verify sign/s verify/s dsa 512 bits 0.000134s 0.000142s 7490.3 7039.3 dsa 1024 bits 0.000375s 0.000420s 2667.3 2383.6 dsa 2048 bits 0.001294s 0.001495s 772.6 668.7
  • 21. CPU - Outil : openSSL • Résultats des tirs openSSL
  • 22. CPU - Outil : sysbench • Déploiement • disponible dans les repositories standards • 170 ko • dépendances : libc + libmysqlclient • Info • véritable boîte à outil : permet aussi de faire des tests sur • le scheduler (option --test=threads) • le mutex (option --test=mutex) • les accès séquentiels / aléatoires à la mémoire (option --test=memory*) • les accès séquentiels / aléatoires en I/O (option --test=fileio) • le moteur de SGBD-R mySQL (option --test=oltp) • manuel : http://sysbench.sourceforge.net/docs/
  • 23. CPU - Outil : sysbench • Usage • compte utilisateur sans droit spécifique • création de nombres premiers ubuntu@xxx:~$ sysbench --test=cpu --cpu-max-prime=20000 run sysbench 0.4.12: multi-threaded system evaluation benchmark Running the test with following options: Number of threads: 1 Doing CPU performance benchmark Threads started! Done. Maximum prime number checked in CPU test: 20000 Test execution summary: total time: 125.4803s total number of events: 10000 total time taken by event execution: 125.4679 per-request statistics: min: 4.71ms avg: 12.55ms max: 149.16ms approx. 95 percentile: 112.83ms Threads fairness: events (avg/stddev): 10000.0000/0.00 execution time (avg/stddev): 125.4679/0.00
  • 24. RAM
  • 25. RAM - Cas d’école : ressources virtuelles réservées • Question : • dans une machine virtuelleVMware… • quelle différence de performance peut-on attendre… • si l’on réserve la RAM • ou si l’on reste en RAM dynamiquement allouée (ballooning)
  • 26. RAM - Outil : bandwidth • Déploiement • sources disponibles sur Internet : http://home.comcast.net/~veritas/bandwidth.html • 332 ko • dépendances (pour la compilation) : make + nasm + gcc • Info • tout automatique • permet aussi de faire des tests sur la bande passante réseau
  • 27. RAM - Outil : bandwidth • Usage • compte utilisateur sans droit spécifique • usage de nice pour forcer le scheduler (droits de sudo sur nice) • produit un graphique BMP dans ./ ubuntu@xxx:~/bandwidth-0.32p$ sudo nice -n -2 ./bandwidth64 This is bandwidth version 0.32p. Copyright (C) 2005-2012 by Zack T Smith. This software is covered by the GNU Public License. It is provided AS-IS, use at your own risk. See the file COPYING for more information. CPU family: GenuineIntel CPU features: MMX SSE SSE2 SSE3 SSSE3 SSE4.1 SSE4.2 AES AVX XD Intel64 Cache 0: L1 data cache, line size 64, 8-ways, 64 sets, size 32k Cache 1: L1 instruction cache, line size 64, 8-ways, 64 sets, size 32k Cache 2: L2 unified cache, line size 64, 8-ways, 512 sets, size 256k Cache 3: L3 unified cache, line size 64, 20-ways, 16384 sets, size 20480k Notation: B = byte, kB = 1024 B, MB = 1048576 B. CPU speed is 1795.67 MHz. Sequential read (128-bit), size = 128 B, loops = 2169503744, 52957.3 MB/s Sequential read (128-bit), size = 256 B, loops = 1066926080, 52088.9 MB/s Sequential read (128-bit), size = 384 B, loops = 722815632, 52933.6 MB/s Sequential read (128-bit), size = 512 B, loops = 536608768, 52391.5 MB/s
  • 28. RAM - Outil : bandwidth • Résultats sans réservation de mémoire
  • 29. RAM - Outil : bandwidth • Résultats avec réservation de mémoire
  • 30. RAM - Outil : sysbench • Déploiement • déjà vu • Info • paramétrage plus fin que bandwidth • accès séquentiels / aléatoires (option --memory-access-mode={seq,rnd}) • restriction aux opérations de lecture / écriture (option --memory-oper={read, write, none}) • restriction à la mémoire globale / locale au thread (option --memory- scope={global,local}) • 3 défauts • pas de test complet (il faut enchaîner les tests seq/rnd, read/write, global/local) • pas de représentation graphique fine • gros défaut : résultats donnés sous forme très synthétique
  • 31. RAM - Outil : sysbench • Usage • compte utilisateur sans droit spécifique ubuntu@xxx:~$ sysbench --test=memory run sysbench 0.4.12: multi-threaded system evaluation benchmark Running the test with following options: Number of threads: 1 Doing memory operations speed test Memory block size: 1K Memory transfer size: 102400M Memory operations type: write Memory scope type: global Threads started! Done. Operations performed: 104857600 (250271.37 ops/sec) 102400.00 MB transferred (244.41 MB/sec) Test execution summary: total time: 418.9756s total number of events: 104857600 total time taken by event execution: 317.1497 per-request statistics: min: 0.00ms avg: 0.00ms max: 24.08ms approx. 95 percentile: 0.00ms Threads fairness: events (avg/stddev): 104857600.0000/0.00 execution time (avg/stddev): 317.1497/0.00
  • 32. I/O
  • 33. I/O - Cas d’école : choix du type de stockage EC2 • Question : • dans une machine virtuelle Amazon WS EC2… • quelle différence de performance peut-on attendre… • si l’on utilise un disque EBS standard • si l’on utilise un disque EBS avec 100 I/O réservées • si l’on utilise le disque local (RAW) • même type de filesystem • mêmes options de filesystem
  • 34. I/O - Outil : bonnie++ • Déploiement • disponible dans les repositories standards • 254 ko • dépendances : libc + libgcc + libstdc++ • Info • bonnie++ permet de s’affranchir des mécanismes de buffering propres à l’OS : on obtient des données d’I/O «pures» • -b no write buffering. fsync() after every write. • -D use direct IO (O_DIRECT) for the bulk IO tests.
  • 35. I/O - Outil : bonnie++ • Usage • compte utilisateur sans droit spécifique • lecture / écriture de fichiers au contenu aléatoire de taille supérieure à la RAM ubuntu@xxx:~$ bonnie++ -d ~/bonnie/ -s 3500 -n 10:5000:2000:10 Writing a byte at a time...done Writing intelligently...done Rewriting...done Reading a byte at a time...done Reading intelligently...done start 'em...done...done...done...done...done... Create files in sequential order...done. Stat files in sequential order...done. Delete files in sequential order...done. Create files in random order...done. Stat files in random order...done. Delete files in random order...done. Version 1.96 ------Sequential Output------ --Sequential Input- --Random- Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP ip-10-33-137- 3500M 131 94 33126 6 27059 6 325 91 118166 13 5126 102 Latency 169ms 320ms 4234ms 95407us 241ms 4340us Version 1.96 ------Sequential Create------ --------Random Create-------- ip-10-33-137-25 -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files:max:min /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 10:5000:2000/10 3894 28 +++++ +++ 13717 69 4423 29 +++++ +++ 13381 78 Latency 72274us 24339us 72206us 72164us 72109us 47368us 1.96,1.96,ip-10-33-137-25,1,1377459694,3500M,, 131,94,33126,6,27059,6,325,91,118166,13,5126,102,10,5000,2000,,10,3894,28,+++++,+++,13717,69,4423,29,+++++,+++, 13381,78,169ms,320ms,4234ms,95407us,241ms,4340us,72274us,24339us,72206us,72164us,72109us,47368us
  • 36. I/O - Outil : bonnie++ 0" 10000" 20000" 30000" 40000" 50000" 60000" 70000" 80000" 90000" 100000" 110000" 120000" 130000" 140000" Seq."Output"Per" Chr"K/s" Block"K/s" Rewrite"K/s" Seq."Input"Per" Chr"K/s" Block"K/s" Random"seeks/s" Seq."Create/s" Delete/s" Random"Create/ s" Delete/s" bonnie_ebs_1.results" bonnie_ebs_2.results" bonnie_ebs_3.results" bonnie_dedicated_io_1.results" bonnie_dedicated_io_2.results" bonnie_dedicated_io_3.results" bonnie_no_ebs_1.results" bonnie_no_ebs_2.results" bonnie_no_ebs_3.results"
  • 37. I/O - Outil : bonnie++ 0" 10" 20" 30" 40" 50" 60" 70" 80" 90" 100" Seq."Output"Per" Chr"%CPU" Block"%CPU" Rewrite"%CPU" Seq."Input"Per" Chr"%CPU" Block"%CPU" Random"seeks" %CPU" Seq."Create" %CPU" Delete"%CPU" Random"Create" %CPU" Delete"%CPU" bonnie_ebs_1.results" bonnie_ebs_2.results" bonnie_ebs_3.results" bonnie_dedicated_io_1.results" bonnie_dedicated_io_2.results" bonnie_dedicated_io_3.results" bonnie_no_ebs_1.results" bonnie_no_ebs_2.results" bonnie_no_ebs_3.results"
  • 38. I/O - Outil : iozone • Déploiement • sources disponibles sur Internet : http://www.iozone.org/ • 254 ko • dépendances (pour la compilation) : make + gcc • Info • outil ultra-complet • sait travailler en file / mmap • sait tester le direct IO • sait purger le cache processeur, le cache système • teste avec une large taille de buffers • outil de diagnostic également • sait vérifier chaque octet pour débusquer un système I/O défectueux
  • 39. I/O - Outil : iozone • Usage • compte utilisateur sans droit spécifique • lecture / écriture de fichiers au contenu aléatoire de taille supérieure à la RAMubuntu@xxx:~/PerfUG_20130829/iozone3_420/src/current$ ./iozone -Ra Iozone: Performance Test of File I/O Version $Revision: 3.420 $ Compiled for 64 bit mode. Build: linux-AMD64 Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins (…) Run began: Sun Aug 25 15:32:23 2013 Excel chart generation enabled Auto Mode Command line used: ./iozone -Ra Output is in Kbytes/sec Time Resolution = 0.000001 seconds. Processor cache size set to 1024 Kbytes. Processor cache line size set to 32 bytes. File stride size set to 17 * record size. random random bkwd record stride KB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 64 4 492717 942521 1562436 2203800 1518251 842003 1066042 1013707 1421755 913649 998622 1452528 2133730 64 8 520419 1143223 2561267 3363612 1933893 1421755 1484662 1255511 2067979 955947 1124074 1492919 3203069 64 16 608965 1492919 2892445 3165299 2379626 1070292 1421755 1734015 1526887 1083249 969761 1562436 3791156 (…) 128 4 465708 990891 1778862 2202044 1579934 1015251 1243315 1085013 1455701 1123617 753179 1487977 1827299 128 8 592699 1040839 1424795 3468030 2286447 1102844 1508887 1603529 1561553 1102844 1015251 1598754 2608629
  • 40. I/O - Outil : iozone 4 32 256 2048 16384 0 10000 20000 30000 40000 50000 60000 70000 80000 90000 100000 110000 120000 130000 140000 150000 160000 170000 180000 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 131072 262144 524288 1048576 Record size in Kbytes Kbytes/sec File size in Kbytes Write performance 170000-180000 160000-170000 150000-160000 140000-150000 130000-140000 120000-130000 110000-120000 100000-110000 90000-100000 80000-90000 70000-80000 60000-70000 50000-60000 40000-50000 30000-40000 20000-30000 10000-20000 0-10000 CPU Cache effect Memory / buffer cache Not measured Physical disk I/ O Kbytes/sec http://www.iozone.org Don Capps
  • 42. HTTP - Cas d’école : comparaison de serveurs • Question : • dans une même machine virtuelleVMware… • quelle différence de performance peut-on attendre… • entre différents serveurs Web • apache2 • nginx • shortfin • pour la publication de fichiers statiques ?
  • 43. HTTP - Outil : apachebench • Déploiement • disponible dans les apache-utils • 55 ko • dépendances : libapr1, libaprutil1, libc6, libssl1.0.0 • Info • peut-on faire un outil plus simple et plus parlant ?
  • 44. HTTP - Outil : apachebench • Usage • compte utilisateur sans droit spécifique • -c : nombre de threads simultané (i.e. utilisateurs concurrents) • -n : nombre de requêtes totales ubuntu@xxx:~$ ab -c 200 -n 2000 http://localhost:8082/ asf-logo.gif This is ApacheBench, Version 2.3 <$Revision: 655654 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http:// www.apache.org/ Benchmarking localhost (be patient) Completed 200 requests (…) Completed 1800 requests Completed 2000 requests Finished 2000 requests Server Software: nginx/1.1.19 Server Hostname: localhost Server Port: 8082 Document Path: /asf-logo.gif Document Length: 7279 bytes Concurrency Level: 200 Time taken for tests: 1.200 seconds Complete requests: 2000 Failed requests: 0 Write errors: 0 Total transferred: 14982000 bytes HTML transferred: 14558000 bytes Requests per second: 1666.60 [#/sec] (mean) Time per request: 120.004 [ms] (mean) Time per request: 0.600 [ms] (mean, across all concurrent requests) Transfer rate: 12191.93 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 50 182.8 7 1022 Processing: 3 64 42.7 60 685 Waiting: 2 51 35.0 52 679 Total: 22 114 192.3 78 1126 Percentage of the requests served within a certain time (ms) 50% 78 66% 89 75% 93 80% 96 90% 111 95% 199 98% 1117 99% 1122 100% 1126 (longest request)
  • 45. HTTP - Outil : apachebench • Résultats Server Software: Apache/2.2.22 Server Port: 80 (…) Concurrency Level: 200 Time taken for tests: 3.897 seconds Complete requests: 2000 Failed requests: 0 Write errors: 0 Total transferred: 15068000 bytes HTML transferred: 14558000 bytes Requests per second: 513.25 [#/sec] (mean) Time per request: 389.671 [ms] (mean) Time per request: 1.948 [ms] (mean, across all concurrent requests) Transfer rate: 3776.23 [Kbytes/sec] receiv. Connection Times (ms) min mean[+/-sd] median max Connect: 0 12 15.5 4 80 Processing: 14 219 689.3 86 3874 Waiting: 6 205 691.3 63 3868 Total: 24 232 688.4 93 3889 Percentage of the requests served within a certain time (ms) 50% 93 66% 99 75% 108 80% 125 90% 150 95% 185 98% 3882 99% 3885 100% 3889 (longest request) Server Software: nginx/1.1.19 Server Port: 8082 (…) Time taken for tests: 1.200 seconds Complete requests: 2000 Failed requests: 0 Write errors: 0 Total transferred: 14982000 bytes HTML transferred: 14558000 bytes Requests per second: 1666.60 [#/sec] (mean) Time per request: 120.004 [ms] (mean) Time per request: 0.600 [ms] (mean, across all concurrent requests) Transfer rate: 12191.93 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 50 182.8 7 1022 Processing: 3 64 42.7 60 685 Waiting: 2 51 35.0 52 679 Total: 22 114 192.3 78 1126 Percentage of the requests served within a certain time (ms) 50% 78 66% 89 75% 93 80% 96 90% 111 95% 199 98% 1117 99% 1122 100% 1126 (longest request)
  • 46. HTTP - Outil : apachebench • Résultats Server Software: Apache/2.2.22 Server Port: 80 (…) Concurrency Level: 200 Time taken for tests: 3.897 seconds Complete requests: 2000 Failed requests: 0 Write errors: 0 Total transferred: 15068000 bytes HTML transferred: 14558000 bytes Requests per second: 513.25 [#/sec] (mean) Time per request: 389.671 [ms] (mean) Time per request: 1.948 [ms] (mean, across all concurrent requests) Transfer rate: 3776.23 [Kbytes/sec] receiv. Connection Times (ms) min mean[+/-sd] median max Connect: 0 12 15.5 4 80 Processing: 14 219 689.3 86 3874 Waiting: 6 205 691.3 63 3868 Total: 24 232 688.4 93 3889 Percentage of the requests served within a certain time (ms) 50% 93 66% 99 75% 108 80% 125 90% 150 95% 185 98% 3882 99% 3885 100% 3889 (longest request) Server Software: Apache-Coyote/1.1 Server Port: 8080 (…) Concurrency Level: 200 Time taken for tests: 5.181 seconds Complete requests: 2000 Failed requests: 0 Write errors: 0 Total transferred: 4626000 bytes HTML transferred: 4132000 bytes Requests per second: 386.06 [#/sec] (mean) Time per request: 518.055 [ms] (mean) Time per request: 2.590 [ms] (mean, across all concurrent requests) Transfer rate: 872.03 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 75 245.6 0 1040 Processing: 8 225 494.1 147 4161 Waiting: 5 212 494.4 144 4157 Total: 8 300 659.0 154 5161 Percentage of the requests served within a certain time (ms) 50% 154 66% 183 75% 193 80% 205 90% 240 95% 1152 98% 2429 99% 5156 100% 5161 (longest request)
  • 47. HTTP - Outil : apachebench • Résultats Server Software: Apache/2.2.22 Server Port: 80 (…) Concurrency Level: 200 Time taken for tests: 3.897 seconds Complete requests: 2000 Failed requests: 0 Write errors: 0 Total transferred: 15068000 bytes HTML transferred: 14558000 bytes Requests per second: 513.25 [#/sec] (mean) Time per request: 389.671 [ms] (mean) Time per request: 1.948 [ms] (mean, across all concurrent requests) Transfer rate: 3776.23 [Kbytes/sec] receiv. Connection Times (ms) min mean[+/-sd] median max Connect: 0 12 15.5 4 80 Processing: 14 219 689.3 86 3874 Waiting: 6 205 691.3 63 3868 Total: 24 232 688.4 93 3889 Percentage of the requests served within a certain time (ms) 50% 93 66% 99 75% 108 80% 125 90% 150 95% 185 98% 3882 99% 3885 100% 3889 (longest request) Server Software: shortfin/0.9.5 Server Port: 8081 (…) Concurrency Level: 200 Time taken for tests: 11.675 seconds Complete requests: 2000 Failed requests: 0 Write errors: 0 Total transferred: 14738000 bytes HTML transferred: 14558000 bytes Requests per second: 171.31 [#/sec] (mean) Time per request: 1167.470 [ms] (mean) Time per request: 5.837 [ms] (mean, across all concurrent requests) Transfer rate: 1232.80 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 16 18.7 8 78 Processing: 960 1122 265.3 1061 2070 Waiting: 2 56 39.2 50 220 Total: 975 1138 269.7 1066 2117 Percentage of the requests served within a certain time (ms) 50% 1066 66% 1078 75% 1103 80% 1116 90% 1150 95% 2073 98% 2117 99% 2117
  • 48. HTTP - Outil : wrk • Déploiement • disponible sur GitHub : https://github.com/wg/wrk • 55 ko • dépendances (à la compilation) : libssl-dev • Info • similaire à apachebench • Usage • compte utilisateur sans droit spécifique • -t : nombre de threads simultané (i.e. utilisateurs concurrents) • -c : nombre de connexions ouvertes simultanées • -d : durée du test
  • 49. HTTP - Outil : wrk • Résultats ubuntu@ip-10-33-173-90:~/PerfUG_20130829/wrk-master $ ./wrk -t12 -c400 -d30s http://localhost:80/asf- logo.gif # Apache Running 30s test @ http://localhost:80/asf-logo.gif 12 threads and 400 connections Thread Stats Avg Stdev Max +/- Stdev Latency 17.02s 7.64s 28.51s 61.51% Req/Sec 229.50 571.66 7.11k 93.15% 71474 requests in 30.04s, 512.26MB read Socket errors: connect 0, read 99, write 0, timeout 2995 Requests/sec: 2379.20 Transfer/sec: 17.05MB ubuntu@ip-10-33-173-90:~/PerfUG_20130829/wrk-master $ ./wrk -t12 -c400 -d30s http://localhost:8081/asf- logo.gif # shortfin Running 30s test @ http://localhost:8081/asf- logo.gif 12 threads and 400 connections Thread Stats Avg Stdev Max +/- Stdev Latency 166.15ms 107.50ms 5.74s 99.77% Req/Sec 198.99 35.27 301.00 72.18% 71568 requests in 30.13s, 502.95MB read Socket errors: connect 0, read 52, write 0, timeout 56 Requests/sec: 2375.37 Transfer/sec: 16.69MB ubuntu@ip-10-33-173-90:~/PerfUG_20130829/wrk-master $ ./wrk -t12 -c400 -d30s http://localhost:8080/asf- logo.gif # Tomcat Running 30s test @ http://localhost:8080/asf- logo.gif 12 threads and 400 connections Thread Stats Avg Stdev Max +/- Stdev Latency 454.81ms 1.06s 24.04s 94.18% Req/Sec 50.56 15.17 103.00 73.15% 17324 requests in 30.07s, 18.90MB read Socket errors: connect 0, read 37, write 0, timeout 1803 Non-2xx or 3xx responses: 17324 Requests/sec: 576.12 ubuntu@ip-10-33-173-90:~/PerfUG_20130829/wrk-master $ ./wrk -t12 -c400 -d30s http://localhost:8082/asf- logo.gif # nginx Running 30s test @ http://localhost:8082/asf- logo.gif 12 threads and 400 connections Thread Stats Avg Stdev Max +/- Stdev Latency 758.08ms 182.88ms 849.17ms 93.11% Req/Sec 437.60 0.86k 8.33k 93.22% 126041 requests in 30.03s, 0.88GB read Requests/sec: 4197.24 Transfer/sec: 30.00MB
  • 51. DB - Outil : sysbench • Déploiement • déjà vu • Info • permet de bencher une instance de base de données • crée une table et un jeu de données • passe des requêtes de différentes natures et produit des restitutions SELECT c FROM sbtest WHERE id=N SELECT c FROM sbtest WHERE id BETWEEN N AND M SELECT SUM(K) FROM sbtest WHERE id BETWEEN N and M SELECT c FROM sbtest WHERE id between N and M ORDER BY c SELECT DISTINCT c FROM sbtest WHERE id BETWEEN N and M ORDER BY c UPDATEs on index / non-index column: UPDATE sbtest SET k=k+1 WHERE id=N UPDATE sbtest SET c=N WHERE id=M DELETE FROM sbtest WHERE id=N INSERT INTO sbtest VALUES (...)