23 juillet 2006

Un peu de distribution PHP/Java

On teste la publication d'un message sur un forum des Fûts, avec des appels synchrones uniquement, en mode DEBUG et en mono-thread.
Les appels distants pour la publication d'un message sont les suivants :
  1. PHP notifie Java que des commandes sont à traiter
  2. Java récupère auprès de PHP les commandes à traiter (en lot)
  3. Java réserve auprès de PHP une nouvelle version des données («locked rev»)
  4. Java sollicite PHP pour chaque message posté : prise en compte des données dans la rev applicative, calcul des threads
  5. Java relâche la rev auprès de PHP
  6. Java indique à PHP que les commandes sont traitées (une par une. Petit bug)
Total pour un message : un appel distant de PHP vers Java, 5 appels distants dans l'autre sens.

En cible, 1./2. forke.
Pour les tests, 1./2. est synchrone.

Voici les temps de réponse :
  1. PHP/PC ---(local)---> Java/PC
    moyenne 1356 ms, écart-type 64 ms (5 %)
  2. PHP/PC ---(LAN)---> Java/minimac
    moyenne 6988 ms, écart-type 2828 ms (36 %)
  3. PHP/free.fr ---(internet)---> Freebox ---(LAN)---> Java/PC
    moyenne 3266 ms, écart-type 1191 ms (36 %)
  4. PHP/free.fr ---(internet)---> Freebox ---(LAN)---> Java/minimac
    moyenne 7778 ms, écart-type 3672 ms (47 %)
Axes d'améliorations :
  • Mettre une vraie machine en frontal SOA DMZisé. Le «minimac» PPC patine quand on veut lui faire faire du J2EE.
  • Penser à un serveur hébergé.
Urgence :
  • Aucune. Depuis quand 10 secondes pour poster un message sont-elles un délai rédhibitoire sur le web ? ;-)

Aucun commentaire: