Blog de dada

DevOps, bidouilleur et routard plein de logiciels libres

Attention, ce billet se traine depuis plus de 3 mois. Les informations qu'il contient ne sont peut-être plus à jour.


Apache2 et mod_deflate : soulager votre serveur

Rédigé par dada / / 7 commentaires


Lorsqu'on s’héberge, on s'adapte aux capacités de son serveur et de sa ligne. J'ai commencé ce blog chez moi, sur une ligne Free pour particulier.

A l’époque, même s'il n’était pas monstrueux, mon serveur était un Intel Core 2 Duo plus que correct couplé à 2Go de Ram. Par contre, ma ligne ADSL me limitait lourdement : 128ko/s en upload, seulement. Et c’était le débit maximum si personne d'autre que moi ne traînait sur la machine.

En accord avec cette configuration, je me servais du mod_deflate pour qu'Apache compresse mes pages web avant de les envoyer sur la toile. Le processeur bossait dur et le débit montant respirait. Une page compressée prend moins de place dans les tuyaux, du coup, plus de gens peuvent y avoir accès.

En prenant un VPS chez Pulseheberg, j'ai complètement changé de configuration. Au revoir la limite de bande passante et bienvenue dans le monde des tout petits processeurs ARM. Le besoin de compresser les pages a disparu. Plus besoin du mod_deflate, mais je l'avais quand même ajouté par réflexe, habitude.

C'est en le faisant sauter, en le désactivant tout simplement que j'ai franchement gagné en réactivité. Le processeur ne bossant plus pour compresser mon contenu, la navigation sous ownCloud ou sous FreshRSS est devenue bien plus fluide.

Voici rapidement comment le faire sauter si vous ne savez pas s'il est activé :

Connectez-vous et tapez la commande suivante :

# a2dismod


Vous devriez voir ceci s'afficher :

# Your choices are: alias auth_basic authn_file authz_default authz_groupfile authz_host authz_user autoindex cgi dir env mime negotiation php5 reqtimeout setenvif ssl status mod_deflate
Which module(s) do you want to disable (wildcards ok)?


Rentrez mod_deflate pour le désactiver et le tour est joué.

Edit : les commentaires me signalent une boulette. C'est "deflate" qu'il faut rechercher et non "mod_deflate" :)

Si vous êtes dans la même situation que moi, vous devriez sentir la différence ! :-)

7 commentaires

#1  - barmic a dit :

Tu peut faire encore mieux et compresser le contenu statique une bonne fois pour toute (et ne pas compresser les données dynamiques par exemple). Un lien intéressant à ce sujet : http://tanguy.ortolo.eu/blog/article101/precompresser-apache

Répondre
#2  - techexo a dit :

Merci beaucoup pour l'astuce, ça change effectivement tout sur mon CubieTruck avec FreshRSS ! A noter que sur ma Debian arm, le mod à supprimer est "deflate" et non pas "mod_deflate". Des différences ?

Répondre
#3  - minami-o a dit :

Pareil que techexo sur ubuntu server 12.04 LTS avec apache 2.2 : le module s'appelle deflate.
Merci pour l'info en tous cas, je vais surveiller ça pour voir si j'ai aussi un gain de perfs.
Merci aussi à barmic, cette compression statique n'a pas l'air trop compliquée à mettre en place non plus, je ferai sans doute un test.

Répondre
#4  - JB a dit :

Oh...
Désactiver mod_deflate n'améliore la "fluidité" (au passage, je suis preneur d'un définition technique du terme) que si le client dispose d'un bonne connectivité réseau.
Dans le cas contraire, tu vas au contraire dégrader les performances car la taille des pages va augmenter !

À titre d'exemple, la navigation depuis un mobile devrait être plus lente, notamment en 3G.

Si mod_deflate occupe tant ton CPU, tu peux soit en changer pour un plus puissant (aaahhh... la mode de l'ARM...), soit, plus intelligent selon moi, utiliser un cache en frontal pour éviter de recalculer la pagfe de manière systématique.

Bref, désactiver mod_deflate est une mauvaise réponse à un faux problème...

Répondre
#5  - dada a dit :

@JB : je fais avec mes moyens et changer de VPS n'est pas encore une option envisageable :)

Un cache frontal ? Si tu as des idées, je suis preneur !

Répondre
#6  - HelloWorld a dit :

Sinon, il y a toujours l'option Varnish, qui permet de mettre en cache les pages ;)

Répondre
#7  - JB a dit :

@dada je me doute, d'où mon autre solution "plus intelligente": cacher les pages.

Nginx ou Varnish le feront très bien.

Au passage, si tu as des soucis de perf sur ton serveur, il serait bon d'envisager remplacer Apache/PHP par nginx+PHP-FPM

Répondre

Fil RSS des commentaires de cet article

Écrire un commentaire

Quelle est le quatrième caractère du mot elp0j ?