Optimisation Apache pour VPS bas de gamme sur Ubuntu 14.04

Apache est très facile à installer et à initialiser, mais il est livré avec de nombreux modules préinstallés et, par conséquent, vous pouvez rencontrer des problèmes de performances lors de l'exécution sur un VPS à faible RAM.

Ainsi, il n'est pas toujours nécessaire d'avoir un serveur plus grand, mais vous pouvez simplement configurer les paramètres Apache de la bonne manière et avoir les meilleures performances possibles. Voici quelques mesures à prendre pour y parvenir.

Ce tutoriel est pour Ubuntu 14.04 LTS mais les principes sont également similaires aux versions précédentes.


1. Désactivez les modules Apache

Vous pouvez voir une liste de tous les modules installés avec la commande ls /etc/apache2/mods-available/et de tous les modules actuellement actifs ls /etc/apache2/mods-enabled/.

Lors de l'installation initiale d'Apache, 15 modules ou plus sont activés par défaut. Ce sont trop et la plupart d'entre eux ne sont pas nécessaires.

Tout d'abord, vous devez faire une liste de tous les modules actuellement actifs et l'enregistrer pour référence future au cas où vous désactivez quelque chose qui est nécessaire et que vous devez le réactiver. Ensuite, désactivez simplement les modules un par un avec la commande (en utilisant moduleName comme exemple):

sudo a2dismod moduleName

... et redémarrez Apache après chaque modification pour voir si une erreur se produit.

Certains modules que vous devez désactiver si vous n'en avez pas besoin sont:

  • PHP
  • SSL
  • Récrire
  • Perl
  • Python

Après avoir désactivé un module et rechargé la configuration Apache, vous pouvez vérifier les erreurs en ouvrant le journal des erreurs Apache avec un éditeur de texte comme nano.

sudo nano /var/log/apache2/error.log

Si vous obtenez une erreur, réactivez simplement le module correspondant avec:

sudo a2enmod moduleName

Ensuite, redémarrez Apache jusqu'à ce que la liste minimale soit triée!


2. Configurez mpm_prefork

Avec la configuration Apache par défaut (qui n'est pas bien équilibrée pour les petits serveurs), la mémoire peut être épuisée rapidement et votre serveur cloud peut devenir surchargé. Cela entraînera le blocage de la page Web dans un état de chargement constant. Il est probable que le serveur maintienne ces processus Apache morts actifs, essayant de servir le contenu inutilement, réduisant le nombre de processus disponibles pour servir.

Pour résoudre ce problème, vous devez d'abord déterminer la quantité de RAM dont votre serveur a besoin en dehors d'Apache et la quantité moyenne de mémoire utilisée par les processus Apache.

Pendant l'exécution d'Apache, ouvrez la commande supérieure sur le serveur.

top -bn 1

Sur le tableau des résultats:

  • ajoutez les nombres dans la colonne RES pour chaque processus, sauf apache2 , puis supprimez-le de la quantité totale de RAM. Disons que vous obtenez 600 MB .
  • obtenir la moyenne de tous les processus apache2 . Disons obtenir 20 MB .
  • ensuite, il suffit de faire la division 600/20 = 30 processus Apache maximum

Étape suivante, modifiez le fichier de configuration du module mpm_prefork:

sudo nano /etc/apache2/mods-enabled/mpm_prefork.conf

Cela peut ressembler à ceci:

<IfModule mpm_prefork_module>
    StartServers             2
    MinSpareServers          2
    MaxSpareServers          5
    MaxRequestWorkers        30
    MaxConnectionsPerChild   0
</IfModule>

Où:

  • StartServers: nombre de processus serveur à démarrer.
  • MinSpareServers: nombre minimum de processus serveur qui sont conservés en réserve.
  • MaxSpareServers: nombre maximum de processus serveur qui sont conservés en réserve.
  • MaxRequestWorkers: nombre maximal de processus serveur autorisés à démarrer.
  • MaxConnectionsPerChild: nombre maximal de demandes servies par un processus serveur.

Dans le paramètre MaxRequestWorkers , vous devez le remplacer par ce que vous avez trouvé dans la division ci-dessus.

Maintenant, si votre VPS est surchargé et atteint le nombre maximum de clients qu'il peut servir à la fois, il servira ceux-ci et les autres utilisateurs auront simplement un échec rapide. Ils peuvent ensuite recharger la page pour réessayer. Il est préférable de fermer rapidement ces connexions, mais de laisser le serveur dans un état sain plutôt que de rester ouvert pour toujours.


3. Réduisez vos journaux

Pour maximiser les performances, vous pouvez certainement enregistrer moins d'informations. Dans la configuration Apache par défaut, le paramètre LogLevel est défini sur warn . Vous pouvez changer cela en erreur pour ne conserver que les messages d'erreur.

Ouvrez le fichier de configuration Apache:

sudo nano /etc/apache2/apache2.conf

Trouvez la ligne:

LogLevel warn

... et changez-le en:

LogLevel error

Ensuite, enregistrez le fichier et redémarrez Apache avec:

sudo service apache2 restart

Le fichier par défaut qu'Apache conserve les journaux est /var/log/apache2/error.log .


4. Envisagez de remplacer mod_php

Si vous exécutez un site PHP, il y a de grandes chances que vous utilisiez le module mod_php. Ce module peut faire en sorte que chaque processus enfant Apache utilise plus de 100 Mo de RAM même si les demandes concernent des ressources statiques telles que des images, css et javascript.

Une excellente alternative est le module php-fpm , qui est un processus distinct qui utilise le protocole fastcgi. Avec php-fpm, la mémoire des processus Apache peut chuter à 10 Mo pour le contenu statique et 60 Mo pour le dynamique.

Bien qu'il puisse être un peu difficile de faire fonctionner les choses avec ce changement, cela en vaut la peine.


5. Envisagez de remplacer mpm_prefork

La plupart des configurations Apache utilisent le module mpm_prefork qui est thread-safe et utilise plusieurs processus enfants avec un thread chacun et chaque processus gère une connexion à la fois. Si vous n'avez pas besoin de modules externes tels que PHP ou Rails, vous pouvez le remplacer par le module apache2-mpm-worker , qui est souvent plus rapide. Worker MPM utilise plusieurs processus enfants avec de nombreux threads chacun et chaque thread gère une connexion à la fois.

Pour activer le module de travail, vous devez l'installer.

sudo apt-get install apache2-mpm-worker

Cette commande désinstalle mpm_prefork , mos_php et d'autres modules complémentaires incompatibles.



Leave a Comment

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

Les attaques de ransomware sont en augmentation, mais l'IA peut-elle aider à lutter contre le dernier virus informatique ? L'IA est-elle la réponse ? Lisez ici, sachez que l'IA est un boone ou un fléau

ReactOS : est-ce lavenir de Windows ?

ReactOS : est-ce lavenir de Windows ?

ReactOS, un système d'exploitation open source et gratuit est ici avec la dernière version. Cela peut-il suffire aux besoins des utilisateurs de Windows modernes et faire tomber Microsoft ? Découvrons-en plus sur cet ancien style, mais une expérience de système d'exploitation plus récente.

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Whatsapp a finalement lancé l'application de bureau pour les utilisateurs Mac et Windows. Vous pouvez désormais accéder facilement à Whatsapp depuis Windows ou Mac. Disponible pour Windows 8+ et Mac OS 10.9+

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Lisez ceci pour savoir comment l'intelligence artificielle devient populaire parmi les petites entreprises et comment elle augmente les probabilités de les faire grandir et de donner à leurs concurrents un avantage.

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

Récemment, Apple a publié macOS Catalina 10.15.4, une mise à jour supplémentaire pour résoudre les problèmes, mais il semble que la mise à jour cause davantage de problèmes, ce qui entraîne le bridage des machines mac. Lisez cet article pour en savoir plus

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux d'extraction de données de Big Data

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Notre ordinateur stocke toutes les données d'une manière organisée connue sous le nom de système de fichiers de journalisation. C'est une méthode efficace qui permet à l'ordinateur de rechercher et d'afficher des fichiers dès que vous appuyez sur la recherche.https://wethegeek.com/?p=94116&preview=true

Singularité technologique : un futur lointain de la civilisation humaine ?

Singularité technologique : un futur lointain de la civilisation humaine ?

Alors que la science évolue à un rythme rapide, prenant le pas sur une grande partie de nos efforts, les risques de nous soumettre à une Singularité inexplicable augmentent également. Lisez, ce que la singularité pourrait signifier pour nous.

Un aperçu de 26 techniques danalyse des mégadonnées : partie 1

Un aperçu de 26 techniques danalyse des mégadonnées : partie 1

Un aperçu de 26 techniques d'analyse des mégadonnées : partie 1

Limpact de lintelligence artificielle dans les soins de santé 2021

Limpact de lintelligence artificielle dans les soins de santé 2021

L'IA dans le domaine de la santé a fait de grands progrès au cours des dernières décennies. Ainsi, l'avenir de l'IA dans les soins de santé continue de croître de jour en jour.