Manuel de suivi dynamique Solaris

Stratégie de redimensionnement du tampon

Parfois, il arrive que le système ne dispose pas de mémoire disponible dans le noyau pour allouer un tampon de la taille souhaitée car la mémoire disponible est insuffisante ou car le consommateur DTrace a dépassé l'une des limites réglables décrites dans le Chapitre16Options et paramètres réglables Vous pouvez configurer la stratégie en cas de panne de l'allocation de tampon avec l'option bufresize, qui, par défaut, est définie sur auto. Dans le cadre de la stratégie de redimensionnement du tampon auto, la taille du tampon est divisée en deux jusqu'à ce qu'une allocation correcte soit effectuée. dtrace(1M) génère un message si la taille du tampon alloué est inférieure à celle requise :


# dtrace -P syscall -b 4g
dtrace: description 'syscall' matched 430 probes
dtrace: buffer size lowered to 128m
...

ou


# dtrace -P syscall'{@a[probefunc] = count()}' -x aggsize=1g
dtrace: description 'syscall' matched 430 probes
dtrace: aggregation size lowered to 128m
...

Vous pouvez aussi nécessiter une intervention manuelle après la panne d'allocation de tampon en définissant bufresize sur manual. Dans le cadre de cette stratégie, une panne d'allocation provoque un échec de démarrage :


# dtrace -P syscall -x bufsize=1g -x bufresize=manual
dtrace: description 'syscall' matched 430 probes
dtrace: could not enable tracing: Not enough space
#

La stratégie de redimensionnement de tous les tampons (principaux, spéculatifs et de groupement) est dictée par l'option bufresize.