4 commentaires
D'abord vérifie le disque I/O sur le replica. Si le disque est lent ou saturé, il ne pourra pas appliquer les WAL records assez vite. Regarde iostat ou atop. C'est une cause super fréquente.
Ensuite, regarde côté primary combien de wal_senders tu as et si wal_level est sur replica ou logical. Trop peu de wal_senders ou un niveau de WAL insuffisant peut limiter le débit.
SELECT usename, application_name, client_addr, state, sync_state, pg_wal_lsn_diff(pg_current_wal_lsn(), replay_lsn) AS lag_bytes FROM pg_stat_replication;
La bande passante réseau entre le primary et le replica est aussi un facteur. Si tu génères beaucoup de WAL et que le réseau est saturé, ça va lagger. Des fois, l'activité de vacuum ou d'index rebuild sur le primary peut aussi générer un pic de WAL.
C'était bien le disque I/O sur le replica. J'avais un vieux RAID qui commençait à mourir. Le pg_stat_replication a montré un lag_bytes énorme. J'ai migré sur un volume plus rapide et ça a rattrapé en moins d'une heure. Merci pour les conseils !
Laisser une réponse
Vous devez être connecté pour poster un message !
Ma réplication PostgreSQL est à la traîne. Le replica a des heures de retard sur le primary. Ça se dégrade de plus en plus. Que faire pour diagnostiquer et rattraper ce lag ?