Forum général.général Apache 1.3 / mod_deflate / kvm_read()

Posté par  .
Étiquettes : aucune
0
14
juil.
2005
Salut,

Je suis confronté à un problème de bande passante sur un serveur Apache. J'ai essayé sans grand succès Apache 2 avec et sans compression, j'ai finalement adopté Apache 1.3 sans compression.

Les mod_gzip (Apache 1.3) et mod_deflate (Apache 2) ne me convienne pas dans le sens où je peux avoir des pics d'activités jusqu'à plus de 50 mbits en trafic HTTP de sortie (ça fait dans les 900 requêtes/sec dans mon cas). Si j'active mod_gzip ou un équivalent, j'ai un serveur qui swap et dont le load average explose (plus de 100). Pas glop.

Bref, fort de tout cela, j'ai fouillé, je suis tombé sur le mod_deflate d'Apache 1.3 développé par un Russe (Igor Sysoev) qui a entre autre développé aussi mod_accel [http://sysoev.ru/en/(...)].

Ce qui m'intéresse dans son module, c'est la possibilité de désactiver la compression quand le CPU Idle de l'OS s'amenuise. C'est idéal lorsqu'on est facturé non pas à la bande passante mais au trafic. Le seul souci, c'est que cette option n'est activée que pour FreeBSD 3.x or je suis en Linux/SuSe.

En fouillant un peu, j'ai trouvé que les primitives utilisées étaient kvm_openfiles() et kvm_read(), apparement effectivement pas dispo avec un noyau Linux. Mon petit doigt me dit qu'on doit pouvoir faire qqchose.

Pour résoudre mon problème, j'ai donc plusieurs choix

- payer la bande passante (économiquement, je m'y retrouve pas)
- changer de distribution pour un FreeBSD 3.x
- écrire une portion de code pour tester le CPU Idle sous Linux sans écrouler le serveur et en faire profiter la communauté.

Si vous avez des idées, je suis preneur ;o)

Antoine.
  • # commence

    Posté par  . Évalué à 2.

    commence par faire un test avec bsd pour voir si tu obtiens les résultats que tu veux. Si ensuite, tu obtiens ce que tu veux, et que tu veuilles rester avec linux, écrit la portion de code.


    PS: je ne comprends pas trop le truc de compression ! ça voudrait dire que Apache, lors qu'il délivre une page, la compresse et l'envoie compressée ? donc les clients HTTP doivent être capable de comprendre qu'une page est compressée et la décompresser. C'est ça ?
    • [^] # Re: commence

      Posté par  . Évalué à 1.

      J'ai envisagé de le faire. Ce qui me chagrine, c'est le fait que ce soit les version 3.x mais c'est une piste de migrer le parc en FreeBSD... en espérant que le matériel soit compatible.

      Pour répondre à ton PS, tu as bien compris, Apache compresse le contenu et le navigateur le décompresse (tous les navigateurs moderne savent faire ça). Ca réduire même les temps de réponse car la CPU du client ne limite pas. Par contre il faut compresser coté serveur, c'est là que le bât blesse.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.