Comment configurer un serveur avec 4g de mémoire pour exécuter Drupal 7

9

J'installe Drupal 7 sur un nouveau serveur avec 4 Go de mémoire. J'aimerais avoir des conseils sur la façon de le configurer correctement, la quantité de mémoire à donner à MySQL et la quantité de mémoire à donner à PHP. Une chose que j'ai découverte est que l'exécution de Drupal 7 sur un serveur Zend est trois fois plus rapide que son exécution sur un serveur Apache normal. (Je pense que cela a à voir avec la mise en cache d'opcode. J'ai remarqué qu'avec le module devel, il utilise un tiers de la mémoire.

Pouvez-vous partager vos configurations avec moi?

Nicola Peluchetti
la source

Réponses:

5

Si vous avez déjà des données Drupal7, vous devez les charger dans un environnement de transfert et effectuer un dimensionnement de tampon en fonction de la quantité de données dont vous disposez.

Étape 1) Vous devez d'abord calculer les tailles de mémoire tampon pour votre ensemble de données .

Étape 2) Si les tailles recommandées dépassent 75% de votre RAM installée (dans votre cas, 3 Go), limitez les tampons nécessaires à 3 Go.

Étape 3) Si vous avez des données InnoDB et que vous n'avez pas activé innodb_file_per_table, vous devez nettoyer InnoDB en segmentant chaque table dans son propre espace de table physique (cela ne doit être fait qu'une seule fois) .

Une fois que vous avez fait cela, vous devez prévoir d'effectuer cet audit de configuration (étapes 1 et 2) tous les 6 mois pour vous assurer que la mise en cache MySQL appropriée est en place.

Fait intéressant, j'ai posé une question similaire à celle-ci et y ai répondu le 15 avril 2011 .

RolandoMySQLDBA
la source
4

Quelques choses à regarder :

Un article à lire :

Rackspace's: le déploiement de Drupal dans le cloud avec nginx et boost devrait vous donner beaucoup d'idées.

Petite citation sur la mise en cache d'opcode:

Nous utilisons APC comme cache d'opcode. Cela évite au serveur de recompiler le code PHP à chaque chargement de page. De plus, le tout s'intègre facilement dans la RAM (nous donnons généralement APC 128 Mo de RAM). Cela diminue considérablement l'utilisation du processeur. Les utilisateurs connectés peuvent désormais parcourir le site beaucoup plus rapidement. Mais nous ne pouvons encore en gérer qu'un nombre limité. On peut faire un peu mieux. Au lieu d'interroger MySQL chaque fois que nous allons dans le cache, nous pouvons stocker ces tables en mémoire. Voici memcached et le module cacherouter.

Bart
la source
2

J'ai commencé avec my_huge conf depuis le répertoire mysql; J'ai également ajouté le cache Varnish au mix. Comme vous l'avez déjà découvert, Zend améliore beaucoup les performances.

Après avoir couru pendant quelques jours, j'ai exécuté le script mysqltuner et appliqué certaines des recommandations, principalement sur le cache de la table temporaire.

Markward
la source
1

Selon la taille du site, vous voudrez peut-être également consulter memcached. Cela rivalisera pour les ressources avec mysql mais peut réduire la charge sur celui-ci.

Jeremy French
la source
En fait, vous pouvez réduire le pool de tampons InnoDB et le cache de clés MyISAM si la mémoire cache est suffisamment grande. De cette façon, memcached n'est pas en concurrence avec mysql, mais mysql complétera simplement memcached en tant que conduit de données plutôt qu'en tant que base de données principale. +1 pour avoir suggéré Memcached d'abord !!!
RolandoMySQLDBA