Optimisation d'Apache et MySQL sur Linux Xen VPS

10

J'ai un serveur privé virtuel (VPS) Xen exécutant Ubuntu 8.10, avec 128 Mo de RAM.

J'ai trouvé plusieurs pages "comment optimiser Apache et MySQL pour les VPS à faible mémoire" via Google, mais elles fournissent des informations contradictoires. Je demande donc à Server Fault: comment optimiser Apache et MySQL pour une configuration VPS à faible mémoire?


Quelques personnes ont suggéré d'utiliser nginx au lieu d'Apache. J'examinerai cela, mais je préférerais m'en tenir à Apache si possible, juste pour éviter d'avoir à tout savoir sur la configuration des piles d'applications sur un serveur Web inconnu (pour moi).

Kristopher Johnson
la source

Réponses:

7

Nginx est génial, mais si vous voulez rester avec Apache, il est possible de le réduire un peu par rapport aux paramètres par défaut:

  • Utilisez le MPM de travail plutôt que la pré-fourche (avec MPM de travailleur, Apache n'a plus de modèle "processus par connexion").
  • Regardez tous les modules partagés que vous chargez, débarrassez-vous de ceux dont vous n'avez pas besoin.
  • Évitez d'incorporer des serveurs d'applications dans Apache (c'est-à-dire mod_python, mod_php, etc.) si vous pouvez l'éviter. Au lieu de cela, exécutez les serveurs d'applications dans un processus distinct et disposez d'un proxy Apache (par exemple, pour le code Python, utilisez mod_wsgi en mode démon). De cette façon, vos threads Apache qui servent simplement du contenu statique ne seront pas gonflés inutilement.
  • Dans votre configuration Apache, réduisez les paramètres StartServers, MaxClients, MinSpareThreads et MaxSpareThreads. En fonction de votre charge attendue, vous pouvez parfois les réduire d'un facteur cinq ou plus à partir des paramètres par défaut.
Carl Meyer
la source
2

Si vous avez des contraintes de mémoire, je recommanderais d'utiliser nginx comme alternative si possible. Il consomme beaucoup moins de mémoire qu'Apache et selon vos besoins pourrait être tout ce dont vous avez besoin.

En prime, nginx a tendance à être beaucoup plus rapide qu'Apache. =)

Jauder Ho
la source
2

Ditch apache, son processus par modèle de connexion ne fonctionnera pas avec votre VPS à faible mémoire.

Je suggère nginx en remplacement.

Dave Cheney
la source
4
Ce n'est qu'un problème pour 1.3. apache 2.x permet des modules de processus enfichables, y compris MPM, qui exécute de nombreux threads dans un petit nombre de processus. Tout accordable au goût
Vagnerr
Oui, mais nginx sera toujours un processus plus petit
Dave Cheney
2
Oui, mais ce n'est pas ce que vous avez dit