Estimer l’empreinte écologique de PostgreSQL

… et tenter de la réduire !

Dalibo SCOP

(juin 2021)

A propos

  • Je suis Damien Clochard
  • DBA chez Dalibo / Président de l’association PostgreSQLFr
  • Cette présentation est une synthèse d’un travail collectif
  • [Démarche globale lancée en 2019]

Au menu

  • Définir : De quoi parle t’ on ?
  • Mesurer : Indicateurs et Outils de Mesures
  • Réduire : Bonnes pratiques

DEFINIR

Empreinte écologique

Définition large et floue !

« Pression exercée sur la nature par une activité humaine »

Exemple :

  • Artificialisation des sols
  • Consommation d’energies non-renouvelables
  • Production de Gaz à Effet de Serre (GES)

Empreinte Carbone

« Mesure des émissions de GES imputées à une activité humaine »

L’empreinte carbone est une facette parmi d’autres de l’empreinte écologique

MAIS….

Instance PostgreSQL

  • Le logiciel PostgreSQL lui-même (moteur)
  • Les données
  • Les sauvegardes
  • Le trafic réseau

Analyse du Cycle de Vie (ACV)

ACV

Energie Grise

La quantité d’énergie consommée lors du cycle de vie d’un produit.

Egalement appelée « [énergie intrinsèque] »

énergie intrinsèque

MESURER

Equivalent carbone

  • Unité de mesure de l’empreinte carbone
  • kilogrammes equivalent CO2” ou kgCO2eq
  • Mesure la production de différent gaz à effet de serre
  • C’est un outil abstrait pour la reflexion, pas une mesure réelle
  • Assez simple à utiliser

Power Usage Effectiveness (PUE)

Indicateur d’efficacité énergétique qui quantifie l’efficacité énergétique d’un datacenter.

ACV d’un serveur infomatique

  • DELL PowerEdge R640 - 1,2 TB - 32GB RAM - 2 CPU

  • Conso electrique : 1760 kWh par an

  • Facteur d’Emission (en France) : 0.053 kgCO2eq par kWh

  • PUE du datacenter : 1.5

  • Fabrication : 1300 kgCO2eq

  • Utilisation : 140 kgCO2eq par an

AVC d’une instance PostgreSQL

1 base applicative de 500Go

  • Pendant 10 ans
  • 2 instances de production en Hot Standby
  • 3 instances de pré-prod / dev / qualif
  • 1 instance développement / Qalif
  • 1 semaine de sauvegarde PITR + 4 dumps
  • remplacement du matériel tous les 4 ans

Empreinte sur 10 ans

  • 1 instance = 4.6 TCO2eq sur 10 ans

  • total pour l’appli = 32 TCO2eq sur 10 ans

En comparaison :

Autre approche

  • Définir un facteur volumétrique
  • Exemple : “1 TB pendant 1an = 2000 kgCO2eq”
  • Trop simpliste
  • Trop imprécis
  • Pas de sources fiables

REDUIRE

Grands Principes

  • Parier sur l’endurance : Allonger la durée de vie des serveurs

  • Viser la Sobriété : Sélectionner les fournisseurs

  • Eliminer le superflu : Réduire les volumes

  • S’équiper léger: Dimensionner correctement

  • Mutualiser : Regrouper les ressources

5 Axes principaux

1- Matériel

2- OS

3- PostgreSQL

4- Applicatif / SQL

5- Architecture

1- Hébergement

  • Quel est le PUE du datacenter ?
  • Quel est la source d’energie du datacenter ?
  • DCIM : datacenter infra management

1- Matériel

  • Tout se joue à l’achat !
  • Intégrer l’empreinte écologique dans les critères de choix

Exemple :

Les disques SSD consomme 5X moins et produisent moins de chaleur

1- Matériel : Durabilité

2- OS : Préférez Linux !

  • Linux / Postgres : marche sur du matériel ancien
  • Pas obsolescence programmée dans les logiciels libres

2- OS : Mutualisation du Stockage / Virtualisation

  • Dimensionner les ressources “au plus juste”

  • La virtualisation complique le calcul du bilan GES

3- PostgreSQL : Optimiser

  • Optimiser la configuration !

  • La config par défaut est minuscule

  • Réécrire les requêtes lentes ( EXPLAIN )

  • Identifier les requêtes courtes mais très nombreuses ( powa / pgbadger)

3- PostgreSQL : Nettoyer

  • taille sur disque > taille réelle
  • Surveiller la fragmentation de la base (“bloat”)
  • Surveiller l’autovacuum

4- Application : Minimisation

  • Tordre le coup à la “Mentalité Big Data”

  • Supprimer les champs inutiles

  • Limiter la profondeur d’historique (pour chaque table)

  • La réduction des volumes est bonne pour l’optimisation des perfs

4- Application : Minimisation

Les données stockées doivent être adéquates, pertinentes et limitées à ce qui est nécessaire au regard des finalités pour lesquelles elles sont traitées.

4- Application : données obsolètes, inactives ou archivables

  • Supprimer les index inutiles
  • Partionner
  • Archiver
  • Aggréger les données obsolètes
  • Externaliser les données “moins actives” (fdw)

5- Architecture : Haute-Disponiblité

  • cluster HA = facteur 2 à 5

  • -> A-ton besoin d’une haute dispo 99,99% ?

  • -> Quel est le bilan GES du PRA ?

5- Architecture : microservices - macroconsommation

  • PostgreSQL est conçu sur des principes forts de mutualisation
  • 1 instance = N bases + N Schemas + N Roles
  • Déployer une instance par microservice est un contresens

5- Architecture : Le cloud de Tartuffe

« Cachez cette polution que je ne saurais voir…. »

Le grand opérateur communiquent publiquement sur le Green IT

  • Mutualisation
  • Location / Flexibilité
  • Expertise (datacenters) / Rationalisation
  • Corrélation entre volumes et tarif

5- Architecture : Le cloud de Tartuffe

MAIS….

  • Peu d’information sur la provenance du matériel, le retraitement, etc.
  • Incitation à la “Sur-consommation” de services
  • HA trop “facile” d’accès
  • Logique de déresponsabilisation

Ce sont vos données, vous êtes responsables de leur empreinte, même si elles sont sur du matériel qui ne vous appartient pas.

Conclusions

PostgreSQL n’est pas le plus gros producteur de GES dans le SI

MAiS c’est un point central dans toute démarche d’éco-conception

  • Collecter les données de base
  • Evaluer le bilan GES d’une instance PostgreSQL standard
  • Engager des actions de réduction

Agir à tous les niveaux

  • Pression sur les vendeurs de matériels (Transparence)
  • Pression sur les datacenters (PUE)
  • Pression sur les développeurs (Minimisation / Optimisation )
  • Réflexion sur les usages (Disponibilité / Archivage)

Attention à l’Effet Rebond !

  • Les économies d’énergies génèrent un gain de productivité

  • Le gain de productivté génère des bénéfices

  • Les bénéfices sont réinjectés pour produire plus

  • La hausse de production génère une surconsommation d’énergie

Les gestes “individuels” doivent s’inscrire dans une démarche globale