Jour 4 • Montée en charge

Suite à la demande de B. pour simuler une montée en charge sur les deux futurs sites Internet de la collectivité locale, nous avons commencé notre matinée par vérifier que l’outil choisi la veille marchait bien, et effectuait bien ce que l’on souhaitait. Il nous a en effet donné satisfactions suite à des tests en interne. Nous avons donc pu dès 10 heures et demi lancer le test de montée en charge.

Nous avons procédé par étapes pour vérifier la robustesse du serveur. Deux ordinateurs lançait conjointement la simulation, répétée jusqu’à un arrêt manuel, chargeant les pages suivantes : page d’accueil ; galerie photos ; galerie vidéos ; recherche du mot « marchés ».
Les simulations étaient les suivantes :

  1. Simulation de 10 utilisateurs faisant 4 requêtes1 à la seconde
    (10×4×2 = 80 requêtes à la seconde)
  2. Simulation de 30 utilisateurs faisant 4 requêtes à la seconde
    (20×4×2 = 160 requêtes à la seconde)
  3. Simulation de 50 utilisateurs faisant 4 requêtes à la seconde et de 20 utilisateurs faisant 2 requêtes à la seconde
    (50×4×2+20×2×2 = 480 requêtes à la seconde)

Le serveur a tenu la charge pour les deux premières simulations (lors de la deuxième simulation, le temps de réponse est monté jusqu’à une quarantaine de secondes…). Par contre, la troisième simulation a fait tomber la base de données au bout d’une dizaine de secondes.
Relancer le service a suffit pour retrouver un site opérationnel (la simulation étant arrêtée).

Après une matinée bien chargée, l’après-midi a été consacré au document de recommandations pour la sécurité des applications web. Je sais quels points je veux aborder, mais il reste maintenant à organiser ça et à rendre ça digeste pour tout développeur…

La fin de journée a été consacrée à la résolution d’un petit problème pour D., stagiaire de B. migrant un ancien Joomla sur la dernière version. Il lui était impossible d’accéder à l’administration de Joomla, une requête SQL d’un utilisateur et de son mot de passe2 a permis de résoudre le problème.


  1. Notons qu’une requête correspond au chargement de la page demandée, en chargeant aussi tous les éléments (fichiers CSS, javascript, images, …), ce qui en réalité représente plusieurs requêtes… 

  2. Hashé dans la BDD, mais connu au préalable