tu as peur que la base "tombe" (trop de requetes) ou que le serveur HTTP tombe/scotche (trop de requetes http) ou que le serveur tombe (trop de traitements, trop de fichiers ouverts,...).
deja fait une estimation realiste de ce que tu as besoin.
ex: heures de frequentations, traffic max estimé (en Mo), nombre de connections http max.
attention l'exemple suivant est foireux mais te donnera une idée.
par ex:
10000 pages vues /jours
disons que :
- 1/5 vient hors heures de pointe.
- les heures d'affluences sont 9h-10h , 13h-14h, 18h-19h
- tu peux estimer 8000 pages vues en 3h de temps.
soit 45pages /minute. en moyenne type.
tu double pour avoir un chiffre representatif de la charge "normale" -> 90pages /min
tu quadruple pour avoit une estimation lourde ->180 pages /min -> env 3 pages /sec.
tu connais maintenant ton objectif. un minimum de 3 pages servies/sec
maintenant tu lance un code profiler sur ton appli (sans cache, sans rien, juste l'implementation de base) et tu regarde combien de temps est alloué pour chaque fonction (xml+xsl->xhtml, requete apache, file open/close, connection dbb, requetes).
tu lance un test de charge dessus (opensta par ex.) avec 3/5/10 appels http simultannées par sec.
tu regarde comment ta machine reagit.
et la tu commence a reflechir a ce dont tu as besoin en regardant ou ca rame. si ca rame pas, te prends pas la tete.
si ca rame, regarde quel traitement est le plus lourd en resources.
si c'est requetes, optimise les deja (les preparedstatements servent, les arbres intervallaires aussi), si c'est transfo xsl, pense a generer directement en xhtml.
si c'est requetes http, configure apache.
le top etant evidemment les requetes rapides et leur mutualisation, une generation en xml lors de l'insertion de contenu avec un une cascade sur les autres pages influencées, et la mise en cache des pages xhtml generées. mais ca sert pas toujours. sachant que les mecanismes de cache peuvent vite etre tres lourds a gerer.
une methode simple que j'utilise regulierement mais qui peut faire hurler certains :
- site en dynamique
- je genere le contenu en cache si sa clef n'est pas dans le hashmap global.
- je stocke la clef de la page dans le hashmap global.
- si modification dans le back office, toutes les pages impactées par la modif sont sorties du hashmap.
petit defaut : lors de nombreuses requetes, ils peut y avoir beaucoup de fopen, donc pas mal de pointeurs sur fichiers d'ouverts a un moment donné et le hashmap peut devenir assez consequent. et aussi le systeme n'est efficace qu'apres la demande initiale. mais bon, ca marche sur un site qui prends 300-400 requetes http/secondes regulierement alors...