Optimisation des serveurs pour TYPO3 - PowerPoint PPT Presentation

1 / 17
About This Presentation
Title:

Optimisation des serveurs pour TYPO3

Description:

Si aucun processus n'est libre, le service Apache en d marre et lui affecte une connexion. Ceci diminue drastiquement les temps de r ponse du serveur. ... – PowerPoint PPT presentation

Number of Views:114
Avg rating:3.0/5.0
Slides: 18
Provided by: uniT69
Category:

less

Transcript and Presenter's Notes

Title: Optimisation des serveurs pour TYPO3


1
Optimisation des serveurs pour TYPO3
  • TYPO3 Summer University 2009 - ANNECY

Date 24/06/2009
2
Quoi ?
  • Installer uniquement le nécessaire
  • Apache un serveur qui doit être adapté en
    fonction des besoins
  • Tunning du serveur
  • Linux VS Windows
  • Utilisation de proxy / cache
  • Mise en place de cluster Apache
  • Optimisation Mysql
  • Mise en place dun serveur dédié avantage /
    inconvénient
  • Utilisation dun cluster NDB
  • Optimisation de TYPO3
  • le cache, les requêtes SQL et Real URL
  • Questions / Réponses

3
Installer uniquement le nécessaire
  • 1er règle dor plus de services sont installés,
    plus cela consomme
  • Installer les packages nécessaire au bon
    fonctionnement de TYPO3
  • - Packages Apache 2 / PHP 5.2.x / PHP5 Cli /
    Mysql-server-5.0
  • - Packages PHP php5-mysql / php5-gd
  • - Applications XPDF / CATDOC / IMAGEMAGIX
  • - Optionnel SSH ou FTPD / un éditeur VIM ou
    autres / un serveur de mail sortant ou un MTA
    (postfix, cirus, nullmailer ....)
  • NOTES Certains autres packages peuvent être
    nécessaire pour le bon fonctionnement des
    applications php5-ldap / php5-curl / ....
  • Eviter de faire faire au serveur plusieurs choses
  • - éviter dinstaller les outils de supervision
    (nagios / cacti) - déporter le sur un autre
    serveur
  • - éviter autant que faire se peut les interfaces
    graphiques (sauf windows et Mac)
  • 2ème règle dor éviter les installations
    packagées des OS

4
Apache un serveur qui doit être adapté en
fonction des besoins
  • Apache est un serveur qui à la capacité dêtre
    adapté en fonction des besoins
  • Site dédié aux connexions bas débit
  • Site à fort services interactifs avec
    linternaute (commentaires / forum / recherche)
  • Site de contenus (institutionnel) avec un gros
    traffic
  • ect...
  • Il est donc possible de configurer Apache en
    fonction de son site. Une bonne connaissance des
    objectifs en termes
  • de trafic,
  • et de fonctionnalités sous TYPO3
  • est nécessaire.

5
Tunning du serveur 1/3
  • Sous Linux / Unix / MAC comme sous Windows,
    lensemble des paramètres que nous allons aborder
    permettent une optimisation du serveur en
    fonction de ce que lon veut lui faire faire.
  • Optimisations générales
  • timeout Valeur par défaut constatée 300 /
    valeur conseillée 40. Cette valeur peut être
    descendu jusquà 10, mais attention aux
    connexions de type RTC ou EDGE. Ce paramètre
    défini le délai dinnactivité dune connexion
    entrante avant que celle-ci ne soit considérée
    comme annulée. Un client WEB classique ne doit
    pas dépasser 600 secondes (5 minutes) entre le
    début de la transaction WEB et la fin de la
    demande.
  • Note Ceci nimpacte le POST de fichiers
    volumineux puisque la totalité de la valeur du
    timeout est appliquée entre chaque paquet de la
    transaction TCP.
  • KeepAlive Valeur par défaut constatée On /
    valeur conseillée On. Ce paramètre permet au
    client dutiliser plusieurs fois la même
    connexion TCP pour effectuer de multiples
    requêtes.
  • Par exemple une contenant plusieurs images
    pourra être récupérée entièrement en minimisant
    le nombre de connexion émisse au serveur pas le
    client.
  • Inconvénient Ceci présente un inconvénient pour
    les serveurs très chargés car le serveur et le
    client maintienne la connexion ouverte pendant
    quelques secondes une fois laffichage de la page
    terminé, cela dans lattente dune transaction.
    Cela peut amener le pool de connexion ouverte à
    augmenter ce qui peut engorger le serveur.

6
Tunning du serveur 2/3
  • KeepAliveTimeOut Valeur par défaut constatée
    15 / valeur conseillée 5 (2 pour un serveur très
    chargé, si on constate que le nombre de processus
    apache devient trop important gt 200). Ce
    paramètre définit le temps ou une connexion reste
    ouverte après la fin de la dernière transaction
    dans lattente dune prochaine. Ce paramètre na
    que du sens si le KeepAlive est à on.
  • Note De manière générale, 5 secondes dattente
    entre deux requêtes pour une même page est
    largement suffisant, cela permet de libérer des
    connexion pour les autres clients.
  • StartServers Valeur par défaut constatée 5 /
    valeur conseillée 25. Ce paramètre défini le
    nombre de serveur Apache lancé et prêt à répondre
    aux requêtes clients au démarrage du service. A
    chaque nouveau client qui se connecte au serveur,
    un processus libre doit répondre. Si aucun
    processus nest libre, le service Apache en
    démarre et lui affecte une connexion. Ceci
    diminue drastiquement les temps de réponse du
    serveur.
  • Note La mémoire occupée par un processus
    fraîchement démarré est assez négligeable car les
    librairies sont mutualisées entre les processus.
    Démarrer plusieurs serveurs nest donc pas un
    facteur de surcharge de la mémoire.
  • MinSpareServers Valeur par défaut constatée 5
    / valeur conseillée 20. Afin daméliorer les
    performances, Apache propose un système de
    processus libre (en attente de connexion client).
    Ce paramètre définit le nombre minimum de
    processus libres à chaque instant. Si des clients
    se connecte, diminuant ainsi le nombre de
    processus ne pouvant traiter de requêtes et le
    portant sous la valeur indiqué, le service Apache
    démarre des processus en prévision de futures
    requêtes.

Â
7
Tunning du serveur 3/3
  • MaxSpareServers Valeur par défaut constatée
    10 / valeur conseillée 30. Lorsque les clients
    terminent leurs requêtes, ils libèrent des
    processus (après le KeepAliveTimeOut, valeur en
    seconde). Ce paramètre défini le nombre maximum
    de serveur(s) inactif(s) devant rester charger?
    Si la déconnexion de client porte le nombre de
    processus inactif(s) au dessous de la valeur de
    ce paramètre, le serveur arrête alors le nombre
    de processus pour retomber à la valeur spécifiée.
  • Note Ceci libère de la mémoire car les
    processus ayant répondu à des requêtes occupent
    plus de mémoire que les processus nouvellement
    créés.
  • MaxClients Valeur par défaut constatée 256 /
    valeur conseillée 256. Ce paramètre défini le
    nombre maximum de processus pouvant être lancés
    simultanément.
  • Note Si 256 processus sont lancés
    simultanément, le service Apache ignorera les
    nouvelles requêtes de clients ceux-xi auront
    alors pour résultat une page derreur. Pour les
    machines ayant peu de ressources (CPU et/ou
    mémoire), ce paramètre permet de limiter la
    charge et déviter de voir la swap utilisée, ou
    davoir des processus saturant rapidement le CPU.
  • MaxRequestPerChild Valeur par défaut
    constatée 0 / valeur conseillée 1000. Cette
    directive quau bout dun certain nombre de
    requêtes servies, un processus doit être arrêté.
    La valeur 0 indique que le nombre de requêtes
    nest pas un critère d'arrêt de processus.
  • Note Il est toujours préférable de renouveler
    de temps en temps les processus cela permet de
    saffranchir déventuel bogue du moteur Apache ou
    PHP qui provoquerait des fuites de mémoires.
  • Dernières notes La 1er règle dor énoncée tout
    à l'heure est valable également pour les modules
    liés à Apache comme par exemple mod_cgi ou
    mod_spelling, mod_actions ect....

Â
8
Linux VS Windows
  • Quelques chiffres plus de 70 des serveurs WEB
    toutes technos confondues sont basés sous des
    LINUX / UNIX (source Framasoft).
  • 79,81 des TYPO3 tourne sous un serveur LINUX
    (source infoglobe)
  • Apache représente 66 des serveurs WEB (source
    google)
  • Les liens symboliques ne sont supportés quà
    partir de Windows server ?? (Vista OK)
  • La gestion des .htaccess sous Apache Windows
  • Windows et IIS ne supporte pas la gestion de
    réécriture dURL sans les règles ISAPI

A ce jour, les tests réalisés, chez divers
clients prouvent que la montée en charge dun
TYPO3 sur environnement LAMP est meilleur que
sous un environnement WAMP. Cependant dans le
cadre dIntranet ou le trafic est maîtrisé, dans
le cadre de développement (attention au passage
en OS de production) Windows server répond à un
certain besoin
9
Utilisation de serveur proxy cache 1/2
  • Dans le cas de grandes charges serveur, générés
    par un fort trafic, lutilisation dun proxy peut
    être une bonne alternative afin de décharger le
    ou les serveurs APACHE.
  • Avantages
  • Déporter la charge Apache sur les serveurs Cache
    / Proxy
  • Utilisation doptimisation automatique par
    exemple lapplication SQUID est capable de
    déterminer les pages les plus demandées et de les
    faire monter dans un cache mémoire les moins
    demandées seront quand à elle dans un cache sur
    disque dur
  • Support dune forte charge
  • Montage en cluster simplifiée
  • Inconvénients
  • Réglage de TYPO3 pour quil modifie son header
  • Développement spécifique pour le vidage des
    caches lors dune mise à jour.
  • Gestion de listes dexclusions dURL
    (fonctionnalités interactives / formulaires /
    ect...)

10
Utilisation de serveur proxy cache 2/2
Serveur(s) APACHE
Les serveurs SQUID interroge le serveur Apache
sil ne possède pas la page (Création ou cache
vidé)
Proxy SQUID
Proxy SQUID
L'internaute interroge directement le serveur
Apache pour les pages exclues du cache proxy
L'internaute interroge directement le ou les
serveurs SQUID pour les pages cachés
11
Mise en place de cluster Apache 1/2.
  • Une mise en place complexe faisant appel à
    plusieurs concept
  • La répartition des flux réseaux (DNS Roud Robin)
  • La surveillance des services (HEARTHBEAT)
  • Le système de fichier en mode coopératif ou à
    accès concurrentiel
  • Gestion des temp de TYPO3 séparé
    (/typo3temp/temp_)
  • Utilisation de filer déporté (baie SAN / NAS
    /ISCSI) ou synchronisation des données
  • Une maintenance plus complexe
  • Surveillance des services et des serveurs
  • en cas dun crash serveur, la charge se déporte
    sur les serveurs restants (dégradation de service
    ou écroulement en cascade)
  • Capacité dintervention rapide en cas de crash du
    système
  • Attention Ne pas confondre cluster de
    répartition de charge et cluster de haute
    disponibilité les mécanisme ne sont pas les même.

12
Mise en place de cluster Apache 2/2.
Exemple dune architecture en cluster avec
répartition de charge
Filer SAN avec Système de fichier à accès
concurrentiel
SGBD
Apache 1
Apache 2
Apache 3
DNS Round Robin
13
Optimisation MySql
  • MySql est de manière simple difficilement
    optimisable, en effet seulement quelques
    paramètres peuvent être modifié.
  • De plus les grandes optimisations sont possibles
    en re-compilant les sources.
  • Cependant quelques règles simples permettent de
    gagner des performances
  • Placer des index pertinent
  • Utiliser loptimisateur intégré à Mysql5 -
    optimizer_prune_level (indique le niveau
    doptimisation des requêtes valeur 0 ou 1)-
    optimizer_search_depth (indique la profondeur
    danalyse Valeur de 0 à 4, 0détermination
    automatique)
  • Bien régler les valeurs suivantes
  • key_buffer_size
  • table_cache
  • Note Importante Toutes les optimisations MySql
    ne pourront pallier à des requêtes SQL mal
    écrite chaque développeur doit optimiser ses
    requêtes.

14
Mise en place dun serveur dédié avantage /
inconvénient
  • Avantages
  • Répartition de la charge
  • Meilleurs performances sur des grosses requêtes
  • Inconvénient
  • Gestion de deux machines physiques
  • Saturation réseaux
  • temps de latence due au protocole TCP/IP (TTL)
  • La mise en place dun serveur dédié Mysql est
    dans la plupart des cas une optimisation
    intéressante. Attention toutefois à mettre un
    lien réseau privilégié entre le serveur WEB
    Apache et le serveur MySql

15
Utilisation dun cluster NDB 1/2
  • Le cluster NDB permet de répartir de la charge
    sur plusieurs noeuds de base de donnée (noeud
    Mysql et noeud de données) et de faire de la
    réplication maître/esclave - esclave/maître. Le
    tout est contrôlé par des manageurs.

Le schéma théorique présenté ci dessus peut être
simplifié dans la pratique. on peut installer sur
le même serveur le noeud Mysql et le noeud de
données.
16
Utilisation dun cluster NDB 2/2
Sous TYPO3, on peut donc imaginer facilement
larchitecture suivante.
NDB_MGM

Toutes les tables sont de type NDB sauf les
tables cache_ et évetuellement index_ et
tx_realurl_

Mysql data nodes
Mysql data nodes
Deux manageurs pour éviter le crash en cas de
panne matériel
NDB_MGM
Apache 1 TYPO3
Apache 2 TYPO3

Deux installations de TYPO3 identiques
DNS
DNS en mode Round Robin
17
Questions / Réponses
  • MERCI
Write a Comment
User Comments (0)
About PowerShow.com