IBonjour à tous,

Une latence excessive sur votre application GWT/GAE? pas de panique, c’est “peut-être normal”! Pour toi lecteur, je te partage l’info !
Je développe en ce moment une petite application WEB basée sur les technologies GWT et GAE.
Lors de mes récents tests en environnement de “production”, j’ai constaté une réactivité faiblarde à la première interaction avec mon application. Etant donné que l’ensemble de mes fonctions appelées interagissent toutes avec le datastore, et ayant résolu le problème avant d’aller plus loin, je ne peux pas réellement affirmer si c’est l’accès au datastore qui est en cause (les requêtes sont plutôt simples) ou si c’est le serveur applicatif).
Mais une fois passé cette première requête lente…ça envoie de la patate. Et c’est surtout taillé pour monter en charge de manière totalement transparente (avantage du GAE).
Bref, en gros maniaque des performances…je ne pouvais laisser mes futurs utilisateurs adorés avec ce temps d’attente affreux (entre 6 à 8 sec) et surtout trouver l’origine du problème. Ci dessous le message visible dans les logs de GAE (interface admin).
#10-22 12:19PM 12.330 /topsecret/log 200 6352ms 7993cpu_ms 176api_cpu_ms 0kb Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3,gzip(gfe)
78.228.96.116 - - [22/Oct/2009:12:19:18 -0700] “POST /topsecret/log HTTP/1.1″ 200 132 “http://topsecret-beta.appspot.com/topsecret/0D01E7FF5AD6B94356E41E31751A053C.cache.html” “Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3,gzip(gfe)”
Google App Engine optimise ses webfarms. Les ressources allouées pour chaque application est également gérées. Je ne sais pas exactement ce qu’il s’y passe derrière, mais une application tombe en “veille” au bout d’un certain temps (5-10 minutes) s’il n’y a aucune activité (pas de requête).
Voici le test que j’ai réalisé:
- J’ai attendu au moins 10 min pour placer l’application en veille.
- Une personne s’est connectée à l’application et a appelé une fonction (en observant ce phénomène de latence).
- Je me suis connecté à l’application juste après (1 min) et j’ai observé aucune latence sur la même fonction appelée.
- CQFD.
Cette latence ne sera donc pas observée si l’application est périodiquement utilisée. C’est à dire qu’il faudra que GAE réalise une consommation CPU toutes les 5 ou 10m pour éviter de tomber en mode “veille”, sinon le réveilleur observera ce phénomène de “lenteur”.
Il me semblait intéressant de partager cette information.
Si toi, cher lecteur, tu connait plus précisément le fonctionnement de “veille” de GAE, il serait généreux de ta part de nous éclaircir la lanterne. Merci d’avance.
Merci de m’avoir lu.
RL.











