Simulation de traces réelles d’E/S disque de PC. Jalil Boukhobza, Claude Timsit Perpignan le 06/10/2006 Université de Versailles Saint Quentin Laboratoire Perpi' Conférence CFSE'5
Plan de la présentation 1. Motivations 2. Aperçu des E/S disque sous Windows 3. Le simulateur: architecture de WinIOSim 4. Les stratégies du cache de fichiers 5. Configuration du simulateur 6. Validation 7. Résumé
1. Motivations Accès aux fichiers : encore et toujours un goulet d’étranglement Complexité des systèmes de stockage : Architecture : Plusieurs niveaux → plusieurs strat é gies d ’ optimisation ind é pendantes Les performances → pas toujours optimales → difficilement prévisibles / paramètres masqués à l’utilisateur Application : performances dépendant de la stratégie d’accès Exemple : CreateFile (pour Windows) et open (pour Unix/Linux) Mode d’accès / Taille des requêtes : Variations importantes des performances Windows → peu é tudi é / tr è s utilis é But: permettre à l’utilisateur de prédire les performances d’une charge d’E/S sur une machine donnée.
2. Aperçu des E/S disque sous Windows Possibilité d’une FASTIO ? oui Copie des données du cache vers la mémoire du processus oui Bloc de données présent dans le cache ? oui non Génération d’une IRP (I/O Request Packet) non Cache du disque Disque dur non Initialisation du cache Pilote du système de fichiers Gestionnaire du cache Pilote du système de stockage (disque dur) IRP non- caché Gestionnaire de mémoire virtuelle Défaut de page Possibilité d’utilisation du cache de fichiers ? Lecture/écriture de fichier Fonctions Win32 ReadFile(), WriteFile() Quatre modes d’accès spécifiques à la fonction CreateFile() sont testés: Mode « sans buffer » (sans cache de fichiers) Mode normal, séquentiel et mode d’écriture immédiate ou « write through » Bras du disque Temps de seek Temps de rotation
3. Le simulateur: architecture de WinIOSim But: Optimisation de l’application: identifier la meilleure stratégie d’E/S sur une machine donnée. Optimisation de l’architecture : Identifier la meilleure architecture pour une charge d’E/S donnée. Quoi de neuf ? Implémentation des algorithmes de cache spécifiques à Windows (modes d’accès) identifiés par un travail d’ingénierie inversé. La séquence des requêtes envoyées au disque dépend du mode d’accès et de la séquence envoyée par l’utilisateur. Réactions du sous système de stockage à ces algorithmes La réaction dépend de la séquence de requêtes et donc des algorithmes.
Le simulateur: architecture de WinIOSim [2] File d’attente Processus Application Processus SystèmeOrdonnanceur d’E/S Mémoire du processus Cache de fichiers Cache du disque Disque Générateur de requêtes 1Générateur de requêtes 2 Fichiers de trace réelle
Les modules du simulateur Les générateurs de requêtes: Générateur de requêtes synthétiques: Type des requêtes, taille, nombre, temps d’inter arrivée, mode d’accès, adresse des données. Différentes distributions possibles pour chaque paramètre (Poisson, uniforme, exponentiel, etc) → Omnet++. Requêtes synchrones et asynchrones. Traces réelles extraites avec Filemon ( Module de la mémoire du processus et du cache de fichiers: simulent les copies de données, les politiques de mise à jour, etc.
Les modules du simulateur [2] Processus application et processus système: Contrôlent le flux des requêtes → sous système disque. Groupent et divisent les requêtes Algorithmes du cache de fichiers: lecture anticipée, écriture retardée, écriture immédiate par rapport aux modes d’accès. Différents bus: débits, délais, partage.
Les modules du simulateur [3] Ordonnanceur d’E/S disque Files d’attente: Fifo, Scan, Look, etc. Cache du disque Segmentation, algorithmes de lecture anticipée, écriture retardée et écriture immédiate, algorithmes de mise jour du cache, etc. Disque Mapping, zoning, secteurs de secours, nombre de plateaux, vitesse de rotation, temps de positionnement (seek), etc.
4. Les stratégies du cache de fichiers (exemple en lecture) Algorithmes de lecture anticipée du cache (Windows): No buffer mode Opérations de lecture: Mode séquentiel: chargement séquentiel des données Bn, Bn+1, Bn+2, Bn+3, etc. Mode normal (défaut) processus système : Une requête: 3 blocs de 64ko Bloc de 64ko chargé par le processus système Bloc de 64ko chargé par le processus application Quelles sont les réactions du cache du disque? Va-t-il charger une partie des données ? B1B1 B2B2 B3B3 B4B4 Séquence finale des blocs demandés: B 1,1, B 1,2, B 1,3, B 3,1, B 2,1, B 3,2,B 2,2, B 3,3, B 2,3, B 4,1, B 4,2,
Les stratégies du cache de fichiers (exemple en écriture). Opérations d’écriture: Modes normal et séquentiel : pour une requête donnée, quelques blocs sont vidés sur le disque et les autres dans le cache de fichiers (par la suite vidés sur le disque). Mode d’écriture immédiate: Chaque bloc écrit -> cache de fichiers -> cache du disque -> disque + modification du fichier système (FAT, $logfile) -> acquittement. Bloc de 64ko copié sur le disque Bloc de 64ko copié sur le cache de fichiers puis vidé sur le disque Exemple avec des blocs de 320ko Cache de fichiers Disque flush Req 4Req 5 Req 6Req 7Req 8 Req 2 Req 1 Req 3 1
5. Configuration du simulateur Entrées: Configuration des générateurs d’E/S Modélisés par l’utilisateur Traces réelles d’E/S disque Définition de l’architecture simulée Si celle-ci existe: Paramètres obtenues d’après les manuels des fabricants Paramètres obtenues avec l’aide de l’outil d’extraction de paramètres de stockage que nous avons développé (WioTester) Sorties: Temps de réponse et débits (les deux métriques les plus importantes en E/S disque) L’état de chaque module à chaque étape de la simulation.
6. Validation Comparaison des mesures et des simulations. Mesures → Sqlio (Microsoft) et WioTester (PRiSM) Opérations de lecture: Accès séquentiel en mode « sans buffer » « normal » Accès aléatoire en mode « sans buffer » « normal » Opérations d’écriture: Mode « normal » Mode « sans buffer »
Architectures testées
Résultats
7. Résumé Simulateur d’E/S disque très précis (~6% en moyenne) → traces réelles ou/et générateurs de requêtes modélisés. Simule l’interaction entre les différents niveaux de cache. Il permet l’optimisation des architectures, du système et des applications → prédiction des performances des E/S. Résout en partie le problème de représentativité (des charges d’E/S) des outils de benchmarking.
Reste des outils développés Architecture existante Liste des paramètres de l’architecture à simuler Définition des générateurs de requêtes WioTester Simulateur d’accès aux fichiers WinIOSim Liste des paramètres de l’architecture à simuler (si non existante) Résultats de la simulation : temps de réponse, débits, etc. Résultats des mesures de performances. Traces réelles
Merci de votre attention Question ?