Perf redo log contention

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Script SQL*Plus de diagnostic
Domaine Performance
Voir aussi Perf log switch history count daily · Perf lru latch contention

Perf redo log contention dresse un état de la contention sur la génération de redo depuis le démarrage de l'instance : détail des latches dont le nom commence par redo (v$latch), puis des statistiques système associées (v$sysstat).

Script

SET LINESIZE 145
SET PAGESIZE 9999
SET VERIFY   OFF

PROMPT
PROMPT =======================================
PROMPT Latches
PROMPT =======================================
PROMPT

COLUMN name             FORMAT a30         HEADING 'Nom du latch'
COLUMN gets             FORMAT 999,999,999 HEADING 'Gets'
COLUMN misses           FORMAT 999,999,999 HEADING 'Misses'
COLUMN sleeps           FORMAT 999,999,999 HEADING 'Sleeps'
COLUMN immediate_gets   FORMAT 999,999,999 HEADING 'Immediate Gets'
COLUMN immediate_misses FORMAT 999,999,999 HEADING 'Immediate Misses'

BREAK ON report
COMPUTE SUM OF gets             ON report
COMPUTE SUM OF misses           ON report
COMPUTE SUM OF sleeps           ON report
COMPUTE SUM OF immediate_gets   ON report
COMPUTE SUM OF immediate_misses ON report

SELECT
    INITCAP(name) name
  , gets
  , misses
  , sleeps
  , immediate_gets
  , immediate_misses
FROM  v$latch
WHERE name LIKE 'redo%'
ORDER BY 1
/

PROMPT
PROMPT =======================================
PROMPT Statistiques système
PROMPT =======================================
PROMPT

COLUMN name  FORMAT a30             HEADING 'Statistique'
COLUMN value FORMAT 999,999,999,999 HEADING 'Valeur'

SELECT name, value
FROM   v$sysstat
WHERE  name LIKE 'redo%'
/

Interprétation

  • redo allocation latch (sleeps > 0 de façon récurrente) : les sessions attendent pour réserver de l'espace dans le log buffer avant d'écrire leur redo — augmenter LOG_BUFFER est la première piste.
  • redo copy latch : servait historiquement à paralléliser la copie de redo dans le buffer sur les configurations multi-CPU ; ce mécanisme a été largement automatisé depuis Oracle 9i (paramètre caché _LOG_SIMULTANEOUS_COPIES) — une contention notable sur ce latch sur une version récente mérite d'être creusée avec le support Oracle plutôt que corrigée « à l'aveugle ».
  • redo log space requests (dans les statistiques système) supérieur à 0 de façon répétée : des sessions ont dû attendre qu'un espace se libère dans les fichiers de redo log en ligne — logs trop petits, archivage trop lent, ou switches trop fréquents (voir Perf log switch history count daily).
  • redo log space wait time élevé cumulé : confirme un impact réel sur le temps de réponse, pas seulement un compteur d'occurrences.

Voir aussi