performance serveur et apache

37
Performance serveur et Apache William Agasvari Co-fondateur de Solution d’hébergement Open source professionnel 20 janvier 2015 – Ecole 42 - AFUP

Upload: afup-paris

Post on 17-Jul-2015

515 views

Category:

Internet


3 download

TRANSCRIPT

Page 1: Performance serveur et apache

Performance serveur et Apache

William AgasvariCo-fondateur de

Solution d’hébergement Open source professionnel

20 janvier 2015 – Ecole 42 - AFUP

Page 2: Performance serveur et apache

Performance serveur et Apache

Le principal problème matériel qui affecte les performances du serveur web est la mémoire vive. Un serveur web ne devrait jamais avoir à utiliser le swap, car le swapping augmente le temps de réponse de chaque requête !

Fondamentale

Page 3: Performance serveur et apache

Performance serveur et Apache

La lenteur du serveur web incitera les utilisateurs à cliquer sur "Stop", puis "Charger à nouveau", ce qui a pour effet d'augmenter encore la charge du serveur.

Et le résultat ?

Fondamentale

Page 4: Performance serveur et apache

Performance serveur et Apache

Page 5: Performance serveur et apache

Performance serveur et Apache

Test de performance

Page 6: Performance serveur et apache

Performance serveur et Apache

« le processeur, la carte réseau et les disques

doivent être suffisamment rapides, où "suffisamment rapide" doit être déterminé

par l'expérience.  »

Page 7: Performance serveur et apache

Performance serveur et Apache

«l'expérience »

Page 8: Performance serveur et apache

Performance serveur et Apache

Étape 1 : Analyse de Référence

•Définir le système à tester, les objectifs (métiers, techniques, économiques).•Définir les scénarios, par rapport à une analyse complète des risques métiers et techniques.•Définir le modèle de charge, par rapport au modèle d'usage de l'application.

Étape 2 : Tests Préliminaires

•Mettre en œuvre des moyens et définir la plate-forme de test.•Exécuter les tests de charge.•Analyser les résultats.

Test de performance

Page 9: Performance serveur et apache

Performance serveur et Apache

Étape 3 : Test de Charge à Grande Échelle

•Mettre en œuvre des moyens et définir la plate-forme de test.•Exécuter les tests de charge.•Analyser les résultats.•Optimiser le système.

Test de performance

Page 10: Performance serveur et apache

Performance serveur et Apache

Les outils pour notre expérience

•Un serveur Web virtuel avec LAMP. •Un site web statique et dynamique ( php , cgi , perl ).•Un serveur virtuel Client avec l’application « Siege ».

Test de performance

Page 11: Performance serveur et apache

Performance serveur et Apache

Siege est un outil permettant de faire du benchmark de votre site web en simulant un grand nombre de connexions simultanées. Il permet ainsi de tester la montée en charge de vos applications web.

siege -d1 –c30 -t1m http://mon-site-web:80/

Test de performance

Page 12: Performance serveur et apache

Performance serveur et Apache

Retour à notre Expérience avec

Siege !

Test de performance

Page 13: Performance serveur et apache

Performance serveur et Apache

Stresser Apache avec des pages

statiques

Test de performance

Page 14: Performance serveur et apache
Page 15: Performance serveur et apache

Performance serveur et Apache

Stresser Apache avec des pages

dynamiques complexe

Test de performance

Page 16: Performance serveur et apache
Page 17: Performance serveur et apache

Performance serveur et Apache

Analyse du résultât • CPU chargé

•Mémoire saturée•Charge processus importante

•Arrêt critique du serveur

Test de performance

Page 18: Performance serveur et apache

Performance serveur et Apache

Que faire ?

Test de performance

Page 19: Performance serveur et apache

Performance serveur et Apache

Solutions

Test de performance

Page 20: Performance serveur et apache

Performance serveur et Apache

Politique de temporisation

d’accés

Test de performance

Page 21: Performance serveur et apache

Performance serveur et Apache

• Modules apache• Règles « pare-feu »• Analyses de « log »

Test de performance

Page 22: Performance serveur et apache

Performance serveur et Apache

APACHE« Module evasive »

Mod_evasive est un module Apache pour contrer les attaques DOS. Celui-ci est capable de détecter lorsqu'un utilisateur demande un trop grand nombre de pages sur un site web, sur un délai de temps très court.

Test de performance

Page 23: Performance serveur et apache
Page 24: Performance serveur et apache

Performance serveur et Apache

Analyses de « log »« Fail2ban »

Fail2ban est un framework de prévention contre les intrusions, écrit en Python. Il fonctionne sur les systèmes POSIX possédant une interface de contrôle des paquets (tel que TCP Wrapper) ou un pare-feu (tel que Netfilter).

Test de performance

Page 25: Performance serveur et apache

Performance serveur et Apache

Analyses de « log »« Fail2ban »

[Definition]

_daemon = wordpress

failregex = ^<HOST> - -.*"[POST|GET].*wp-login.php.*

Test de performance

Page 26: Performance serveur et apache

Performance serveur et Apache

Analyses de « log »

« Fail2ban »[apache-wp-login]

enabled = true

port = http,https

filter = wp-login

logpath = /var/log/apache2/fail2ban_track.log

findtime = 30

maxretry = 10

bantime = 1800

Test de performance

Page 27: Performance serveur et apache

Performance serveur et Apache

Solution•Politique de temporisation d’accés / QOS •Création serveur reverse Proxy

Test de performance

Page 28: Performance serveur et apache

Performance serveur et Apache

Solution QOSTC ( trafic control )

une application transmet des données, le noyau prépare le paquet, le filtre et le place

dans la file d’attente appropriée, le gestionnaire vide cette file d’attente et

envoie sur la carte réseau en fonction de son algorithme

Test de performance

Page 29: Performance serveur et apache

Performance serveur et Apache

TC ( trafic control ) + Iptables

/sbin/tc class add dev eth0 parent 1:1 classid 1:5 htb rate 512kbps ceil 640kbps prio 1

/sbin/tc class add dev eth0 parent 1:1 classid 1:6 htb rate 100kbps ceil 160kbps prio 0

/sbin/iptables -A OUTPUT -t mangle -p tcp --sport 80 -j MARK --set-mark 5

/sbin/iptables -A INPUT -t mangle -p tcp --sport 80 -j MARK --set-mark 5

/sbin/iptables -A OUTPUT -t mangle -p tcp --sport 22 -j MARK --set-mark 6

Test de performance

Page 30: Performance serveur et apache

Performance serveur et Apache

SolutionSquidNginx

Varnish

Test de performance

Page 31: Performance serveur et apache

Performance serveur et Apache

Test de performance

Nginx est un reverse proxy ( http, Mail )Igor Sysoev a commencé à le développer en 2002 pour un site russe à fort trafic ( 6,5% )

Page 32: Performance serveur et apache

Performance serveur et Apache

Test de performanceReverse Proxy

Page 33: Performance serveur et apache

Performance serveur et Apache

location / {

proxy_pass http://192.168.1.18:8080; proxy_cache my-cache; proxy_cache_valid 5s; expires 10s; … proxy_cache_use_stale error timeout invalid_header updating; }

location ~*^.+(swf|jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$ { #proxy_pass http://www.grevok.com:8080; proxy_pass http://192.168.1.18:8080; proxy_cache my-cache; proxy_cache_valid 1m; expires max; limit_req zone=traffic-control burst=5; }

Test de performanceCache de données

Page 34: Performance serveur et apache

Performance serveur et Apache

# www limit_req_zone $binary_remote_addr zone=traffic-control:10m rate=25r/s; limit_conn_zone $binary_remote_addr zone=conn_limit_per_ip:10m;

location / {

#proxy_pass http://www.grevok.com:8080; proxy_pass http://192.168.1.18:8080; proxy_cache my-cache; proxy_cache_valid 5s; expires 10s; limit_req zone=traffic-control burst=5; limit_conn conn_limit_per_ip 25; limit_conn slimits 25;

proxy_cache_use_stale error timeout invalid_header updating; }

Test de performanceLimitation d’accés

Page 35: Performance serveur et apache

Test de performance

Page 36: Performance serveur et apache

Performance serveur et Apache

Questions ?

Test de performance

Page 37: Performance serveur et apache

Performance serveur et Apache The End

Solution d’hébergement Open source professionnel

20 janvier 2015 – Ecole 42 - AFUP