SlideShare une entreprise Scribd logo
1  sur  19
Télécharger pour lire hors ligne
Utiliser   Améliorer   Prêcher




                      Métrologie
                       des IO
samedi 20 juin 2009                                           1
Utiliser   Améliorer   Prêcher



     Sommaire
          ๏ Les éléments de la chaîne d’IO
          ๏ Les indicateurs, comment les décoder


          ๏ Quelques réglages


          ๏ Outils de bench




                                                               2
samedi 20 juin 2009                                                  2
Utiliser      Améliorer        Prêcher



     Les systèmes de fichiers
          ๏ snapshot
          ๏ extend : bloc de taille variable


          ๏ journalisation

                 − crash   recovery
                 − écriture   séquentielle des méta données
          ๏    zfs : oubliez tout ce que vous savez
               (coming soon)


    http://www.solarisinternals.com/si/reading/sunworldonline/swol-05-1999/swol-05-filesystem.html




                                                                                                     3
samedi 20 juin 2009                                                                                      3
Utiliser   Améliorer   Prêcher



     Les caches
          ๏    de nom (dnlc)
                 − Parcours    du VFS (Virtual FileSystem)
          ๏    de meta données (buffer cache)
                 − par    exemple, numéro d’inodes
          ๏    de données en lecture
                 − permet     de lire en avance (prefetch) les lectures,
                      réduire le nombre de petites IO
          ๏    de données en écriture
                 − permet     d’effectuer les écritures en taches de fond,
                      de les regrouper


                                                                                  4
samedi 20 juin 2009                                                                     4
Utiliser        Améliorer   Prêcher



     Éléments de base d’une IO
          ๏ Déplacement de la tête
          ๏ Vitesse de transfert




                                  Temps d’attente

                                                              Temps de service
                      Espace




                                                                                               Transfert

                                                                                      te
                                                                                 a tê
                                                                         e   l
                                                                      td
                                                                    en
                                                               em
                                                           l ac
                                                          p
                                                        Dé
                               Attente dans le pilote


                                                                                                Temps
                                                                                                                           5
samedi 20 juin 2009                                                                                                              5
Utiliser   Améliorer   Prêcher



     L’impact du matériel
          ๏ Traitement parallèle : TCQ, NCQ
          ๏ Nombre d’axes (RAID)


          ๏ Plusieurs niveau de cache en écriture :

            dans le contrôleur, dans le disque
          ๏ Sauvegardé ou non sur batterie, important

            pour l’acquittement des écritures
          ๏ L’algorithme de l’ascenseur




                                                               6
samedi 20 juin 2009                                                  6
Les indicateurs

samedi 20 juin 2009                     7
Utiliser       Améliorer   Prêcher



     Les indicateurs
          ๏ Essentiel pour identifier les goulots
            d'étranglement
          ๏ Ne sont pas les mêmes selon le type

            d’usage :
                 − écriture/lecture

                 − séquentiel/aléatoire

          ๏    Certains sont anciens et n’ont plus de
               sens, notamment Solaris 10
     % man mpstat
                           the I/O wait time is no longer calculated as
                           a percentage of CPU time, and this statistic
                           will always return zero



                                                                                          8
samedi 20 juin 2009                                                                             8
Utiliser      Améliorer   Prêcher



     IOSTAT
     % iostat -xnM 10
                              extended device statistics

                               extended device statistics
          r/s         w/s   Mr/s   Mw/s wait actv wsvc_t asvc_t   %w    %b device
        812.4         3.0    1.8    0.6 0.0 0.9      0.0    1.1    0    85 c0t0d0

       ๏    L’outil de base, le premier à regarder
       ๏    usage typique : iostat -xnM 10
       ๏    ignorer la première ligne
       ๏    r/s et w/s : opération
       ๏    Mr/s et Mw/s : débit
       ๏    wait : IO en attente dans le pilote
       ๏    actv : IO dans le matériel
       ๏    wsvc_t : temps moyen d’attente
       ๏    asvc_t : temps moyen de service
       ๏    %w : % du temps avec des IO en attentes
       ๏    %b : % du temps où le disque travail                                                9
samedi 20 juin 2009                                                                                   9
Utiliser   Améliorer   Prêcher



     sar
     -a               Reports use of file access system routines
     -b               Reports buffer activity
     -d               Reports activity for each block device



     Dans /var/spool/cron/crontabs/sys
     * * * * * /usr/lib/sa/sa1

     Ou « démon »
     sadc 60 1440 sa16


    http://ksar.atomique.net/



                                                                            10
samedi 20 juin 2009                                                                10
Utiliser   Améliorer   Prêcher



     dtrace et DTraceToolkit
         ๏   opensnoop
              UID       PID   COMM           FD     PATH
                0     22072   sh             -1     /var/ld/ld.config
                0     22072   sh              3     /lib/libc.so.1
                0       565   sshd            8     /system/contract/process/latest
                0       565   sshd            8     /system/contract/all/16760/ctl
                0     22071   sshd           -1     /etc/hosts.allow
                0     22071   sshd           -1     /etc/hosts.deny

         ๏   iosnoop
             UID     PID D       BLOCK     SIZE         COMM   PATHNAME
                   0 22628 R      779938     3072       bash   /usr/xpg4/bin/find
               0   22628 R        1552     8192         find   /lost+found
               0   22628 R        1546     1024         find   /var/sadm/install
               0   22628 R        1548     1024         find   /var/sadm/install/admin
               0   22628 R        1550     1024         find   /var/sadm/install/logs
               0   22628 R        1574     1024         find   /var/sadm/pkg/SUNWocfd


         ๏   iotop
             2009 Jun 16 00:19:31,         load: 0.22,     disk_r:    2411 KB,   disk_w: 240421 KB

               UID       PID     PPID   CMD                 DEVICE   MAJ MIN D               BYTES
                 0       427        1   inetd               sd0       30   0 R                1024
             10202     19566        1   java                sd0       30   0 R                2048
                 0     22654      427   rpc.rstatd          sd0       30   0 R                3072
                 0     22652    22060   bash                sd0       30   0 R               19456
                 0     22654      427   inetd               sd0       30   0 R               20480
                 0         3        0   fsflush             sd0       30   0 W              180736
                 0     22653    22060   cpio                sd0       30   0 W              270336
             10202     19566        1   java                sd2       30 128 R              655360
                 0     22652    22060   find                sd0       30   0 R              978944
                 0         0        0   sched               sd2       30 128 W           297644544



    http://www.opensolaris.org/os/community/dtrace/dtracetoolkit/
                                                                                                                               11
samedi 20 juin 2009                                                                                                                   11
Les réglages

samedi 20 juin 2009                  12
Utiliser   Améliorer   Prêcher



     DirectIO
          ๏ Pas de segmentation des grandes
            écritures synchrones
          ๏ Suppression du verrou POSIX (single

            writer lock)
          ๏ Pas de double transfert


          ๏ Simplification du code


          ๏ Utilisation plus efficace de la mémoire




          ๏ mount -o forcedirectio
          ๏ man directio.3c


         http://www.solarisinternals.com/wiki/index.php/Direct_I/O
                                                                         13
samedi 20 juin 2009                                                             13
Utiliser   Améliorer   Prêcher




  atime
          ๏ mount -o dfratime
          ๏ mount -o noatime




  /etc/system
          ๏ ufs_HW, ufs_LW volume de dirty
          ๏ maxphys taille de blocs


          ๏ maxcontig




   http://www.solarisinternals.com/si/reading/fs2/fs2.html
   http://docs.sun.com/app/docs/doc/817-0404
                                                                14
samedi 20 juin 2009                                                    14
Les outils de bench




samedi 20 juin 2009                         15
Utiliser   Améliorer   Prêcher



     Ne pas se tromper d’outils
          ๏ les IO sont ce qu’ils y a de plus difficile à
            bencher
          ๏ Mesure de latence/débit/nombre d’IO


          ๏ Les IO sont très parallèles




                                                                 16
samedi 20 juin 2009                                                     16
Utiliser   Améliorer   Prêcher



     Programme
          ๏    Micro benchmark
                 − dd

                 − tar

                 − find

          ๏    Tests synthétique
                 − bonnie++

                 − iozone

          ๏    Test par simulation
                 − filebench

                 − fio

                                                               17
samedi 20 juin 2009                                                   17
Utiliser   Améliorer   Prêcher



     En savoir plus
          ๏ Solaris Internals second edition
          ๏ http://www.c0t0d0s0.org/


          ๏ http://www.solarisinternals.com/


          ๏ Solaris Tuning Guide




                                                              18
samedi 20 juin 2009                                                  18
Merci !




                      “open” artwork and icons by chandan:        Logo GUSES par Philipe Destigny:
                          http://blogs.sun.com/chandan             mailto:philippe.destigny@free.fr

samedi 20 juin 2009                                                                                   19

Contenu connexe

Similaire à Métrologie des IOs

Réunion technique PMSIpilot - Mars 2010
Réunion technique PMSIpilot - Mars 2010Réunion technique PMSIpilot - Mars 2010
Réunion technique PMSIpilot - Mars 2010PMSIpilot
 
Extrait du Benchmark Cloud IaaS par Gekko
Extrait du Benchmark Cloud IaaS par Gekko Extrait du Benchmark Cloud IaaS par Gekko
Extrait du Benchmark Cloud IaaS par Gekko GekkoSAS
 
Innovations Techniques Au Service Du Test De Recette Automatisé
Innovations Techniques Au Service Du Test De Recette AutomatiséInnovations Techniques Au Service Du Test De Recette Automatisé
Innovations Techniques Au Service Du Test De Recette AutomatiséEmmanuel Hugonnet
 
NetApp PartnersTour 2011 à Lille, mon point de vue
NetApp PartnersTour 2011 à Lille, mon point de vueNetApp PartnersTour 2011 à Lille, mon point de vue
NetApp PartnersTour 2011 à Lille, mon point de vueOlivier (DaffyDuke) Duquesne
 
Soda sotm fr-2013_02_24
Soda sotm fr-2013_02_24Soda sotm fr-2013_02_24
Soda sotm fr-2013_02_24quicky_osm
 
Presentation mug-data mapper
Presentation mug-data mapperPresentation mug-data mapper
Presentation mug-data mapperFastConnect
 
Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsJulien Wittouck
 
FinistJUG - Camel Presentation
FinistJUG - Camel PresentationFinistJUG - Camel Presentation
FinistJUG - Camel PresentationXavier MARIN
 
Es54 g formation-optimisation-des-performances-z-os-a-l-aide-de-workload-manager
Es54 g formation-optimisation-des-performances-z-os-a-l-aide-de-workload-managerEs54 g formation-optimisation-des-performances-z-os-a-l-aide-de-workload-manager
Es54 g formation-optimisation-des-performances-z-os-a-l-aide-de-workload-managerCERTyou Formation
 
Python et les bases de données non sql
Python et les bases de données non sqlPython et les bases de données non sql
Python et les bases de données non sqlbchesneau
 
The Spring of Adobe Flex Remoting
The Spring of Adobe Flex RemotingThe Spring of Adobe Flex Remoting
The Spring of Adobe Flex RemotingFrançois Le Droff
 
Backday xebia - Chercher la performance efficacement
Backday xebia - Chercher la performance efficacement Backday xebia - Chercher la performance efficacement
Backday xebia - Chercher la performance efficacement Publicis Sapient Engineering
 
20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache Maven20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache MavenArnaud Héritier
 
Soda sotm fr-2013_02_24
Soda sotm fr-2013_02_24Soda sotm fr-2013_02_24
Soda sotm fr-2013_02_24quicky_osm
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache MavenArnaud Héritier
 
Ecrire et déployer une appli PHP maintenable
Ecrire et déployer une appli PHP maintenableEcrire et déployer une appli PHP maintenable
Ecrire et déployer une appli PHP maintenableChristophe Villeneuve
 

Similaire à Métrologie des IOs (20)

OW2 JASMINe
OW2 JASMINeOW2 JASMINe
OW2 JASMINe
 
Gnu Screen
Gnu ScreenGnu Screen
Gnu Screen
 
FinistJUG - Apache TomEE
FinistJUG - Apache TomEEFinistJUG - Apache TomEE
FinistJUG - Apache TomEE
 
Cours SE
Cours SECours SE
Cours SE
 
Réunion technique PMSIpilot - Mars 2010
Réunion technique PMSIpilot - Mars 2010Réunion technique PMSIpilot - Mars 2010
Réunion technique PMSIpilot - Mars 2010
 
Extrait du Benchmark Cloud IaaS par Gekko
Extrait du Benchmark Cloud IaaS par Gekko Extrait du Benchmark Cloud IaaS par Gekko
Extrait du Benchmark Cloud IaaS par Gekko
 
Innovations Techniques Au Service Du Test De Recette Automatisé
Innovations Techniques Au Service Du Test De Recette AutomatiséInnovations Techniques Au Service Du Test De Recette Automatisé
Innovations Techniques Au Service Du Test De Recette Automatisé
 
NetApp PartnersTour 2011 à Lille, mon point de vue
NetApp PartnersTour 2011 à Lille, mon point de vueNetApp PartnersTour 2011 à Lille, mon point de vue
NetApp PartnersTour 2011 à Lille, mon point de vue
 
Soda sotm fr-2013_02_24
Soda sotm fr-2013_02_24Soda sotm fr-2013_02_24
Soda sotm fr-2013_02_24
 
Presentation mug-data mapper
Presentation mug-data mapperPresentation mug-data mapper
Presentation mug-data mapper
 
Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'ts
 
FinistJUG - Camel Presentation
FinistJUG - Camel PresentationFinistJUG - Camel Presentation
FinistJUG - Camel Presentation
 
Es54 g formation-optimisation-des-performances-z-os-a-l-aide-de-workload-manager
Es54 g formation-optimisation-des-performances-z-os-a-l-aide-de-workload-managerEs54 g formation-optimisation-des-performances-z-os-a-l-aide-de-workload-manager
Es54 g formation-optimisation-des-performances-z-os-a-l-aide-de-workload-manager
 
Python et les bases de données non sql
Python et les bases de données non sqlPython et les bases de données non sql
Python et les bases de données non sql
 
The Spring of Adobe Flex Remoting
The Spring of Adobe Flex RemotingThe Spring of Adobe Flex Remoting
The Spring of Adobe Flex Remoting
 
Backday xebia - Chercher la performance efficacement
Backday xebia - Chercher la performance efficacement Backday xebia - Chercher la performance efficacement
Backday xebia - Chercher la performance efficacement
 
20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache Maven20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache Maven
 
Soda sotm fr-2013_02_24
Soda sotm fr-2013_02_24Soda sotm fr-2013_02_24
Soda sotm fr-2013_02_24
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
 
Ecrire et déployer une appli PHP maintenable
Ecrire et déployer une appli PHP maintenableEcrire et déployer une appli PHP maintenable
Ecrire et déployer une appli PHP maintenable
 

Plus de Bruno Bonfils (11)

Drupal sso
Drupal ssoDrupal sso
Drupal sso
 
Vue d'ensemble du SSO
Vue d'ensemble du SSOVue d'ensemble du SSO
Vue d'ensemble du SSO
 
Splunk
SplunkSplunk
Splunk
 
iTop
iTopiTop
iTop
 
RunDeck
RunDeckRunDeck
RunDeck
 
Présentation de l'association GUSES
Présentation de l'association GUSESPrésentation de l'association GUSES
Présentation de l'association GUSES
 
Introduction à OpenSolaris
Introduction à OpenSolarisIntroduction à OpenSolaris
Introduction à OpenSolaris
 
Ldap
LdapLdap
Ldap
 
Zsh Rmll
Zsh RmllZsh Rmll
Zsh Rmll
 
Shell
ShellShell
Shell
 
La signature numérique
La signature numériqueLa signature numérique
La signature numérique
 

Métrologie des IOs

  • 1. Utiliser Améliorer Prêcher Métrologie des IO samedi 20 juin 2009 1
  • 2. Utiliser Améliorer Prêcher Sommaire ๏ Les éléments de la chaîne d’IO ๏ Les indicateurs, comment les décoder ๏ Quelques réglages ๏ Outils de bench 2 samedi 20 juin 2009 2
  • 3. Utiliser Améliorer Prêcher Les systèmes de fichiers ๏ snapshot ๏ extend : bloc de taille variable ๏ journalisation − crash recovery − écriture séquentielle des méta données ๏ zfs : oubliez tout ce que vous savez (coming soon) http://www.solarisinternals.com/si/reading/sunworldonline/swol-05-1999/swol-05-filesystem.html 3 samedi 20 juin 2009 3
  • 4. Utiliser Améliorer Prêcher Les caches ๏ de nom (dnlc) − Parcours du VFS (Virtual FileSystem) ๏ de meta données (buffer cache) − par exemple, numéro d’inodes ๏ de données en lecture − permet de lire en avance (prefetch) les lectures, réduire le nombre de petites IO ๏ de données en écriture − permet d’effectuer les écritures en taches de fond, de les regrouper 4 samedi 20 juin 2009 4
  • 5. Utiliser Améliorer Prêcher Éléments de base d’une IO ๏ Déplacement de la tête ๏ Vitesse de transfert Temps d’attente Temps de service Espace Transfert te a tê e l td en em l ac p Dé Attente dans le pilote Temps 5 samedi 20 juin 2009 5
  • 6. Utiliser Améliorer Prêcher L’impact du matériel ๏ Traitement parallèle : TCQ, NCQ ๏ Nombre d’axes (RAID) ๏ Plusieurs niveau de cache en écriture : dans le contrôleur, dans le disque ๏ Sauvegardé ou non sur batterie, important pour l’acquittement des écritures ๏ L’algorithme de l’ascenseur 6 samedi 20 juin 2009 6
  • 8. Utiliser Améliorer Prêcher Les indicateurs ๏ Essentiel pour identifier les goulots d'étranglement ๏ Ne sont pas les mêmes selon le type d’usage : − écriture/lecture − séquentiel/aléatoire ๏ Certains sont anciens et n’ont plus de sens, notamment Solaris 10 % man mpstat the I/O wait time is no longer calculated as a percentage of CPU time, and this statistic will always return zero 8 samedi 20 juin 2009 8
  • 9. Utiliser Améliorer Prêcher IOSTAT % iostat -xnM 10 extended device statistics extended device statistics r/s w/s Mr/s Mw/s wait actv wsvc_t asvc_t %w %b device 812.4 3.0 1.8 0.6 0.0 0.9 0.0 1.1 0 85 c0t0d0 ๏ L’outil de base, le premier à regarder ๏ usage typique : iostat -xnM 10 ๏ ignorer la première ligne ๏ r/s et w/s : opération ๏ Mr/s et Mw/s : débit ๏ wait : IO en attente dans le pilote ๏ actv : IO dans le matériel ๏ wsvc_t : temps moyen d’attente ๏ asvc_t : temps moyen de service ๏ %w : % du temps avec des IO en attentes ๏ %b : % du temps où le disque travail 9 samedi 20 juin 2009 9
  • 10. Utiliser Améliorer Prêcher sar -a Reports use of file access system routines -b Reports buffer activity -d Reports activity for each block device Dans /var/spool/cron/crontabs/sys * * * * * /usr/lib/sa/sa1 Ou « démon » sadc 60 1440 sa16 http://ksar.atomique.net/ 10 samedi 20 juin 2009 10
  • 11. Utiliser Améliorer Prêcher dtrace et DTraceToolkit ๏ opensnoop UID PID COMM FD PATH 0 22072 sh -1 /var/ld/ld.config 0 22072 sh 3 /lib/libc.so.1 0 565 sshd 8 /system/contract/process/latest 0 565 sshd 8 /system/contract/all/16760/ctl 0 22071 sshd -1 /etc/hosts.allow 0 22071 sshd -1 /etc/hosts.deny ๏ iosnoop UID PID D BLOCK SIZE COMM PATHNAME 0 22628 R 779938 3072 bash /usr/xpg4/bin/find 0 22628 R 1552 8192 find /lost+found 0 22628 R 1546 1024 find /var/sadm/install 0 22628 R 1548 1024 find /var/sadm/install/admin 0 22628 R 1550 1024 find /var/sadm/install/logs 0 22628 R 1574 1024 find /var/sadm/pkg/SUNWocfd ๏ iotop 2009 Jun 16 00:19:31, load: 0.22, disk_r: 2411 KB, disk_w: 240421 KB UID PID PPID CMD DEVICE MAJ MIN D BYTES 0 427 1 inetd sd0 30 0 R 1024 10202 19566 1 java sd0 30 0 R 2048 0 22654 427 rpc.rstatd sd0 30 0 R 3072 0 22652 22060 bash sd0 30 0 R 19456 0 22654 427 inetd sd0 30 0 R 20480 0 3 0 fsflush sd0 30 0 W 180736 0 22653 22060 cpio sd0 30 0 W 270336 10202 19566 1 java sd2 30 128 R 655360 0 22652 22060 find sd0 30 0 R 978944 0 0 0 sched sd2 30 128 W 297644544 http://www.opensolaris.org/os/community/dtrace/dtracetoolkit/ 11 samedi 20 juin 2009 11
  • 12. Les réglages samedi 20 juin 2009 12
  • 13. Utiliser Améliorer Prêcher DirectIO ๏ Pas de segmentation des grandes écritures synchrones ๏ Suppression du verrou POSIX (single writer lock) ๏ Pas de double transfert ๏ Simplification du code ๏ Utilisation plus efficace de la mémoire ๏ mount -o forcedirectio ๏ man directio.3c http://www.solarisinternals.com/wiki/index.php/Direct_I/O 13 samedi 20 juin 2009 13
  • 14. Utiliser Améliorer Prêcher atime ๏ mount -o dfratime ๏ mount -o noatime /etc/system ๏ ufs_HW, ufs_LW volume de dirty ๏ maxphys taille de blocs ๏ maxcontig http://www.solarisinternals.com/si/reading/fs2/fs2.html http://docs.sun.com/app/docs/doc/817-0404 14 samedi 20 juin 2009 14
  • 15. Les outils de bench samedi 20 juin 2009 15
  • 16. Utiliser Améliorer Prêcher Ne pas se tromper d’outils ๏ les IO sont ce qu’ils y a de plus difficile à bencher ๏ Mesure de latence/débit/nombre d’IO ๏ Les IO sont très parallèles 16 samedi 20 juin 2009 16
  • 17. Utiliser Améliorer Prêcher Programme ๏ Micro benchmark − dd − tar − find ๏ Tests synthétique − bonnie++ − iozone ๏ Test par simulation − filebench − fio 17 samedi 20 juin 2009 17
  • 18. Utiliser Améliorer Prêcher En savoir plus ๏ Solaris Internals second edition ๏ http://www.c0t0d0s0.org/ ๏ http://www.solarisinternals.com/ ๏ Solaris Tuning Guide 18 samedi 20 juin 2009 18
  • 19. Merci ! “open” artwork and icons by chandan: Logo GUSES par Philipe Destigny: http://blogs.sun.com/chandan mailto:philippe.destigny@free.fr samedi 20 juin 2009 19