Submitted by Zlika on
Bonjour à tous,
Je suis parfaitement consient de l'intérêt du multi-site qui permet de partager les thèmes et modules entre plusieurs sites, mais outre ces aspect d'optimisation de code, y a-t-il une réelle différence de performance, ou de consommation de ressources machine, entre une installation unique de Drupal utilisant la fonctionnalité de multi-site, et plusieurs installations de Drupal ?
Si certains d'entre vous ont des expériences sur ce sujet, je suis preneur.
Merci beaucoup.
Jeff
Pour te donner le background
Permalien Soumis par Yoran le 25 Mars, 2010 - 00:10
Pour te donner le background de ma réponse, j'ai fait pendant des années tourner une dizaine drupaux en multi-site, et j'ai récemment tout migré en multi-installation.
Pour répondre à ta question, le seul gain théorique du multi-site tient au partage de la base de code et va donc de paire avec l'utilisation d'un optimisateur PHP comme APC. Si l'on n'utilise pas un tel optimisateur, ce gain passe de théoriquement intéressant à clairement nul. Je dis théoriquement car depuis que j'ai migré en multi-installation, je n'ai pas noté d'explosion notable d'occupation mémoire. En somme, si tu mutualises 100 mutli-sites, il y a des chances que ce gain soit visible, à 10, il est anecdotique.
Sinon, en terme de performance il n'y a aucune raison qui puisse impliquer de meilleures résultats en multi-site qu'en multi-installation. Chaque site disposant de son propre espace de cache et de sa propre base de donnée, le gain en ce domaine est donc nul.
Maintenant d'un point de vue pratique, sauf si les sites sont de véritables clones, la mutualisation se révère plus néfaste (à mon goût) qu'autre chose. En effet, s'il peut semble sympa de pouvoir faire évoluer de concert plusieurs sites en une seule opération, j'y ai trouvé trois contreparties majeures :
1/ Mise à part une base réellement commune de modules (CCK & co), chaque site dispose de ses spécificités qui impliquent de se taper 1000 modules dont 80% non utiles pour site donné dans une admin déjà pas très lisible et ergonomique.En multi-installation il y a certes de la redondance de mise à jour (qui se gère très bien avec une production rationnalisée de patchs) mais chaque site ne voit que ses modules. Il y a bien sur la possibilité de mettre des modules dans les dossiers site/XXX/modules mais là, se reporter au point 3 :-) Sachant en plus qu'il est parfaitement possible de placer une série de modules "vitaux" dans un gestionnaire de version et de les déployer sur plusieurs multi-installations.
2/ Lorsque l'on fait évoluer un module, il faut systématiquement tester les impactes sur tous les multi-sites, et ce même si on ne le change que pour 1 site. Donc ce qui semblait un gain de temps à l'origine, se révèle être en réalité une perte. Sachant que ce genre de chose se passe évidement dans l'urgence, on oublie généralement de tester tous les sites, et ceux sur lesquelles on travaille le moins se retrouvent en carafe par effet de bord.
3/ Le paramétrage statiques (settings.php) en multisite est un petit enfer à gérer dés lors que l'on as des joyeusetés du genre plusieurs noms de domaines pour un multi-sites donné. Ce point a été largement amélioré en Drupal 7 avec les alias de sites, mais en D6, c'est un vrai problème.
Voilà en tout cas ce je peux donner comme retour d'expérience.
Merci beaucoup Yoran, ton
Permalien Soumis par Zlika le 25 Mars, 2010 - 09:59
Merci beaucoup Yoran,
ton retour d'expérience confirme la théorie que je me faisais de la chose.
De plus, je cherchais depuis quelques temps un tutoriel sur comment créer proprement un module et j'ai été très content de trouver ton lien en bas de message.
Bonjour Yoran, Qu’en est-il
Permalien Soumis par FFFFFFFab le 25 Juin, 2010 - 14:27
Bonjour Yoran,
Qu'en est-il des perfomances de la base de données en installation multi-sites étant donné que les sites partagent la même base ?
Déjà précisons un peu le
Permalien Soumis par Yoran le 25 Juin, 2010 - 17:53
Déjà précisons un peu le vocabulaire. J'imagine que lorsque tu dis "base de données", tu entends "système de gestion de bases de données", c'est à dire mysql, postgresql, etc... Chacun de ces services pouvant gérer plusieurs "bases de données".
Sachant cela, il n'y a juste aucune différence entre un multi-site qui comprends deux drupaux utilisant chacun leur base, et deux drupaux-mono-site qui eux aussi utilisent chacun leur base. Dans les deux cas, le volume de requêtes à gérer par le service de base de données sera le même. A la limite on peut imaginer une différence si on utilise la même base de donnée pour deux site (via les préfixes) mais cette technique étant utilisable tant en mono qu'en multi-site, à configuration équivalent, là aussi la différence de performance ne devrait pas exister.
Merci pour ta réponse. J’ai
Permalien Soumis par FFFFFFFab le 25 Juin, 2010 - 18:15
Merci pour ta réponse. J'ai posé ma question un peu la tête dans le guidon sans en effet prendre soin d'utiliser le bon vocabulaire.
Je suis débutant sur Drupal et je commence avec une installation multi-sites pour pouvoir gérer des sites identiques dans leurs modules et fonctions. Je suis en train de tester mon installation multi-sites en utilisant la même base de données et en préfixant les tables de chaque nouveau site. Je suis parti sur cette base en suivant bêtement le tuto sans penser que je n'avais qu'à définir une autre base au moment de l'installation d'un site.
Bref, du coup je me posais la question de la performance de ce genre d'installation (une base de données contenant toutes les tables de tous les sites) comparé à une installation (toujours multi-sites) dans laquelle, par contre, chaque site a sa base de données.
En terme de performance il
Permalien Soumis par Yoran le 26 Juin, 2010 - 06:57
En terme de performance il n'y a pas de différence, ou alors si c'est le cas, faut changer de gestionnaire de bases ;-) En revanche, en terme de maintenance je te déconseille très fortement les préfixes, car ce sera beaucoup moins simple si tu désires à un moment ou à un autre de passer un ou tous les sites en mode mono. A ma connaissance le seul cas où les préfixes sont utilises, c'est lorsque tu es contraints par ton hébergeur à une et une seule base de données.
Ok. Pour la maintenance,
Permalien Soumis par FFFFFFFab le 26 Juin, 2010 - 09:57
Ok.
Pour la maintenance, effectivement ça risque d'être galère. Je vais passer en mode "chacun sa base" (ne serait-ce que pour y voir plus clair quand on est dans phpMyAdmin ;)).
Bonjour Yoran, Merci pour
Permalien Soumis par Marie1 le 29 Novembre, 2010 - 18:59
Bonjour Yoran,
Merci pour avoir partagé vos expériences.
Je m'informe depuis quelques jours sur le forum pour mettre en œuvre la gestion de deux sites. Et je ne suis pas très convaincue sur la bonne méthode à utiliser. J'ai bien testé le "multisite", cela semble bien fonctionner, cependant j'ai certaines raisons d'avoir des craintes pour la maintenance future... Je partage d'ailleurs votre avis sur les 3 points négatifs que vous avez soulevés.
Concernant la "multi installation" (qui me paraît plus propre et plus simple), pouvez-vous s'il vous plait me conseiller pour sa mise en œuvre (au regard de la configuration de wamp et de phpMyAdmin) ou me diriger sur un tuto.
Merci beaucoup pour votre aide.
Bien cordialement
Bonjour, je souhaite réaliser
Permalien Soumis par wissem le 7 Février, 2011 - 14:00
Bonjour,
je souhaite réaliser une plateforme web qui regroupe 3 sites identiques qui ont les même module et fonctionnalités bien entendu il n'y a que le contenu qui change , je voulais savoir si je peut utiliser la même base de donnée pour les 3 sites avec des tableau différentes préfixé pour chacun ?
aussi pour la table utilisateur je veux bien avoir la même pour ces différents site car la personne qui est inscrite dans un site ne peut pas s'inscrire dans un autre.
je souhaite savoir si ceci est bien réalisable avec drupal.
Merci de votre réponses.
Salut, Oui c’est tout à fait
Permalien Soumis par FFFFFFFab le 7 Février, 2011 - 15:33
Salut,
Oui c'est tout à fait possible avec Drupal : il te suffit lors de l'installation (après avoir fait ce qu'il faut pour être en multi-site) d'indiquer le préfixe pour les tables au moment où tu configures la BDD.
je vous remercie pour votre
Permalien Soumis par wissem le 7 Février, 2011 - 15:55
je vous remercie pour votre réponse mais je voulais savoir aussi si on peut utiliser une même table d'utilisateur pour les différentes sites...???
Oui, c’est tout à fait
Permalien Soumis par Zlika le 7 Février, 2011 - 16:05
Oui, c'est tout à fait faisable, à configurer dans le settings.php également.
je vous remercie pour vos
Permalien Soumis par wissem le 7 Février, 2011 - 16:13
je vous remercie pour vos réponses.
Oui c’est possible, mais du
Permalien Soumis par FFFFFFFab le 7 Février, 2011 - 16:21
Oui c'est possible, mais du coup les users pourront se connecter sur les 3 sites
on ne peut pas attribuer des
Permalien Soumis par wissem le 7 Février, 2011 - 16:27
on ne peut pas attribuer des doit d'accès c'est a dire s'il sont inscrit dans un site il ne peuvent pas s'inscrire dans l'autre , il seront juste des user anonymes , c'est le but de mon projet.
Bonjour, ton argument
Permalien Soumis par rikypalmer le 1 Juin, 2011 - 10:43
Bonjour,
ton argument m’interpelle car je m’apprêtais à créer un Multi sites
Par contre pourrais tu m'expliquer comment faire multi-installation
je suis sur Windows 7 et j'utilise wamp (c:/wamp/www)
dois-je utiliser plusieurs installation de wamp ou peut-on créer
www1,www2 etc.. en y installant plusieurs moteur drupal ?
Merci d'avance
palmer
Bonjour, Tu peux utiliser un
Permalien Soumis par Zlika le 1 Juin, 2011 - 10:50
Bonjour,
Tu peux utiliser un unique wamp avec plusieurs répertoires et un moteur Drupal dans chacun d'entre eux.
J’ai la même configuration et
Permalien Soumis par rikypalmer le 29 Juin, 2011 - 12:44
J'ai la même configuration et je fais du Multi-utilisateur
il suffit de créer dans le répertoire www tes sites
ex : www.mon-premier-site.com
www.mon-second-site.fr
etc...
copier les fichier drupal dans chaqu'un de ces sites
créer avec phpmyadmin (tapez : "localhost/phpmyadmin" dans le navigateur )
une base de donnée pour chaque site
puis lancer l'installation à partir de chaque site en choisissant bien sûr
la base correspondante :
(localhost/www.mon-premier-site.com)
etc...
Vive Drupal 7.2