mod_buffer
Support de la mise en tampon des requêtes
Extension
mod_buffer.c
buffer_module
Disponible depuis les versions 2.3 et supérieures d'Apache

Ce module fournit la possibilité de mettre en tampon les piles des filtres en entrée et sortie.

Dans certaines situations, les générateurs de contenu créent des contenus composés de petits tronçons. Afin de permettre la réutilisation de la mémoire, les éléments de mémoire attribués aux tronçons ont toujours une taille de 8k, quelle que soit la taille du tronçon lui-même. Lorsqu'une requête génère de nombreux petits tronçons, une grande quantité de mémoire peut être mobilisée par le traitement de la requête, et une grande quantité de données transmises sans nécessité. Pour y remédier, l'utilisation d'un tampon rassemble la réponse en un nombre de tronçons le plus petit possible.

Lorsque httpd est utilisé comme frontal d'un générateur de contenu consommant beaucoup de ressources, la mise en tampon de la réponse peut permettre à ce dernier d'effectuer le traitement et de libérer les ressources plus ou moins rapidement, en fonction de la manière dont il a été conçu.

Le filtre de mise en tampon peut être ajouté aux piles des filtres en entrée ou en sortie, selon les besoins, à l'aide des directives SetInputFilter, SetOutputFilter, AddOutputFilter ou AddOutputFilterByType.

# Utilisation d'un tampon avec mod_include

AddOutputFilterByType INCLUDES;BUFFER text/html

Les filtres de mise en tampon lisent la requête/réponse en RAM, puis la reconditionnent sous la forme d'un nombre d'éléments mémoire le plus petit possible, au prix d'une consommation de temps CPU. Lorsque la requête/réponse est déjà conditionnée de manière satisfaisante, sa mise en tampon pourrait s'avérer encore plus lente qu'en l'absence d'utilisation de tampon. C'est pourquoi ces filtres doivent être utilisés avec précautions, et seulement si nécessaire.

Les filtres
BufferSize
Taille maximale en octets du filtre par tampon
BufferSize entier
BufferSize 131072
server config
virtual host
directory
.htaccess

La directive BufferSize permet de spécifier la quantité de données en octets qui sera mise en tampon avant d'être lue depuis ou écrite vers chaque requête. La valeur par défaut est 128 ko.