Conseils de performance pour une base d'utilisateurs étendue [fermé]

4

Je prépare un site avec de nombreux utilisateurs (plus de 100 000). Étant donné que la sortie dépend de la relation de l’utilisateur actuel avec certains types de publication et certaines taxonomies personnalisés, le cache statique n’aidera pas beaucoup.

Outre l'utilisation d'un tableau séparé pour les utilisateurs et la gestion de fichiers statiques à partir d'un domaine sans cookie, que puis-je faire pour améliorer les performances?

Par exemple: devrais-je utiliser InnoDB ou MyISAM? Des indices sur les index?

Mettre à jour

De toute évidence, je n’étais pas assez clair. Désolé.

Tous les utilisateurs sont connectés. Toujours. Personne d'autre ne peut en voir plus que la page d'accueil. Le site propose du matériel payant pour les cours en ligne.

Je recherche des conseils relatifs à une base d'utilisateurs importante uniquement. Les optimisations de base des performances générales telles que la compression, le chargement paresseux de scripts, les images-objets, etc. sont utiles, mais ce n’est pas pour ça que je suis partant.

    
posée fuxia 21.01.2011 - 16:14

3 réponses

4

Vous pouvez utiliser "W3 Total Cache" qui n'est pas un système de cache de fichiers statique. Cependant, il utilise des éléments tels que la mise en cache des opcode, la mémorisation en cache et la mise en cache des objets pour réduire le temps de chargement des pages. APC, ou un autre opcache, constituerait un bon ajout à votre serveur, tout en utilisant un httpd léger au lieu d’Apache gonflé.

Forcer GZIP sur les utilisateurs est également considéré comme une bonne idée car la plupart des personnes qui ne reçoivent pas de fichiers GZIP sont en mesure de recevoir des fichiers GZIP. Les en-têtes de requête peuvent être gérés par des pare-feu, etc.

Cependant, 80% du chargement de la page se fait généralement en mode frontal, c’est un endroit sur lequel vous voudrez travailler. "W3 Total Cache" effectue la concaténation de CSS et de JavaScript ainsi que la minification des fichiers. C’est la meilleure option si vous avez correctement récupéré vos fichiers JavaScript et CSS afin de les afficher uniquement sur les pages où ils sont nécessaires. Cependant, la plupart des sites n'en ont pas, sa configuration supplémentaire requise n'est donc que gênante. De plus, la minification des fichiers a généralement pour résultat de casser des éléments, donc je fais juste la concaténation des fichiers.

Le fait de servir des fichiers statiques à un domaine sans cookie vous fera gagner quelques ms, mais pour réaliser de réelles économies de page, l’utilisation d’un CDN permettra d’économiser environ 100 ms par élément. L'utilisation de plusieurs domaines pour servir les fichiers augmentera également la charge de page pour les navigateurs plus anciens, qui ont une limite quant au nombre de demandes de fichiers simultanées pouvant être effectuées par domaine.

Vous pouvez également vouloir utiliser http://smush.it pour économiser la taille des images sans perte de qualité. ( enlace script pour l'exécution de fichiers locaux via smushit. enlace pour exécuter des images sur S3 via smushit.)

InnoDB doit être utilisé si vos commentaires sont nettement plus nombreux que vos messages. Sinon, MyISAM risque d’être plus rapide.

    
réponse donnée Backie 21.01.2011 - 16:31
1

Peut-être pouvez-vous passer à MySQL 5.5 avec le standard innodb par défaut. En outre, l’utilisation d’un équilibreur de charge et la séparation des tables utilisateur dans une autre base de données, serveur supplémentaire, constituent un changement.

    
réponse donnée bueltge 04.02.2011 - 09:20
0

Acceptez ce que @Backie a écrit.

wp-supercache dispose également d’un support expérimental pour la mise en cache d’objets à l’aide d’APC et de CDN. J'ai trouvé que la mise en cache d'objets pouvait entraîner un comportement étrange de plugins écrits (mal?).

MyISAM sera généralement plus rapide, sauf si vous avez beaucoup d'écritures (principalement des commentaires), car il ne verrouille qu'une page, pas la table entière.

Assurez-vous d'activer la journalisation des requêtes lentes dans MySQL, vérifiez où se trouvent vos réels , puis utilisez EXPLAIN pour déterminer si vous devez ajouter des index, etc. Cette page est une très bonne introduction si vous n'avez pas encore utilisé EXPLAIN.

Le script mysqltuner peut également être utile pour déterminer où vous devrez peut-être ajuster votre configuration MySQL.

    
réponse donnée anu 21.01.2011 - 18:18

Lire d'autres questions sur les étiquettes