Archives de la catégorie : JDKCC

Google App Engine (GAE) : une première requête coûteuse

IBonjour à tous,

C'est lent !

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.

Helloworld !

Et bien, ça-y-est ! Le blog est lancé ! Je félicite au passage l’hébergeur OVH pour son efficacité. En 20 minutes, j’avais déjà tous les outils pour commencer. Espérons que ça dure !

Cela fait un petit bout de temps que l’idée me trotte dans la tête…Mais j’ai jamais osé passer à l’acte faute de temps. Puis aujourd’hui, je me suis jeté à l’eau. J’ai donc acquis le domaine www.jdkcodingclub.net pour une durée d’un an (renouvelable). Pourquoi ce nom? C’est tout simplement le nom de mon équipe de foot sur facebook (composée de valeureux miagistes) : c’est comme ça que le JDK Coding Club est né ! ! Je trouvais ça sympa, alors j’ai décidé de garder le nom pour le blog.

Je doute que ce premier billet soit lu par beaucoup de monde, mais bon il a le mérite d’exister (il est surtout symbolique).  D’un autre coté, je pourrais déballer ma vie privée pour attirer les gens, d’ailleurs je suis sûr que ça marcherait, mais bon…c’est vraiment pas le but. Bref, tout ça pour dire que je débute en tant que web blogger (ce que je ne prétends pas encore être bien sûr)  !

Le but de ce blog est de publier des articles gravitant autour des technologies Java (J2EE, JavaFX, GWT…), mais aussi de proposer des tutoriaux simples et pertinents. Il me permettra également de m’initier à la rédaction d’articles. Bref, c’est un outil de découvertes et de partage.

Bonne lecture à tous !

Romain LAFOND