180 likes | 301 Views
Laboratoire. Université de Versailles Saint Quentin. Perpi'2006 - Conférence CFSE'5. Simulation de traces réelles d’E/S disque de PC. Jalil Boukhobza , Claude Timsit {nom . prenom} @prism.uvsq.fr boukhobza@univ-brest.fr Perpignan le 06/10/2006. Plan de la présentation . Motivations
E N D
Laboratoire Université de Versailles Saint Quentin Perpi'2006 - Conférence CFSE'5 Simulation de traces réelles d’E/S disque de PC. Jalil Boukhobza, Claude Timsit {nom.prenom}@prism.uvsq.fr boukhobza@univ-brest.fr Perpignan le 06/10/2006
Plan de la présentation • Motivations • Aperçu des E/S disque sous Windows • Le simulateur: architecture de WinIOSim • Les stratégies du cache de fichiers • Configuration du simulateur • Validation • Résumé jalil.boukhobza@prism.uvsq.fr
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. jalil.boukhobza@prism.uvsq.fr
Lecture/écriture de fichier Fonctions Win32 ReadFile(),WriteFile() IRP non- caché Pilote du système de stockage (disque dur) Possibilité d’utilisation du cache de fichiers ? Génération d’une IRP (I/O Request Packet) non oui Défaut de page non Possibilité d’une FASTIO ? Bloc de données présent dans le cache ? Gestionnaire de mémoire virtuelle oui oui non Copie des données du cache vers la mémoire du processus Cache du disque Initialisation du cache Disque dur 2. Aperçu des E/S disque sous Windows • 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 » Pilote du système de fichiers Bras du disque Temps de seek Temps de rotation Gestionnaire du cache jalil.boukhobza@prism.uvsq.fr
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. jalil.boukhobza@prism.uvsq.fr
Générateur de requêtes 1 Générateur de requêtes 2 Fichiers de trace réelle File d’attente Processus Application Mémoire du processus Processus Système Ordonnanceur d’E/S Cache de fichiers Cache du disque Disque Le simulateur: architecture de WinIOSim [2] jalil.boukhobza@prism.uvsq.fr
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 (www.sysinternals.com) • Module de la mémoire du processus et du cache de fichiers: simulent les copies de données, les politiques de mise à jour, etc. jalil.boukhobza@prism.uvsq.fr
Les modules du simulateur [2] • Processus application et processussystè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. jalil.boukhobza@prism.uvsq.fr
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. jalil.boukhobza@prism.uvsq.fr
Une requête: 3 blocs de 64ko Bloc de 64ko chargé par le processus système Bloc de 64ko chargé par le processus application 1 1 1 2 2 2 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: B1 B2 B3 B4 3 3 3 Quelles sont les réactions du cache du disque? Va-t-il charger une partie des données ? Séquence finale des blocs demandés: B1,1,B1,2, B1,3, B3,1, B2,1, B3,2,B2,2, B3,3,B2,3,B4,1 ,B4,2, .. jalil.boukhobza@prism.uvsq.fr
Req 1 Req 3 Req 2 Req 4 Req 5 Req 6 Req 7 Req 8 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. Exemple avec des blocs de 320ko 1 Bloc de 64ko copié sur le disque Disque Bloc de 64ko copié sur le cache de fichiers puis vidé sur le disque Cache de fichiers flush jalil.boukhobza@prism.uvsq.fr
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. jalil.boukhobza@prism.uvsq.fr
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 » jalil.boukhobza@prism.uvsq.fr
Architectures testées jalil.boukhobza@prism.uvsq.fr
Résultats jalil.boukhobza@prism.uvsq.fr
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 . jalil.boukhobza@prism.uvsq.fr
Résultats de la simulation : temps de réponse, débits, etc. Résultats des mesures de performances. Reste des outils développés Liste des paramètres de l’architecture à simuler (si non existante) Architecture existante WioTester Liste des paramètres de l’architecture à simuler Définition des générateurs de requêtes Simulateur d’accès aux fichiers WinIOSim Traces réelles jalil.boukhobza@prism.uvsq.fr
Merci de votre attention Question ? Jalil.boukhobza@prism.uvsq.fr boukhobza@univ-brest.fr http://www.prism.uvsq.fr/~jboukh