SlideShare une entreprise Scribd logo
Wolphin
⇒ Objectif Libre, Gandi, Lip6, LIPN
Osis Cloud 2018
Alter Way
WOLPHIN
⇒ Facturer les consommations en conteneurs
- métrologie
- monitoring
- orchestration
- facturation
⇒ 3/4 d’avancement sur deux ans, fin Janvier 2019
⇒ Prototype quasi finalisé, livraison Juillet 2018
P. 2
OSIS Cloud - présentation Wolphin
OSIS CloudJuin 2018
Alter Way
WOLPHIN
⇒ Facturer les consommations en conteneurs
- métrologie ✓
- monitoring ✓
- orchestration ✓
- facturation ✓
⇒ 3/4 d’avancement sur deux ans, fin Janvier 2019
⇒ Prototype quasi finalisé, livraison Juillet 2018
P. 3
OSIS Cloud - présentation Wolphin
OSIS CloudJuin 2018
LIPN
Système d’ordonnancement traditionnel
• Réservation/Allocation sur la base d’un nombre fixe de ressources.
1 / 3
LIPN
Notre approche (exemple)
• Réservation dynamique de ressources selon des classes SLA :
Premium pour les CPUs (entre 2 et 4 cœurs) ; Advanced pour la
RAM (entre 4 et 8GB RAM)
Motivation
• Augmenter la combinatoire pour des placements plus fins ⇒
meilleures performances
• On masque à l’utilisateur une complexité (il spécifie des classes)
Principe
• Sélection de la requête (encapsulée dans un conteneur);
• Sélection des nœuds candidats;
• Calcul automatique du nombre de ressources;
• Affectation du conteneur sur une machine.
2 / 3
Résultats
Collaboration
• Xuanhua Shi - Huazhong University of Science and Technology
(Chine)
Implémentations
• Système d’allocation et d’ordonnancement de conteneurs (C++)
• Nouvelles stratégies multi-critères dans SwamrKit (Go)
Publications
• 2 articles publiés dans des conférences internationales (SC2 et PDP)
• 1 article en cours de soumission dans une revue internationale
(JPDC)
• 3 articles en cours de soumission dans 2 conférences internationales
(DATCOM et SBAC) et 1 workshop international (Europar-CBDP)
3 / 3
Offrir la consolidation et l’isolation de performance
Memory Consolidation: Minimiser la mémoire inutilisée
Memory Isolation: Garantir l’accès à la mémoire
M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 1 / 7
Offrir la consolidation et l’isolation de performance
Memory Consolidation: Minimiser la mémoire inutilisée
Memory Isolation: Garantir l’accès à la mémoire
Native
Host
Mem A Mem B Mem C
Consolidation: un seul espace mémoire
Isolation: même espace mémoire
M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 1 / 7
Offrir la consolidation et l’isolation de performance
Memory Consolidation: Minimiser la mémoire inutilisée
Memory Isolation: Garantir l’accès à la mémoire
Native
Host
Mem A Mem B Mem C
Consolidation: un seul espace mémoire
Isolation: même espace mémoire
With Virtual Machines
Host
Mem A Mem B Mem C
VM A VM B VM C
Consolidation: difficilement transferable
Isolation: espace mémoire dédié
M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 1 / 7
Offrir la consolidation et l’isolation de performance
Memory Consolidation: Minimiser la mémoire inutilisée
Memory Isolation: Garantir l’accès à la mémoire
Native
Host
Mem A Mem B Mem C
Consolidation: un seul espace mémoire
Isolation: même espace mémoire
With Virtual Machines
Host
Mem A Mem B Mem C
VM A VM B VM C
Consolidation: difficilement transferable
Isolation: espace mémoire dédié
With Containers
Host
Mem A Mem B Mem C
Consolidation: facilement transferable
Isolation: espace mémoire dédié
M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 1 / 7
L’automatisation du dimensionnement des conteneurs
Un problème ouvert :
LSFMMS 2016 (Linux Storage, Filesystem and Memory Management Summit)
Vladimir Davydov "Memory control group fairness"
FOSDEM 2017
Chris Down (Facebook) "cgroupv2: Linux’s new unified control"
blog linkedin engineering 2016
Zhenyun Zhuang "Don’t Let Linux Control Groups Run Uncontrolled"
M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 2 / 7
L’automatisation du dimensionnement des conteneurs
Un problème ouvert :
LSFMMS 2016 (Linux Storage, Filesystem and Memory Management Summit)
Vladimir Davydov "Memory control group fairness"
FOSDEM 2017
Chris Down (Facebook) "cgroupv2: Linux’s new unified control"
blog linkedin engineering 2016
Zhenyun Zhuang "Don’t Let Linux Control Groups Run Uncontrolled"
Des besoins différents mais un même constat :
1 besoin d’une métrique pour optimiser le dimensionnement
2 un candidat semble s’imposer, la refault distance
M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 2 / 7
L’automatisation du dimensionnement des conteneurs
Un problème ouvert :
LSFMMS 2016 (Linux Storage, Filesystem and Memory Management Summit)
Vladimir Davydov "Memory control group fairness"
FOSDEM 2017
Chris Down (Facebook) "cgroupv2: Linux’s new unified control"
blog linkedin engineering 2016
Zhenyun Zhuang "Don’t Let Linux Control Groups Run Uncontrolled"
Des besoins différents mais un même constat :
1 besoin d’une métrique pour optimiser le dimensionnement
2 un candidat semble s’imposer, la refault distance
Cette métrique est-elle suffisamment précise ?
M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 2 / 7
Évaluation de la précision de la refault_distance
1 Go
20 min10 sec2 Go
0 500 1000 1500 2000
Position in shadow (in MB)
0.0
0.2
0.4
0.6
0.8
1.0
1.2
1.4
Absoluteerror(GB)
M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 3 / 7
Évaluation de la précision de la refault_distance
1 Go
20 min10 min2 Go
0 500 1000 1500 2000
Position in shadow (in MB)
0.0
0.2
0.4
0.6
0.8
1.0
1.2
1.4
Absoluteerror(GB)
M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 3 / 7
Évaluation de la précision de la refault_distance
1 Go
20 min30 min2 Go
0 500 1000 1500 2000
Position in shadow (in MB)
0.0
0.2
0.4
0.6
0.8
1.0
1.2
1.4
Absoluteerror(GB)
M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 3 / 7
Une approche de refault par groupes
P1P5 P2P3P4P6
Groupe 0
Nb_evictions : 0
Nb_pages : 0
M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 4 / 7
Une approche de refault par groupes
P1P5 P2P3P4P6
Groupe 0
Nb_evictions : 0
Nb_pages : 0
P1P5 P2P3P4P6
Groupe 0
Nb_evictions : 0
Nb_pages : 0
M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 4 / 7
Une approche de refault par groupes
P1P5 P2P3P4P6
Groupe 0
Nb_evictions : 0
Nb_pages : 0
P7 P5 P2P3P4P6
Groupe 0
1
P1
Nb_evictions : 1
Nb_pages : 1
M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 4 / 7
Une approche de refault par groupes
P1P5 P2P3P4P6
Groupe 0
Nb_evictions : 0
Nb_pages : 0
P8 P5 P3P4P6P7
Groupe 0
2
P2
1
P1
Nb_evictions : 2
Nb_pages : 2
M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 4 / 7
Une approche de refault par groupes
P1P5 P2P3P4P6
Groupe 0
Nb_evictions : 0
Nb_pages : 0
P9 P5 P4P6P7P8
Groupe 0
3
P3
2
P2
1
P1
Nb_evictions : 3
Nb_pages : 3
M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 4 / 7
Une approche de refault par groupes
P1P5 P2P3P4P6
Groupe 0
Nb_evictions : 0
Nb_pages : 0
P9 P5 P4P6P7P8
Groupe 0
3
P3
2
P2
1
P1
Nb_evictions : 3
Nb_pages : 3
P9 P5 P4P6P7P8
Groupe 0
3
P3
2
P2
1
P1
Nb_evictions : 3
Nb_pages : 3
M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 4 / 7
Une approche de refault par groupes
P1P5 P2P3P4P6
Groupe 0
Nb_evictions : 0
Nb_pages : 0
P9 P5 P4P6P7P8
Groupe 0
3
P3
2
P2
1
P1
Nb_evictions : 3
Nb_pages : 3
Px P5P6P7P8P9
Groupe 0
4
P4
3
P3
2
P2
1
P1
Nb_evictions : 4
Nb_pages : 4
M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 4 / 7
Une approche de refault par groupes
P1P5 P2P3P4P6
Groupe 0
Nb_evictions : 0
Nb_pages : 0
P9 P5 P4P6P7P8
Groupe 0
3
P3
2
P2
1
P1
Nb_evictions : 3
Nb_pages : 3
Px P5P6P7P8P9
Groupe 0
4
P4
3
P3
2
P2
1
P1
Nb_evictions : 4
Nb_pages : 4
Groupe 1
Nb_evictions : 0
Nb_pages : 0
M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 4 / 7
Une approche de refault par groupes
P1P5 P2P3P4P6
Groupe 0
Nb_evictions : 0
Nb_pages : 0
P9 P5 P4P6P7P8
Groupe 0
3
P3
2
P2
1
P1
Nb_evictions : 3
Nb_pages : 3
Px P6P7P8P9Px
Groupe 0
4
P4
3
P3
2
P2
1
P1
Nb_evictions : 4
Nb_pages : 4
Groupe 1
1
P5
Nb_evictions : 1
Nb_pages : 1
M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 4 / 7
Une approche de refault par groupes
P1P5 P2P3P4P6
Groupe 0
Nb_evictions : 0
Nb_pages : 0
P9 P5 P4P6P7P8
Groupe 0
3
P3
2
P2
1
P1
Nb_evictions : 3
Nb_pages : 3
P7Px Px Px P8P9
Groupe 0
4
P4
3
P3
2
P2
1
P1
Nb_evictions : 4
Nb_pages : 4
Groupe 1
2
P6
1
P5
Nb_evictions : 2
Nb_pages : 2
M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 4 / 7
Une approche de refault par groupes
P1P5 P2P3P4P6
Groupe 0
Nb_evictions : 0
Nb_pages : 0
P9 P5 P4P6P7P8
Groupe 0
3
P3
2
P2
1
P1
Nb_evictions : 3
Nb_pages : 3
P8P9Px Px Px Px
Groupe 0
4
P4
3
P3
2
P2
1
P1
Nb_evictions : 4
Nb_pages : 4
Groupe 1
3
P7
2
P6
1
P5
Nb_evictions : 3
Nb_pages : 3
M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 4 / 7
Une approche de refault par groupes
P1P5 P2P3P4P6
Groupe 0
Nb_evictions : 0
Nb_pages : 0
P9 P5 P4P6P7P8
Groupe 0
3
P3
2
P2
1
P1
Nb_evictions : 3
Nb_pages : 3
Px P9Px Px Px Px
Groupe 0
4
P4
3
P3
2
P2
1
P1
Nb_evictions : 4
Nb_pages : 4
Groupe 1
4
P8
3
P7
2
P6
1
P5
Nb_evictions : 4
Nb_pages : 4
M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 4 / 7
Une approche de refault par groupes
P1P5 P2P3P4P6
Groupe 0
Nb_evictions : 0
Nb_pages : 0
P9 P5 P4P6P7P8
Groupe 0
3
P3
2
P2
1
P1
Nb_evictions : 3
Nb_pages : 3
Px P9Px Px Px Px
Groupe 0
4
P4
3
P3
2
P2
1
P1
Nb_evictions : 4
Nb_pages : 4
Groupe 1
4
P8
3
P7
2
P6
1
P5
Nb_evictions : 4
Nb_pages : 4
Groupe 2
Nb_evictions : 0
Nb_pages : 0
M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 4 / 7
Une approche de refault par groupes
P1P5 P2P3P4P6
Groupe 0
Nb_evictions : 0
Nb_pages : 0
P9 P5 P4P6P7P8
Groupe 0
3
P3
2
P2
1
P1
Nb_evictions : 3
Nb_pages : 3
PxPx Px Px Px Px
Groupe 0
4
P4
3
P3
2
P2
1
P1
Nb_evictions : 4
Nb_pages : 4
Groupe 1
4
P8
3
P7
2
P6
1
P5
Nb_evictions : 4
Nb_pages : 4
Groupe 2
1
P9
Nb_evictions : 1
Nb_pages : 1
M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 4 / 7
Une approche de refault par groupes
P1P5 P2P3P4P6
Groupe 0
Nb_evictions : 0
Nb_pages : 0
P9 P5 P4P6P7P8
Groupe 0
3
P3
2
P2
1
P1
Nb_evictions : 3
Nb_pages : 3
PxPx Px Px Px Px
Groupe 0
4
P4
3
P3
2
P2
1
P1
Nb_evictions : 4
Nb_pages : 4
Groupe 1
4
P8
3
P7
2
P6
1
P5
Nb_evictions : 4
Nb_pages : 4
Groupe 2
1
P9
Nb_evictions : 1
Nb_pages : 1
PxPx Px Px Px Px
Groupe 0
4
P4
3
P3
2
P2
1
P1
Nb_evictions : 4
Nb_pages : 4
Groupe 1
4
P8
3
P7
2
P6
1
P5
Nb_evictions : 4
Nb_pages : 4
Groupe 2
1
P9
Nb_evictions : 1
Nb_pages : 1
M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 4 / 7
Une approche de refault par groupes
P1P5 P2P3P4P6
Groupe 0
Nb_evictions : 0
Nb_pages : 0
P9 P5 P4P6P7P8
Groupe 0
3
P3
2
P2
1
P1
Nb_evictions : 3
Nb_pages : 3
PxPx Px Px Px Px
Groupe 0
4
P4
3
P3
2
P2
1
P1
Nb_evictions : 4
Nb_pages : 4
Groupe 1
4
P8
3
P7
2
P6
1
P5
Nb_evictions : 4
Nb_pages : 4
Groupe 2
1
P9
Nb_evictions : 1
Nb_pages : 1
PxPx Px Px PxP7
Groupe 0
4
P4
3
P3
2
P2
1
P1
Nb_evictions : 4
Nb_pages : 4
Groupe 1
4
P8
2
P6
1
P5
Nb_evictions : 4
Nb_pages : 3
Groupe 2
Nb_evictions : 2
Nb_pages : 2
Px
1
P9
M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 4 / 7
Une approche de refault par groupes
new_refault_distance = 2 + 3 + ( 4 - 2 )
P6Px P6P8P6P9P6Px P6Px P6Px P6PxP6P7
Groupe 0
4
P4
3
P3
2
P2
1
P1
Nb_evictions : 4
Nb_pages : 4
Groupe 1
4
P8
2
P6
1
P5
Nb_evictions : 4
Nb_pages : 3
Groupe 2
Nb_evictions : 2
Nb_pages : 2
P6Px
1
P9
Complexité : on obtient directement la métrique
refault_distance = nb_pages−page_age
M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 5 / 7
Une approche de refault par groupes
new_refault_distance = 2 + 3 + ( 4 - 2 )
P6Px P6P8P6P9P6Px P6Px P6Px P6PxP6P7
Groupe 0
4
P4
3
P3
2
P2
1
P1
Nb_evictions : 4
Nb_pages : 4
Groupe 1
4
P8
2
P6
1
P5
Nb_evictions : 4
Nb_pages : 3
Groupe 2
Nb_evictions : 2
Nb_pages : 2
P6Px
1
P9
Complexité : on obtient directement la métrique
refault_distance = nb_pages−page_age
Empreinte mémoire : limitée et configurable (2 entiers par groupes)
M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 5 / 7
Évaluation de la précision de notre approche par groupe
1 Go
20 min10 sec2 Go
0 500 1000 1500 20000
2
4
6
8
10
12
Absoluteerror(MB)
Maximum error
M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 6 / 7
Évaluation de la précision de notre approche par groupe
1 Go
20 min10 min2 Go
0 500 1000 1500 20000
2
4
6
8
10
12
Absoluteerror(MB)
Maximum error
M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 6 / 7
Évaluation de la précision de notre approche par groupe
1 Go
20 min30 min2 Go
0 500 1000 1500 20000
2
4
6
8
10
12
Absoluteerror(MB)
Maximum error
M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 6 / 7
Estimation d’un working-set depuis la métrique
La métrique donne une approximation de la position d’une page.
On peut en inférer une estimation du working-set :
à chaque miss on regarde la position de la page
on maintient des statistiques sur des fenêtres temporelles
M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 7 / 7
Estimation d’un working-set depuis la métrique
La métrique donne une approximation de la position d’une page.
On peut en inférer une estimation du working-set :
à chaque miss on regarde la position de la page
on maintient des statistiques sur des fenêtres temporelles
# cat /sys/muse
1024 5% 10% 5%
512 0% 0% 5%
1536 22% 15% 8%
2048 38% 27% 16%
2560 38% 27% 16%
4096 56% 50% 45%
... ..% ..% ..%
1min 5min 15min
M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 7 / 7
Estimation d’un working-set depuis la métrique
La métrique donne une approximation de la position d’une page.
On peut en inférer une estimation du working-set :
à chaque miss on regarde la position de la page
on maintient des statistiques sur des fenêtres temporelles
# cat /sys/muse
1024 5% 10% 5%
512 0% 0% 5%
1536 22% 15% 8%
2048 38% 27% 16%
2560 38% 27% 16%
4096 56% 50% 45%
... ..% ..% ..%
1min 5min 15min1min 5min 15min
2048 38% 27% 16%
Sur les 5 dernières minutes, avec 2 Go en plus, on aurait eu 27% hits
M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 7 / 7
www.objectif­libre.com
Cloudkitty pour 
Wolphin
par Objectif Libre
5 juin 2018
www.objectif-libre.com
@objectiflibre
Objectif Libre
Nous accompagnons vos projets Cloud de A à Z
Concevoir
Mettre en 
œuvre
Optimiser 
l’usage
Exploiter
Une infrastructure 
adaptée à vos 
enjeux
Déployer 
intelligemment en 
automatisant
Et tirer le meilleur 
parti de votre Cloud
Assurer le maintien 
en conditions 
opérationnelles
Audit
Conseil
Architecture
Workshops
Notre offre de conseil : sur­mesure ou sur­étagère
Déploiement
Migration
Intégration
DevOps
Big Data
Stockage
Support
Infogérance
SLAs
Packs Starters 
OpenStack
Kit DevOps
CloudKitty
Nos formations à l’utilisation et à la mise en œuvre 
 Composante logicielle d’OpenStack pour la 
facturation
 Rating et chargeback (facturation) des 
ressources physiques consommées
(cpu, mémoire, disque, réseau…)
 Génération de rapports de facturation
Cloudkitty en bref
 Objectif Libre société adhérente au Pôle 
Systematic / Groupement Thématique Logiciels 
Libres
 Prise de connaissance du projet Wolphin lors 
d’échanges avec les partenaires du pôle
 Proposition d’expertise pour la partie facturation 
des ressources consommées par les conteneurs
Wolphin : une rencontre grâce à Systematic
 Ouverture à de nouvelles sources de métriques
 Accélération de l’évolution de la solution pour 
l’écosystème « cloud­natif »
 Découplage de l’authentification d’OpenStack
 Design plus générique pour la collection de 
métriques de nouvelles sources
 Réponse aux besoins de facturation et aux 
enjeux du projet Wolphin
Évolution de Cloudkitty grâce à Wolphin
 Ajout du collecteur Prometheus
 Client v2 qui apporte plus de souplesse et un 
découplage possible avec OpenStack
Avenir de Cloudkitty pour le projet Wolphin
Besoin d’information ?
+33 (0)5.82.95.65.36
contact@objectif-libre.com
Restons en contact
@objectiflibre
Objectif-libre
ObjectifLibre
notre newsletter
www.objectif-libre.com
Vous voulez nous rejoindre ? jobs@objectif-libre.com
Présentation de Gandi
Gandi.net
Domain : Fournisseur de nom de domaine depuis Mars 2000
Simple Hostng: Plus de 100K applicaton et sites déployés
Cloud: Fournisseur de cloud depuis 2008
Security: Geston de certfcats SSL
Créaton : 1999
Effectfs : 84  salaries
Points de présences: 3 contnents (Europe, us, Asie)
Métrologie réseau
Définition métrologie:
La métrologie regroupe l'ensemble des techniques permettant d'effectuer des
mesures, de les interpréter et de garantir leur exactitude
Définition métrologie réseau:
Assurer la collecte est la bonne exploitation des métriques réseaux pour
assurer une facturation équitable
Métrologie réseau au niveau de Wolphin:
• Collecte générique des métriques réseau au travers d’une couche
d’abstraction
• Collecte générique Docker/LXC/…
• Collecte au niveau des containers et au niveau des hosts
Mécanique de Collecte
1/2
Deux processus de collecte:
• Collecte online :
• Extraction periodique de la consommation en bande passante et en
paquets par seconde a partir des statistique netdev du kernel
• Mapping entre les interfaces des containers et leur pair au niveau des
kernel
• Collecte offline:
• Patch du kernel pour retourner les statistique des netdev a la destruction
• Mapping entre les interfaces des containers et leur pair au niveau des
kernel
Mécanique de Collecte
2/2
• Architecture de collecte:
• Daemon en python pour la collecte online
• Règle UDEV et script python pour la collecte offline
• Kairos DB pour le stockage des métriques
• Stockage actuel se basant sur une api en envoyant des données en
JSON
→ Modifier la collecte pour utiliser le model de données Cloudkitty
Alter Way
OSIS Cloud - présentation Wolphin
Jun. 2018 OSIS CloudP. 1
Alter Way
Storage solutions: Prometheus
TS DBMS and monitoring system
+ performance, efficient space (as low as 1.3bytes/sample)
+/- pull model
- no string type metrics, by design
strings only for metadata (labels)
- low performance with high cardinality labels
(i.e. container_id - each value is a new time series)
better with new storage layer in 2.0
- no event logging
- no bulk API
OSIS Cloud - présentation Wolphin
Jun. 2018 OSIS CloudP. 2
Alter Way
Storage solutions: InfluxDB
Hybrid DBMS for time series and events
+ string type metrics
+ event logging
- commercial clustering
- still not a general storage
OSIS Cloud - présentation Wolphin
Jun. 2018 OSIS CloudP. 3
Alter Way
Storage solutions: Elasticsearch
Search engine / document store
+ perfect for event logging
+ maturity, tooling, kibana, etc.
- performance, space
- especially bad for time series
OSIS Cloud - présentation Wolphin
Jun. 2018 OSIS CloudP. 4
Alter Way
Storage solutions: Timescale
Postgres extension: partitioned hypertables
- performance
but wrt Postgres: ~20x insert, 2kx delete, up to 14kx queries
- grafana dashboards
+ no need for ETL
can manage all types of data we need
+ free clustering
++ flexibility, maturity
OSIS Cloud - présentation Wolphin
Jun. 2018 OSIS CloudP. 5
Alter Way
⇒ https://gitlab.com/wolphin
Merci
- Julien Sopena, LIP6
- Christophe Cérin, LIPN
- Christophe Sauthier, Objectif Libre
- Ahmed Amamou, Gandi
- Marco Mariani, Alter Way
Juin 2018 OSIS CloudP. 4
Aller plus loin avec Wolphin
OSIS Cloud - présentation Wolphin

Contenu connexe

Plus de Pôle Systematic Paris-Region

Plus de Pôle Systematic Paris-Region (20)

Osis18_Cloud : Pas de commun sans communauté ?
Osis18_Cloud : Pas de commun sans communauté ?Osis18_Cloud : Pas de commun sans communauté ?
Osis18_Cloud : Pas de commun sans communauté ?
 
Osis18_Cloud : Virtualisation efficace d’architectures NUMA
Osis18_Cloud : Virtualisation efficace d’architectures NUMAOsis18_Cloud : Virtualisation efficace d’architectures NUMA
Osis18_Cloud : Virtualisation efficace d’architectures NUMA
 
Osis18_Cloud : DeepTorrent Stockage distribué perenne basé sur Bittorrent
Osis18_Cloud : DeepTorrent Stockage distribué perenne basé sur BittorrentOsis18_Cloud : DeepTorrent Stockage distribué perenne basé sur Bittorrent
Osis18_Cloud : DeepTorrent Stockage distribué perenne basé sur Bittorrent
 
Osis18_Cloud : Software-heritage
Osis18_Cloud : Software-heritageOsis18_Cloud : Software-heritage
Osis18_Cloud : Software-heritage
 
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
OSIS18_IoT: L'approche machine virtuelle pour les microcontrôleurs, le projet...
 
OSIS18_IoT: La securite des objets connectes a bas cout avec l'os et riot
OSIS18_IoT: La securite des objets connectes a bas cout avec l'os et riotOSIS18_IoT: La securite des objets connectes a bas cout avec l'os et riot
OSIS18_IoT: La securite des objets connectes a bas cout avec l'os et riot
 
OSIS18_IoT : Solution de mise au point pour les systemes embarques, par Julio...
OSIS18_IoT : Solution de mise au point pour les systemes embarques, par Julio...OSIS18_IoT : Solution de mise au point pour les systemes embarques, par Julio...
OSIS18_IoT : Solution de mise au point pour les systemes embarques, par Julio...
 
OSIS18_IoT : Securisation du reseau des objets connectes, par Nicolas LE SAUZ...
OSIS18_IoT : Securisation du reseau des objets connectes, par Nicolas LE SAUZ...OSIS18_IoT : Securisation du reseau des objets connectes, par Nicolas LE SAUZ...
OSIS18_IoT : Securisation du reseau des objets connectes, par Nicolas LE SAUZ...
 
OSIS18_IoT : Ada and SPARK - Defense in Depth for Safe Micro-controller Progr...
OSIS18_IoT : Ada and SPARK - Defense in Depth for Safe Micro-controller Progr...OSIS18_IoT : Ada and SPARK - Defense in Depth for Safe Micro-controller Progr...
OSIS18_IoT : Ada and SPARK - Defense in Depth for Safe Micro-controller Progr...
 
OSIS18_IoT : RTEMS pour l'IoT professionnel, par Pierre Ficheux (Smile ECS)
OSIS18_IoT : RTEMS pour l'IoT professionnel, par Pierre Ficheux (Smile ECS)OSIS18_IoT : RTEMS pour l'IoT professionnel, par Pierre Ficheux (Smile ECS)
OSIS18_IoT : RTEMS pour l'IoT professionnel, par Pierre Ficheux (Smile ECS)
 
PyParis 2017 / Un mooc python, by thierry parmentelat
PyParis 2017 / Un mooc python, by thierry parmentelatPyParis 2017 / Un mooc python, by thierry parmentelat
PyParis 2017 / Un mooc python, by thierry parmentelat
 
PyParis2017 / Python pour les enseignants des classes préparatoires, by Olivi...
PyParis2017 / Python pour les enseignants des classes préparatoires, by Olivi...PyParis2017 / Python pour les enseignants des classes préparatoires, by Olivi...
PyParis2017 / Python pour les enseignants des classes préparatoires, by Olivi...
 
PyParis 2017 / Unicode and bytes demystified, by Boris Feld
PyParis 2017 / Unicode and bytes demystified, by Boris FeldPyParis 2017 / Unicode and bytes demystified, by Boris Feld
PyParis 2017 / Unicode and bytes demystified, by Boris Feld
 
Py paris2017 / promises and perils in artificial intelligence, by Andreas Muller
Py paris2017 / promises and perils in artificial intelligence, by Andreas MullerPy paris2017 / promises and perils in artificial intelligence, by Andreas Muller
Py paris2017 / promises and perils in artificial intelligence, by Andreas Muller
 
PyParis2017 / Incremental computation in python, by Philip Schanely
PyParis2017 / Incremental computation in python, by Philip SchanelyPyParis2017 / Incremental computation in python, by Philip Schanely
PyParis2017 / Incremental computation in python, by Philip Schanely
 
PyParis2017 / How to prepare data for NLP, by Loryfel Nunez.pptx
PyParis2017 / How to prepare data for NLP, by Loryfel Nunez.pptx PyParis2017 / How to prepare data for NLP, by Loryfel Nunez.pptx
PyParis2017 / How to prepare data for NLP, by Loryfel Nunez.pptx
 
PyParis2017 / Performant python, by Burkhard Kloss
PyParis2017 / Performant python, by Burkhard KlossPyParis2017 / Performant python, by Burkhard Kloss
PyParis2017 / Performant python, by Burkhard Kloss
 
Pyparis2017 / Scikit-learn - an incomplete yearly review, by Gael Varoquaux
Pyparis2017 / Scikit-learn - an incomplete yearly review, by Gael VaroquauxPyparis2017 / Scikit-learn - an incomplete yearly review, by Gael Varoquaux
Pyparis2017 / Scikit-learn - an incomplete yearly review, by Gael Varoquaux
 
PyParis2017 / Machine learning to moderate classifieds, by Vaibhav Singh
PyParis2017 / Machine learning to moderate classifieds, by Vaibhav SinghPyParis2017 / Machine learning to moderate classifieds, by Vaibhav Singh
PyParis2017 / Machine learning to moderate classifieds, by Vaibhav Singh
 
PyParis2017 / Tutorial transcript - Function-as-a-service : a pythonic perspe...
PyParis2017 / Tutorial transcript - Function-as-a-service : a pythonic perspe...PyParis2017 / Tutorial transcript - Function-as-a-service : a pythonic perspe...
PyParis2017 / Tutorial transcript - Function-as-a-service : a pythonic perspe...
 

Osis18_Cloud : Projet Wolphin

  • 1. Wolphin ⇒ Objectif Libre, Gandi, Lip6, LIPN Osis Cloud 2018
  • 2. Alter Way WOLPHIN ⇒ Facturer les consommations en conteneurs - métrologie - monitoring - orchestration - facturation ⇒ 3/4 d’avancement sur deux ans, fin Janvier 2019 ⇒ Prototype quasi finalisé, livraison Juillet 2018 P. 2 OSIS Cloud - présentation Wolphin OSIS CloudJuin 2018
  • 3. Alter Way WOLPHIN ⇒ Facturer les consommations en conteneurs - métrologie ✓ - monitoring ✓ - orchestration ✓ - facturation ✓ ⇒ 3/4 d’avancement sur deux ans, fin Janvier 2019 ⇒ Prototype quasi finalisé, livraison Juillet 2018 P. 3 OSIS Cloud - présentation Wolphin OSIS CloudJuin 2018
  • 4. LIPN Système d’ordonnancement traditionnel • Réservation/Allocation sur la base d’un nombre fixe de ressources. 1 / 3
  • 5. LIPN Notre approche (exemple) • Réservation dynamique de ressources selon des classes SLA : Premium pour les CPUs (entre 2 et 4 cœurs) ; Advanced pour la RAM (entre 4 et 8GB RAM) Motivation • Augmenter la combinatoire pour des placements plus fins ⇒ meilleures performances • On masque à l’utilisateur une complexité (il spécifie des classes) Principe • Sélection de la requête (encapsulée dans un conteneur); • Sélection des nœuds candidats; • Calcul automatique du nombre de ressources; • Affectation du conteneur sur une machine. 2 / 3
  • 6. Résultats Collaboration • Xuanhua Shi - Huazhong University of Science and Technology (Chine) Implémentations • Système d’allocation et d’ordonnancement de conteneurs (C++) • Nouvelles stratégies multi-critères dans SwamrKit (Go) Publications • 2 articles publiés dans des conférences internationales (SC2 et PDP) • 1 article en cours de soumission dans une revue internationale (JPDC) • 3 articles en cours de soumission dans 2 conférences internationales (DATCOM et SBAC) et 1 workshop international (Europar-CBDP) 3 / 3
  • 7. Offrir la consolidation et l’isolation de performance Memory Consolidation: Minimiser la mémoire inutilisée Memory Isolation: Garantir l’accès à la mémoire M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 1 / 7
  • 8. Offrir la consolidation et l’isolation de performance Memory Consolidation: Minimiser la mémoire inutilisée Memory Isolation: Garantir l’accès à la mémoire Native Host Mem A Mem B Mem C Consolidation: un seul espace mémoire Isolation: même espace mémoire M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 1 / 7
  • 9. Offrir la consolidation et l’isolation de performance Memory Consolidation: Minimiser la mémoire inutilisée Memory Isolation: Garantir l’accès à la mémoire Native Host Mem A Mem B Mem C Consolidation: un seul espace mémoire Isolation: même espace mémoire With Virtual Machines Host Mem A Mem B Mem C VM A VM B VM C Consolidation: difficilement transferable Isolation: espace mémoire dédié M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 1 / 7
  • 10. Offrir la consolidation et l’isolation de performance Memory Consolidation: Minimiser la mémoire inutilisée Memory Isolation: Garantir l’accès à la mémoire Native Host Mem A Mem B Mem C Consolidation: un seul espace mémoire Isolation: même espace mémoire With Virtual Machines Host Mem A Mem B Mem C VM A VM B VM C Consolidation: difficilement transferable Isolation: espace mémoire dédié With Containers Host Mem A Mem B Mem C Consolidation: facilement transferable Isolation: espace mémoire dédié M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 1 / 7
  • 11. L’automatisation du dimensionnement des conteneurs Un problème ouvert : LSFMMS 2016 (Linux Storage, Filesystem and Memory Management Summit) Vladimir Davydov "Memory control group fairness" FOSDEM 2017 Chris Down (Facebook) "cgroupv2: Linux’s new unified control" blog linkedin engineering 2016 Zhenyun Zhuang "Don’t Let Linux Control Groups Run Uncontrolled" M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 2 / 7
  • 12. L’automatisation du dimensionnement des conteneurs Un problème ouvert : LSFMMS 2016 (Linux Storage, Filesystem and Memory Management Summit) Vladimir Davydov "Memory control group fairness" FOSDEM 2017 Chris Down (Facebook) "cgroupv2: Linux’s new unified control" blog linkedin engineering 2016 Zhenyun Zhuang "Don’t Let Linux Control Groups Run Uncontrolled" Des besoins différents mais un même constat : 1 besoin d’une métrique pour optimiser le dimensionnement 2 un candidat semble s’imposer, la refault distance M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 2 / 7
  • 13. L’automatisation du dimensionnement des conteneurs Un problème ouvert : LSFMMS 2016 (Linux Storage, Filesystem and Memory Management Summit) Vladimir Davydov "Memory control group fairness" FOSDEM 2017 Chris Down (Facebook) "cgroupv2: Linux’s new unified control" blog linkedin engineering 2016 Zhenyun Zhuang "Don’t Let Linux Control Groups Run Uncontrolled" Des besoins différents mais un même constat : 1 besoin d’une métrique pour optimiser le dimensionnement 2 un candidat semble s’imposer, la refault distance Cette métrique est-elle suffisamment précise ? M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 2 / 7
  • 14. Évaluation de la précision de la refault_distance 1 Go 20 min10 sec2 Go 0 500 1000 1500 2000 Position in shadow (in MB) 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 Absoluteerror(GB) M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 3 / 7
  • 15. Évaluation de la précision de la refault_distance 1 Go 20 min10 min2 Go 0 500 1000 1500 2000 Position in shadow (in MB) 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 Absoluteerror(GB) M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 3 / 7
  • 16. Évaluation de la précision de la refault_distance 1 Go 20 min30 min2 Go 0 500 1000 1500 2000 Position in shadow (in MB) 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 Absoluteerror(GB) M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 3 / 7
  • 17. Une approche de refault par groupes P1P5 P2P3P4P6 Groupe 0 Nb_evictions : 0 Nb_pages : 0 M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 4 / 7
  • 18. Une approche de refault par groupes P1P5 P2P3P4P6 Groupe 0 Nb_evictions : 0 Nb_pages : 0 P1P5 P2P3P4P6 Groupe 0 Nb_evictions : 0 Nb_pages : 0 M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 4 / 7
  • 19. Une approche de refault par groupes P1P5 P2P3P4P6 Groupe 0 Nb_evictions : 0 Nb_pages : 0 P7 P5 P2P3P4P6 Groupe 0 1 P1 Nb_evictions : 1 Nb_pages : 1 M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 4 / 7
  • 20. Une approche de refault par groupes P1P5 P2P3P4P6 Groupe 0 Nb_evictions : 0 Nb_pages : 0 P8 P5 P3P4P6P7 Groupe 0 2 P2 1 P1 Nb_evictions : 2 Nb_pages : 2 M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 4 / 7
  • 21. Une approche de refault par groupes P1P5 P2P3P4P6 Groupe 0 Nb_evictions : 0 Nb_pages : 0 P9 P5 P4P6P7P8 Groupe 0 3 P3 2 P2 1 P1 Nb_evictions : 3 Nb_pages : 3 M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 4 / 7
  • 22. Une approche de refault par groupes P1P5 P2P3P4P6 Groupe 0 Nb_evictions : 0 Nb_pages : 0 P9 P5 P4P6P7P8 Groupe 0 3 P3 2 P2 1 P1 Nb_evictions : 3 Nb_pages : 3 P9 P5 P4P6P7P8 Groupe 0 3 P3 2 P2 1 P1 Nb_evictions : 3 Nb_pages : 3 M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 4 / 7
  • 23. Une approche de refault par groupes P1P5 P2P3P4P6 Groupe 0 Nb_evictions : 0 Nb_pages : 0 P9 P5 P4P6P7P8 Groupe 0 3 P3 2 P2 1 P1 Nb_evictions : 3 Nb_pages : 3 Px P5P6P7P8P9 Groupe 0 4 P4 3 P3 2 P2 1 P1 Nb_evictions : 4 Nb_pages : 4 M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 4 / 7
  • 24. Une approche de refault par groupes P1P5 P2P3P4P6 Groupe 0 Nb_evictions : 0 Nb_pages : 0 P9 P5 P4P6P7P8 Groupe 0 3 P3 2 P2 1 P1 Nb_evictions : 3 Nb_pages : 3 Px P5P6P7P8P9 Groupe 0 4 P4 3 P3 2 P2 1 P1 Nb_evictions : 4 Nb_pages : 4 Groupe 1 Nb_evictions : 0 Nb_pages : 0 M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 4 / 7
  • 25. Une approche de refault par groupes P1P5 P2P3P4P6 Groupe 0 Nb_evictions : 0 Nb_pages : 0 P9 P5 P4P6P7P8 Groupe 0 3 P3 2 P2 1 P1 Nb_evictions : 3 Nb_pages : 3 Px P6P7P8P9Px Groupe 0 4 P4 3 P3 2 P2 1 P1 Nb_evictions : 4 Nb_pages : 4 Groupe 1 1 P5 Nb_evictions : 1 Nb_pages : 1 M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 4 / 7
  • 26. Une approche de refault par groupes P1P5 P2P3P4P6 Groupe 0 Nb_evictions : 0 Nb_pages : 0 P9 P5 P4P6P7P8 Groupe 0 3 P3 2 P2 1 P1 Nb_evictions : 3 Nb_pages : 3 P7Px Px Px P8P9 Groupe 0 4 P4 3 P3 2 P2 1 P1 Nb_evictions : 4 Nb_pages : 4 Groupe 1 2 P6 1 P5 Nb_evictions : 2 Nb_pages : 2 M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 4 / 7
  • 27. Une approche de refault par groupes P1P5 P2P3P4P6 Groupe 0 Nb_evictions : 0 Nb_pages : 0 P9 P5 P4P6P7P8 Groupe 0 3 P3 2 P2 1 P1 Nb_evictions : 3 Nb_pages : 3 P8P9Px Px Px Px Groupe 0 4 P4 3 P3 2 P2 1 P1 Nb_evictions : 4 Nb_pages : 4 Groupe 1 3 P7 2 P6 1 P5 Nb_evictions : 3 Nb_pages : 3 M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 4 / 7
  • 28. Une approche de refault par groupes P1P5 P2P3P4P6 Groupe 0 Nb_evictions : 0 Nb_pages : 0 P9 P5 P4P6P7P8 Groupe 0 3 P3 2 P2 1 P1 Nb_evictions : 3 Nb_pages : 3 Px P9Px Px Px Px Groupe 0 4 P4 3 P3 2 P2 1 P1 Nb_evictions : 4 Nb_pages : 4 Groupe 1 4 P8 3 P7 2 P6 1 P5 Nb_evictions : 4 Nb_pages : 4 M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 4 / 7
  • 29. Une approche de refault par groupes P1P5 P2P3P4P6 Groupe 0 Nb_evictions : 0 Nb_pages : 0 P9 P5 P4P6P7P8 Groupe 0 3 P3 2 P2 1 P1 Nb_evictions : 3 Nb_pages : 3 Px P9Px Px Px Px Groupe 0 4 P4 3 P3 2 P2 1 P1 Nb_evictions : 4 Nb_pages : 4 Groupe 1 4 P8 3 P7 2 P6 1 P5 Nb_evictions : 4 Nb_pages : 4 Groupe 2 Nb_evictions : 0 Nb_pages : 0 M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 4 / 7
  • 30. Une approche de refault par groupes P1P5 P2P3P4P6 Groupe 0 Nb_evictions : 0 Nb_pages : 0 P9 P5 P4P6P7P8 Groupe 0 3 P3 2 P2 1 P1 Nb_evictions : 3 Nb_pages : 3 PxPx Px Px Px Px Groupe 0 4 P4 3 P3 2 P2 1 P1 Nb_evictions : 4 Nb_pages : 4 Groupe 1 4 P8 3 P7 2 P6 1 P5 Nb_evictions : 4 Nb_pages : 4 Groupe 2 1 P9 Nb_evictions : 1 Nb_pages : 1 M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 4 / 7
  • 31. Une approche de refault par groupes P1P5 P2P3P4P6 Groupe 0 Nb_evictions : 0 Nb_pages : 0 P9 P5 P4P6P7P8 Groupe 0 3 P3 2 P2 1 P1 Nb_evictions : 3 Nb_pages : 3 PxPx Px Px Px Px Groupe 0 4 P4 3 P3 2 P2 1 P1 Nb_evictions : 4 Nb_pages : 4 Groupe 1 4 P8 3 P7 2 P6 1 P5 Nb_evictions : 4 Nb_pages : 4 Groupe 2 1 P9 Nb_evictions : 1 Nb_pages : 1 PxPx Px Px Px Px Groupe 0 4 P4 3 P3 2 P2 1 P1 Nb_evictions : 4 Nb_pages : 4 Groupe 1 4 P8 3 P7 2 P6 1 P5 Nb_evictions : 4 Nb_pages : 4 Groupe 2 1 P9 Nb_evictions : 1 Nb_pages : 1 M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 4 / 7
  • 32. Une approche de refault par groupes P1P5 P2P3P4P6 Groupe 0 Nb_evictions : 0 Nb_pages : 0 P9 P5 P4P6P7P8 Groupe 0 3 P3 2 P2 1 P1 Nb_evictions : 3 Nb_pages : 3 PxPx Px Px Px Px Groupe 0 4 P4 3 P3 2 P2 1 P1 Nb_evictions : 4 Nb_pages : 4 Groupe 1 4 P8 3 P7 2 P6 1 P5 Nb_evictions : 4 Nb_pages : 4 Groupe 2 1 P9 Nb_evictions : 1 Nb_pages : 1 PxPx Px Px PxP7 Groupe 0 4 P4 3 P3 2 P2 1 P1 Nb_evictions : 4 Nb_pages : 4 Groupe 1 4 P8 2 P6 1 P5 Nb_evictions : 4 Nb_pages : 3 Groupe 2 Nb_evictions : 2 Nb_pages : 2 Px 1 P9 M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 4 / 7
  • 33. Une approche de refault par groupes new_refault_distance = 2 + 3 + ( 4 - 2 ) P6Px P6P8P6P9P6Px P6Px P6Px P6PxP6P7 Groupe 0 4 P4 3 P3 2 P2 1 P1 Nb_evictions : 4 Nb_pages : 4 Groupe 1 4 P8 2 P6 1 P5 Nb_evictions : 4 Nb_pages : 3 Groupe 2 Nb_evictions : 2 Nb_pages : 2 P6Px 1 P9 Complexité : on obtient directement la métrique refault_distance = nb_pages−page_age M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 5 / 7
  • 34. Une approche de refault par groupes new_refault_distance = 2 + 3 + ( 4 - 2 ) P6Px P6P8P6P9P6Px P6Px P6Px P6PxP6P7 Groupe 0 4 P4 3 P3 2 P2 1 P1 Nb_evictions : 4 Nb_pages : 4 Groupe 1 4 P8 2 P6 1 P5 Nb_evictions : 4 Nb_pages : 3 Groupe 2 Nb_evictions : 2 Nb_pages : 2 P6Px 1 P9 Complexité : on obtient directement la métrique refault_distance = nb_pages−page_age Empreinte mémoire : limitée et configurable (2 entiers par groupes) M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 5 / 7
  • 35. Évaluation de la précision de notre approche par groupe 1 Go 20 min10 sec2 Go 0 500 1000 1500 20000 2 4 6 8 10 12 Absoluteerror(MB) Maximum error M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 6 / 7
  • 36. Évaluation de la précision de notre approche par groupe 1 Go 20 min10 min2 Go 0 500 1000 1500 20000 2 4 6 8 10 12 Absoluteerror(MB) Maximum error M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 6 / 7
  • 37. Évaluation de la précision de notre approche par groupe 1 Go 20 min30 min2 Go 0 500 1000 1500 20000 2 4 6 8 10 12 Absoluteerror(MB) Maximum error M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 6 / 7
  • 38. Estimation d’un working-set depuis la métrique La métrique donne une approximation de la position d’une page. On peut en inférer une estimation du working-set : à chaque miss on regarde la position de la page on maintient des statistiques sur des fenêtres temporelles M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 7 / 7
  • 39. Estimation d’un working-set depuis la métrique La métrique donne une approximation de la position d’une page. On peut en inférer une estimation du working-set : à chaque miss on regarde la position de la page on maintient des statistiques sur des fenêtres temporelles # cat /sys/muse 1024 5% 10% 5% 512 0% 0% 5% 1536 22% 15% 8% 2048 38% 27% 16% 2560 38% 27% 16% 4096 56% 50% 45% ... ..% ..% ..% 1min 5min 15min M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 7 / 7
  • 40. Estimation d’un working-set depuis la métrique La métrique donne une approximation de la position d’une page. On peut en inférer une estimation du working-set : à chaque miss on regarde la position de la page on maintient des statistiques sur des fenêtres temporelles # cat /sys/muse 1024 5% 10% 5% 512 0% 0% 5% 1536 22% 15% 8% 2048 38% 27% 16% 2560 38% 27% 16% 4096 56% 50% 45% ... ..% ..% ..% 1min 5min 15min1min 5min 15min 2048 38% 27% 16% Sur les 5 dernières minutes, avec 2 Go en plus, on aurait eu 27% hits M. Bittan / J. Sopena MUsE - Memory Usage Evaluation 7 / 7
  • 44.  Objectif Libre société adhérente au Pôle  Systematic / Groupement Thématique Logiciels  Libres  Prise de connaissance du projet Wolphin lors  d’échanges avec les partenaires du pôle  Proposition d’expertise pour la partie facturation  des ressources consommées par les conteneurs Wolphin : une rencontre grâce à Systematic
  • 45.  Ouverture à de nouvelles sources de métriques  Accélération de l’évolution de la solution pour  l’écosystème « cloud­natif »  Découplage de l’authentification d’OpenStack  Design plus générique pour la collection de  métriques de nouvelles sources  Réponse aux besoins de facturation et aux  enjeux du projet Wolphin Évolution de Cloudkitty grâce à Wolphin
  • 47. Besoin d’information ? +33 (0)5.82.95.65.36 contact@objectif-libre.com Restons en contact @objectiflibre Objectif-libre ObjectifLibre notre newsletter www.objectif-libre.com Vous voulez nous rejoindre ? jobs@objectif-libre.com
  • 48. Présentation de Gandi Gandi.net Domain : Fournisseur de nom de domaine depuis Mars 2000 Simple Hostng: Plus de 100K applicaton et sites déployés Cloud: Fournisseur de cloud depuis 2008 Security: Geston de certfcats SSL Créaton : 1999 Effectfs : 84 salaries Points de présences: 3 contnents (Europe, us, Asie)
  • 49. Métrologie réseau Définition métrologie: La métrologie regroupe l'ensemble des techniques permettant d'effectuer des mesures, de les interpréter et de garantir leur exactitude Définition métrologie réseau: Assurer la collecte est la bonne exploitation des métriques réseaux pour assurer une facturation équitable Métrologie réseau au niveau de Wolphin: • Collecte générique des métriques réseau au travers d’une couche d’abstraction • Collecte générique Docker/LXC/… • Collecte au niveau des containers et au niveau des hosts
  • 50. Mécanique de Collecte 1/2 Deux processus de collecte: • Collecte online : • Extraction periodique de la consommation en bande passante et en paquets par seconde a partir des statistique netdev du kernel • Mapping entre les interfaces des containers et leur pair au niveau des kernel • Collecte offline: • Patch du kernel pour retourner les statistique des netdev a la destruction • Mapping entre les interfaces des containers et leur pair au niveau des kernel
  • 51. Mécanique de Collecte 2/2 • Architecture de collecte: • Daemon en python pour la collecte online • Règle UDEV et script python pour la collecte offline • Kairos DB pour le stockage des métriques • Stockage actuel se basant sur une api en envoyant des données en JSON → Modifier la collecte pour utiliser le model de données Cloudkitty
  • 52. Alter Way OSIS Cloud - présentation Wolphin Jun. 2018 OSIS CloudP. 1
  • 53. Alter Way Storage solutions: Prometheus TS DBMS and monitoring system + performance, efficient space (as low as 1.3bytes/sample) +/- pull model - no string type metrics, by design strings only for metadata (labels) - low performance with high cardinality labels (i.e. container_id - each value is a new time series) better with new storage layer in 2.0 - no event logging - no bulk API OSIS Cloud - présentation Wolphin Jun. 2018 OSIS CloudP. 2
  • 54. Alter Way Storage solutions: InfluxDB Hybrid DBMS for time series and events + string type metrics + event logging - commercial clustering - still not a general storage OSIS Cloud - présentation Wolphin Jun. 2018 OSIS CloudP. 3
  • 55. Alter Way Storage solutions: Elasticsearch Search engine / document store + perfect for event logging + maturity, tooling, kibana, etc. - performance, space - especially bad for time series OSIS Cloud - présentation Wolphin Jun. 2018 OSIS CloudP. 4
  • 56. Alter Way Storage solutions: Timescale Postgres extension: partitioned hypertables - performance but wrt Postgres: ~20x insert, 2kx delete, up to 14kx queries - grafana dashboards + no need for ETL can manage all types of data we need + free clustering ++ flexibility, maturity OSIS Cloud - présentation Wolphin Jun. 2018 OSIS CloudP. 5
  • 57. Alter Way ⇒ https://gitlab.com/wolphin Merci - Julien Sopena, LIP6 - Christophe Cérin, LIPN - Christophe Sauthier, Objectif Libre - Ahmed Amamou, Gandi - Marco Mariani, Alter Way Juin 2018 OSIS CloudP. 4 Aller plus loin avec Wolphin OSIS Cloud - présentation Wolphin