Lundi 19 décembre 2011 1 19 /12 /Déc /2011 21:18

 

Le 15 décembre dernier, lors de la commission "Unix vs Linux" organisée par l'AUFO, je suis intervenu (au nom du GUSES et d'ORNESS) pour développer le sujet suivant : Pourquoi choisir Solaris ?

 

Que retenir de cette commission ? Les témoignages utilisateurs indiquent une forte progression des migrations des environnements Unix (notamment HP-UX) vers Linux (notamment RedHat mais aussi Oracle Linux). Cependant dès qu'il s'agit d'adresser des problèmatiques de performances et de haute disponibilité, Solaris reste le système d'exploitation utilisé. Les personnes définissent à tort ou à raison l'association suivante : entrée de gamme Linux, milieu de gamme Linux ou Solaris, haut de gamme Solaris.

 

Solaris (tout comme Linux dans certaines mesures) est capable d'adresser toutes ces gammes en apportant plusieurs améliorations. D'abord, Solaris est aussi bien disponible sur plate-forme x86-x64 que sur plate-forme sparc. Ensuite, la gestion optimisée de la mémoire permet d'obtenir des gains notables notamment sur l'interaction avec les bases de données. Enfin, les outils de diagnostics disponibles (dont Dtrace) permettent d'analyser facilement tous les incidents qui survient sur le système.

 

J'ai été surpris de constater que plusieurs sociétés (petites ou grandes) commencent à utiliser Oracle Linux avec le noyau modifié d'Oracle (Unbreakable Linux). Ce noyau modifié affiche des performances bien supérieurs au noyau RedHat (à voir !?). Mais ce qui m'intéresse le plus dans ce noyau est l'inclusion des sondes Dtrace (enfin un outil de diagnostic correcte). Affaire à suivre.

 

Vous pouvez consulter ma présentation si vous le souhaitez.

Par gloumps - Publié dans : divers
Ecrire un commentaire - Voir les 0 commentaires

Dimanche 18 décembre 2011 7 18 /12 /Déc /2011 15:55

 

Pour tous les retardataires vous trouverez ci-joint quelques liens utiles sur la dernière version de l'os Solaris 11. Disponible depuis fin novembre cette nouvelle version est très prometteuse en corrigeant les défauts des anciennes version de Solaris (système de packages modifié, amélioration de ZFS) tout en apportant des fonctionnalités forts intéressantes (crossbow, gestion des zones). Côté performance, Solaris 11 est bien présent : amélioration dans la gestion des ISM, NUMA I/O, nouvelle probe Dtrace, etc. J'ai eu l'opportunité de rencontrer les principaux ingénieurs de l'équipe kernel lors du dernier Oracle Open World et j'ai été assez impressionné.

 

Solaris n'est pas mort, Solaris 11 est là pour le prouver. Bonne lecture et bon vissonnage :

 

Quelques informations supplémentaires sur le blog d'Eric concernant Solaris 11 et Oracle Open World.

 

Oracle-Open-World 0173

Par gloumps - Publié dans : divers
Ecrire un commentaire - Voir les 0 commentaires

Samedi 17 décembre 2011 6 17 /12 /Déc /2011 19:05

 

Petite astuce sur une problématique connue par tous les administrateurs Solaris utilisants des baies du types CLX et VNX (baie clariion chez EMC) avec le gestionnaire de multipath natif de Solaris MPxIO.

 

En simplifiant grandement, lors de la première attribution de Lun(s) sur le serveur Solaris, le mécanisme de la baie utilise un type de lun spécifique appelé LUNZ. Il s'agit ni plus ni moins d'une lun d'administration qui à l'image des Gatekeeper sous DMX ne s'intégre pas à la configuration MPxIO du serveur (je ne détaille pas ici les raisons). Une fois l'attribution des luns effectuée sur le serveur, cette LUNZ est substituée par une lun classique. Mais voilà le probléme, la configuration MPxIO n'est plus correct. En effet la Lun qui reprend la position de la LUNZ n'est pas sous contrôle MPxIO. Le plus simple est de rebooter le serveur en mode reconfiguration mais en production ce n'est pas toujours possible.

 

Voilà donc la solution de ce petit problème que j'ai plaisir à répéter un peu trop souvent à mes collégues :)

 

# luxadm probe | more
No Network Array enclosures found in /dev/es

Found Fibre Channel device(s):
  Node WWN:50060160b9a01d49  Device Type:Disk device
    Logical Path:/dev/rdsk/c2t5006016839A01D49d0s2
    Logical Path:/dev/rdsk/c2t5006016039A01D49d0s2
    Logical Path:/dev/rdsk/c3t5006016A39A01D49d0s2
    Logical Path:/dev/rdsk/c3t5006016239A01D49d0s2
  Node WWN:50060160bb205594  Device Type:Disk device
    Logical Path:/dev/rdsk/c4t60060160FB112900A477E76B20CADF11d0s2
  Node WWN:50060160bb205594  Device Type:Disk device
    Logical Path:/dev/rdsk/c4t60060160FB112900C041CD7320CADF11d0s2
  Node WWN:50060160bb205594  Device Type:Disk device
    Logical Path:/dev/rdsk/c4t60060160FB112900C241CD7320CADF11d0s2
  Node WWN:50060160bb205594  Device Type:Disk device
    Logical Path:/dev/rdsk/c4t60060160FB112900C441CD7320CADF11d0s2
  Node WWN:50060160bb205594  Device Type:Disk device
...

# luxadm disp /dev/rdsk/c2t5006016839A01D49d0s2
DEVICE PROPERTIES for disk: /dev/rdsk/c2t5006016839A01D49d0s2
  Vendor:               DGC
  Product ID:           RAID 5
  Revision:             0326
  Serial Num:           CK200070200964
  Unformatted capacity: 34818.750 MBytes
  Read Cache:           Enabled
    Minimum prefetch:   0x0
    Maximum prefetch:   0x0
  Device Type:          Disk device
  Path(s):
  /dev/rdsk/c2t5006016839A01D49d0s2
  /devices/pci@1,700000/SUNW,emlxs@0/fp@0,0/ssd@w5006016839a01d49,0:c,raw
    LUN path port WWN:          5006016839a01d49
    Host controller port WWN:   10000000c9991aae
    Path status:                O.K.
  /dev/rdsk/c2t5006016039A01D49d0s2
  /devices/pci@1,700000/SUNW,emlxs@0/fp@0,0/ssd@w5006016039a01d49,0:c,raw
    LUN path port WWN:          5006016039a01d49
    Host controller port WWN:   10000000c9991aae
    Path status:                O.K.
  /dev/rdsk/c3t5006016A39A01D49d0s2
  /devices/pci@11,700000/SUNW,emlxs@0/fp@0,0/ssd@w5006016a39a01d49,0:c,raw
    LUN path port WWN:          5006016a39a01d49
    Host controller port WWN:   10000000c99920a4
    Path status:                O.K.
  /dev/rdsk/c3t5006016239A01D49d0s2
  /devices/pci@11,700000/SUNW,emlxs@0/fp@0,0/ssd@w5006016239a01d49,0:c,raw
    LUN path port WWN:          5006016239a01d49
    Host controller port WWN:   10000000c99920a4
    Path status:                O.K.

 

La LUNZ prenant la première position, on nomme fréquemment ce dysfonctionnement de problème entre LUNZ et LUN0. 

 

# fcinfo hba-port
HBA Port WWN: 10000000c99920a4
        OS Device Name: /dev/cfg/c3
        Manufacturer: Emulex
        Model: LPe12000-S
        Firmware Version: 1.11a5 (U3D1.11A5)
        FCode/BIOS Version: Boot:5.03a4 Fcode:3.10a3
        Serial Number: 0999BT0-10380003HU
        Driver Name: emlxs
        Driver Version: 2.50o (2010.01.08.09.45)
        Type: N-port
        State: online
        Supported Speeds: 2Gb 4Gb 8Gb
        Current Speed: 4Gb
        Node WWN: 20000000c99920a4
HBA Port WWN: 10000000c9991aae
        OS Device Name: /dev/cfg/c2
        Manufacturer: Emulex
        Model: LPe12000-S
        Firmware Version: 1.11a5 (U3D1.11A5)
        FCode/BIOS Version: Boot:5.03a4 Fcode:3.10a3
        Serial Number: 0999BT0-10380003EC
        Driver Name: emlxs
        Driver Version: 2.50o (2010.01.08.09.45)
        Type: N-port
        State: online
        Supported Speeds: 2Gb 4Gb 8Gb
        Current Speed: 4Gb
        Node WWN: 20000000c9991aae

# fcinfo remote-port -p 10000000c99920a4 -s
Remote Port WWN: 5006016a39a01d49
        Active FC4 Types: SCSI
        SCSI Target: yes
        Node WWN: 50060160b9a01d49
        LUN: 0
          Vendor: DGC
          Product: RAID 5
          OS Device Name: /dev/rdsk/c3t5006016A39A01D49d0s2
        LUN: 1
          Vendor: DGC
          Product: RAID 5
          OS Device Name: /dev/rdsk/c4t600601600C421C00E0BF020FE0A5DF11d0s2
        LUN: 2
          Vendor: DGC
          Product: RAID 5
          OS Device Name: /dev/rdsk/c4t600601600C421C00B827016B604BDE11d0s2
        LUN: 3
          Vendor: DGC
          Product: RAID 5
          OS Device Name: /dev/rdsk/c4t600601600C421C00347A5E80604BDE11d0s2
... 

 

Il suffit simplement de déconfigurer tous les paths de cette Lun et de la redécouvrir. Attention tout de même qu'aucune ressource utilise l'in des paths de cette Lun, par exemple : des datas, dans la configuration d'un gestionnaire de volumes, un agent type Navisphere, etc.

 

# luxadm -e offline /dev/rdsk/c2t5006016839A01D49d0s2
devctl: I/O error

# vxdisk -e list | grep -i 5006016039A01D49d0
c2t5006016039A01D49d0s2 auto:sliced - - online c2t5006016039A01D49d0s2

# vxdisk rm c2t5006016039A01D49d0s2 

# luxadm -e offline /dev/rdsk/c2t5006016839A01D49d0s2
# luxadm -e offline /dev/rdsk/c2t5006016039A01D49d0s2
# luxadm -e offline /dev/rdsk/c3t5006016A39A01D49d0s2
# luxadm -e offline /dev/rdsk/c3t5006016239A01D49d0s2

# cfgadm -al
...
c2                             fc-fabric    connected    configured   unknown
c2::5006016039a01d49           disk         connected    configured   unusable
c2::500601603b205594           disk         connected    configured   unknown
c2::500601603b206f30           disk         connected    configured   unknown
c2::5006016230603a09           disk         connected    configured   unknown
c2::5006016839a01d49           disk         connected    configured   unusable
c2::500601683b205594           disk         connected    configured   unknown
c2::500601683b206f30           disk         connected    configured   unknown
c2::5006016a30603a09           disk         connected    configured   unknown
c3                             fc-fabric    connected    configured   unknown
c3::5006016130603a09           disk         connected    configured   unknown
c3::5006016239a01d49           disk         connected    configured   unusable
c3::500601623b205594           disk         connected    configured   unknown
c3::500601623b206f30           disk         connected    configured   unknown
c3::5006016930603a09           disk         connected    configured   unknown
c3::5006016a39a01d49           disk         connected    configured   unusable
c3::5006016a3b205594           disk         connected    configured   unknown
c3::5006016a3b206f30           disk         connected    configured   unknown
... 

# cfgadm -o unusable_FCP_dev -c unconfigure c2::5006016039a01d49
# cfgadm -o unusable_FCP_dev -c unconfigure c2::5006016839a01d49
# cfgadm -o unusable_FCP_dev -c unconfigure c3::5006016239a01d49
# cfgadm -o unusable_FCP_dev -c unconfigure c3::5006016a39a01d49

 

La déconfiguration de cette Lun par ces quatres paths est terminée. Il suffit donc de la réintégrer au serveur.

 

# cfgadm -c configure c2::5006016039a01d49
# cfgadm -c configure c2::5006016839a01d49
# cfgadm -c configure c3::5006016239a01d49
# cfgadm -c configure c3::5006016a39a01d49

 

# devfsadm -Cv
devfsadm[25244]: verbose: removing file: /dev/rdsk/c2t5006016839A01D49d0s3
devfsadm[25244]: verbose: removing file: /dev/rdsk/c3t5006016239A01D49d0s6
devfsadm[25244]: verbose: removing file: /dev/rdsk/c3t5006016A39A01D49d0s5
devfsadm[25244]: verbose: removing file: /dev/rdsk/c2t5006016039A01D49d0s2
devfsadm[25244]: verbose: removing file: /dev/rdsk/c3t5006016A39A01D49d0s2
devfsadm[25244]: verbose: removing file: /dev/rdsk/c2t5006016039A01D49d0s5
devfsadm[25244]: verbose: removing file: /dev/rdsk/c3t5006016239A01D49d0s1
... 

 

Une petite vérification simpose toujours.

 

# fcinfo remote-port -p 10000000c99920a4 -s
Remote Port WWN: 5006016a39a01d49
        Active FC4 Types: SCSI
        SCSI Target: yes
        Node WWN: 50060160b9a01d49
        LUN: 0
          Vendor: DGC
          Product: RAID 5
          OS Device Name: /dev/rdsk/c4t600601600C421C00CA9ECD0544A5DF11d0s2
        LUN: 1
          Vendor: DGC
          Product: RAID 5
          OS Device Name: /dev/rdsk/c4t600601600C421C00E0BF020FE0A5DF11d0s2
        LUN: 2
          Vendor: DGC
          Product: RAID 5
          OS Device Name: /dev/rdsk/c4t600601600C421C00B827016B604BDE11d0s2
        LUN: 3
          Vendor: DGC
          Product: RAID 5
          OS Device Name: /dev/rdsk/c4t600601600C421C00347A5E80604BDE11d0s2
...

# luxadm disp /dev/rdsk/c4t600601600C421C00CA9ECD0544A5DF11d0s2
DEVICE PROPERTIES for disk: /dev/rdsk/c4t600601600C421C00CA9ECD0544A5DF11d0s2
  Vendor:               DGC
  Product ID:           RAID 5
  Revision:             0326
  Serial Num:           CK200070200964
  Unformatted capacity: 34818.750 MBytes
  Read Cache:           Enabled
    Minimum prefetch:   0x0
    Maximum prefetch:   0x0
  Device Type:          Disk device
  Path(s):

  /dev/rdsk/c4t600601600C421C00CA9ECD0544A5DF11d0s2
  /devices/scsi_vhci/ssd@g600601600c421c00ca9ecd0544a5df11:c,raw
   Controller           /devices/pci@1,700000/SUNW,emlxs@0/fp@0,0
    Device Address              5006016039a01d49,0
    Host controller port WWN    10000000c9991aae
    Class                       secondary
    State                       ONLINE
   Controller           /devices/pci@1,700000/SUNW,emlxs@0/fp@0,0
    Device Address              5006016839a01d49,0
    Host controller port WWN    10000000c9991aae
    Class                       primary
    State                       ONLINE
   Controller           /devices/pci@11,700000/SUNW,emlxs@0/fp@0,0
    Device Address              5006016239a01d49,0
    Host controller port WWN    10000000c99920a4
    Class                       secondary
    State                       ONLINE
   Controller           /devices/pci@11,700000/SUNW,emlxs@0/fp@0,0
    Device Address              5006016a39a01d49,0
    Host controller port WWN    10000000c99920a4
    Class                       primary
    State                       ONLINE

 

Et voilà rien de plus facile. Quelques commandes dans un autre bien précis pour corriger un dysfonctionnement de MPxIO avec ce type de baie. Juste une dernière précision, si vous retirez cette Lun (en position 0), lors d'un prochain ajout il est possible que vous retombiez sur ce cas de figure. Mais bon vous avez l'astuce maintenant.

Par gloumps - Publié dans : lvm
Ecrire un commentaire - Voir les 0 commentaires

Lundi 24 octobre 2011 1 24 /10 /Oct /2011 20:05

 

Petite anlyse d'un problème survenu sur un serveur Solaris 10. Le contexte était le suivant : dysfonctionnement applicatif, impossible de se connecter au serveur bien que la couche IP semblait active.

 

Généralement je me pose pas de question dans ce genre de cas : je force une prise de dump (afin d'analyser le problème) et reboote le serveur (minimiser l'impact utilisateurs).

 

Avant de se lancer dans l'analyse du core, essayons de comprendre ce message. Le système tente de créer de nouveaux "processus" mais n'y parvient pas par manque de ressource.

 

Questions :

 

- Quelles sont les ressources nécessaires pour la création d'un nouveau processus ?

- Quelles sont les limites possibles ?

 

Un petit tour dans notre librairie : Solaris Internals et plus spécifiquement le chapitre 2 "The Solaris Process Model". La lecture est un peu longue mais très enrichissante... Bref, en vulgarisant beaucoup (désolé pour les puristes), il existe deux limites possibles : une est appliquée au Process, l'autre au Thread.

 

Le système Solaris est capable de créer un nombre déterminé de processus et de threads. Les deux limites Process et Thread sont utilisées à cet effet. La 1er ressource nécessaire à la création d'un processus (ou d'un thread) reste la mémoire (notons cela dans le coin de notre tête). 

 

Revenons un peu à notre crash... Qu'avons nous ?

 

> ::showrev
Hostname: myserver
Release: 5.10
Kernel architecture: sun4u
Application architecture: sparcv9
Kernel version: SunOS 5.10 sun4u Generic_142909-17
Platform: SUNW,SPARC-Enterprise

 

 

Vérifions le nombre de process et threads actif sur le serveur au moment du crash

 

> ::walk proc !wc -l
   14041

> ::walk thread !wc -l
   63017

 

Les limites ne sont pas atteintes, cependant le nombre de threads semble assez important. Une autre façon de savoir si le nombre de process a été atteinte est d'utiliser la variable suivante :

 

> fork_fail_pending/D
fork_fail_pending:
fork_fail_pending:       0  

 

 

Le problème semble provenir d'une allocation mémoire. Deux cas possible, le serveur ne disposait plus de mémoire virtuelle ou la table mémoire d'allocation des process (ou thread) est pleine. Le 1er cas ne semble pas possible (on aurait saturé la totalité de la mémoire virtuelle, ce qui provoque du swap... lire ce petit article). Intéressons nous au 2ème cas. L'allocation mémoire dans la table kernel concerne les threads.

 

> ::kmastat
cache                        buf    buf    buf    memory     alloc alloc
name                        size in use  total    in use   succeed  fail
------------------------- ------ ------ ------ --------- --------- -----
kmem_magazine_1               16  10662  27940    450560    244998     0
kmem_magazine_3               32   5701  32258   1040384    498170     0
kmem_magazine_7               64   5318  23495   1515520    436661     0
kmem_magazine_15             128   4544  24822   3227648    454626     0

[...]

segkp_16384                16384      0      0         0         0     0
segkp_24576                24576      0      0         0         0     0
segkp_32768                32768  63080  63080 2067005440  14589775 1429945523
segkp_40960                40960      0      0         0         0     0
[...]

------------------------- ------ ------ ------ --------- --------- -----
Total [static]                                 110821376 1078194013     0
Total [hat_memload]                            483278848 1120195850     0
[...]
Total [umem_np]                                 12320768    556204     0
Total [segkp]                                  2146041856 186166476 1429945523
Total [zfs_file_data_buf]                      3911852032   9675276     0

[...]

 

 

Nous avons plusieurs demandes d'allocation en erreur pour le cache segkp. La taille de ce cache semble trop petite par rapport au nombre important de threads que le système gére. Pour résoudre ce problème il est nécessaire d'augmenter la taille de ce cache (un peu de lecture).

 

Conseil, si vous utilisez un serveur fortement mutualisé (bcp de process et threads), n'oublie pas d'allouer un peu plus de mémoire au kernel (notamment la table segkp).

Par gloumps - Publié dans : kernel
Ecrire un commentaire - Voir les 1 commentaires

Jeudi 25 août 2011 4 25 /08 /Août /2011 22:06

 

Comment comprendre les problématiques IO quand on ne dispose pas de serveurs de tests ? Et même si vous en avez, la charge est elle représentative ? Pas évident... non ? Et bien si, filebench est là pour nous aider. Ce petit outil permet de simuler différents types d'activités sur le système de fichiers et ainsi nous permettre de mesurer la performance de nos systèmes de fichiers.

 

Petite démonstration de l'outil sur ma VBox en Solaris 11...

 

gloumps@zlap:-$ pkg info filebench
          Name: benchmark/filebench
       Summary: FileBench
   Description: FileBench Commands, Workloads, Scripts, and Config Files
      Category: Development/System
         State: Installed
     Publisher: solaris
       Version: 0.5.11
 Build Release: 5.11
        Branch: 0.151.0.1
Packaging Date:  4 novembre 2010 23:05:42 
          Size: 750.02 kB
          FMRI: pkg://solaris/benchmark/filebench@0.5.11,5.11-0.151.0.1:20101104T230542Z

 

gloumps@zlap:~$ ls -l /usr/benchmarks/filebench
total 7
drwxr-xr-x 4 root bin  6 2011-03-12 17:17 bin
drwxr-xr-x 2 root bin 11 2011-03-12 17:17 config
drwxr-xr-x 2 root bin  4 2011-03-12 17:17 scripts
drwxr-xr-x 2 root bin 48 2011-03-12 17:17 workloads

 

Toutes les types de workloads présentes sont paramérables. Par exemple pour simuler des lectures séquentielles sur un système de fichiers vous pouvez utilser la workload "filemicro_seqread".

 

gloumps@zlap:~$ su -
Password: 
Oracle Corporation      SunOS 5.11      snv_151a        November 2010

root@zlap:~#
root@zlap:~# cd /usr/benchmarks/filebench/bin
 

root@zlap:~# ./go_filebench 
FileBench Version 1.4.8
Bad terminal type: "xterm-256color". Will assume vt100.
filebench> help
 1353: 2.784: load <personality> (ls /usr/benchmarks/filebench/workloads for list) 

 

filebench> load filemicro_seqread
 1429: 83.956: FileMicro-SeqRead Version 2.1 personality successfully loaded
 1429: 83.956: Usage: set $dir=<dir>
 1429: 83.956:        set $cached=<bool>    defaults to false
 1429: 83.956:        set $filesize=<size>  defaults to 1073741824
 1429: 83.956:        set $iosize=<size>    defaults to 1048576
 1429: 83.956:        set $nthreads=<value> defaults to 1
 1429: 83.956:  
 1429: 83.956:        run runtime (e.g. run 60)

 

 

Pour lancer le workload il faut indiquer obligatoire le système de fichiers. Pour cette démonstration, j'ai assigné un nouveau disque à ma VBox que j'ai introduit dans un pool ZFS.

 

 

gloumps@zlap:~$ zpool list       
NAME    SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
dpool  15,9G  1,00G  14,9G     6%  1.00x  ONLINE  -
rpool  19,9G  3,05G  16,8G    15%  1.00x  ONLINE  -

gloumps@zlap:~$ zfs list -r dpool
NAME    USED  AVAIL  REFER  MOUNTPOINT
dpool  1,00G  14,6G  1,00G  /data1

 

gloumps@zlap:~$ cd /data1
gloumps@zlap:~$ ls
gloumps@zlap:~$

 

Revenons à la fenêtre de filebench... Après quelques modifications, on lance le test

 

filebench> set $dir=/data1
filebench> set $filesize=2147483648
filebench> set $iosize=8192
filebench>

filebench> run
 2259: 421.762: Creating/pre-allocating files and filesets
 2259: 421.764: File largefile: mbytes=2048
 2259: 421.788: Removed any existing file largefile in 1 seconds
 2259: 421.788: making tree for filset /data1/largefile
 2259: 421.789: Creating file largefile...
 2259: 507.754: Preallocated 1 of 1 of file largefile in 86 seconds
 2259: 507.754: waiting for fileset pre-allocation to finish
 2259: 507.755: Starting 1 filereader instances
 2330: 508.022: Starting 1 filereaderthread threads
 2259: 509.022: Running...

 

Pendant que le filebench exécute cette workloads, examinons un peu ce qui se passe sur le système...

 

gloumps@zlap:/data1$ iostat -Mxnzt 3
                    extended device statistics              
    r/s    w/s   Mr/s   Mw/s wait actv wsvc_t asvc_t  %w  %b device
  585,3    0,0   73,2    0,0  6,9  3,0   11,8    5,1 100 100 c9t0d0

                    extended device statistics              
    r/s    w/s   Mr/s   Mw/s wait actv wsvc_t asvc_t  %w  %b device
    0,3    0,0    0,0    0,0  0,0  0,0    0,0    1,9   0   0 c7d0
  561,6    6,7   70,2    0,0  6,9  3,0   12,2    5,3 100 100 c9t0d0

 

                    extended device statistics              
    r/s    w/s   Mr/s   Mw/s wait actv wsvc_t asvc_t  %w  %b device
    0,0   41,3    0,0    0,4  0,1  0,1    1,5    1,3   2   3 c7d0
  551,3    1,7   68,9    0,0  6,9  3,0   12,5    5,4 100 100 c9t0d0

                    extended device statistics              
    r/s    w/s   Mr/s   Mw/s wait actv wsvc_t asvc_t  %w  %b device
    1,0    0,0    0,1    0,0  0,0  0,0    0,0    1,1   0   0 c7d0
  602,8    0,0   75,4    0,0  6,9  3,0   11,5    5,0 100 100 c9t0d0

                    extended device statistics              
    r/s    w/s   Mr/s   Mw/s wait actv wsvc_t asvc_t  %w  %b device
    0,3   46,3    0,0    0,5  0,2  0,1    5,1    2,8   6   7 c7d0
  567,0    0,0   70,9    0,0  6,9  3,0   12,2    5,3 100 100 c9t0d0

^C

 

root@zlap:/opt/DTT/FS# ./rfileio.d

Read IOPS, top 20 (count)
/dev/pts/5                                                logical          1
/lib/ld.so.1                                              logical          2
/usr/bin/hostname                                         logical          5
/data1/largefile/00000001/00000001                       physical          6
/devices/pseudo/clone@0:ptm                               logical          7
/data1/largefile/00000001/00000001                        logical      44991
/devices/pseudo/random@0:urandom                          logical      44992
/proc/2330/lwp/2/lwpusage                                 logical      89984

 

Read Bandwidth, top 20 (bytes)
/lib/ld.so.1                                              logical        212
/usr/bin/hostname                                         logical        317
/devices/pseudo/clone@0:ptm                               logical       1273
/devices/pseudo/random@0:urandom                          logical     359936
/data1/largefile/00000001/00000001                       physical     786432
/proc/2330/lwp/2/lwpusage                                 logical   45351936
/data1/largefile/00000001/00000001                        logical  368558080

 

De retour sur la fenêtre filebench, on constate le résulat du test

 

[...]

 2259: 569.066: Run took 60 seconds...
 2259: 569.069: Per-Operation Breakdown

seqread-file   9211ops/s  72.0mb/s      0.1ms/op       26us/op-cpu

 2259: 569.069: 
IO Summary: 553027 ops, 9210.8 ops/s, (9211/0 r/w) 72.0mb/s, 41us cpu/op, 0.1ms latency
 2259: 569.069: Shutting down processes

[...]

 

Sans évoquer l'aspect bench du logiciel, l'utilisation de Filebench pour comprendre le fonctionnement des IO dans Solaris 10 et Solaris 11 est tout à fait possible (lorsque je parle d'IO, j'inclue bien évidemment le système de fichiers). Vous pourrez adapter facilement vos scripts Dtrace et utiliser tous les existants selon vos besoins.

 

Les sources étant disponibles, il est possible (je pense) de le compiler et donc l'utiliser sur d'autres types d'OS (des ports existes pour FreeBSD et Linux). Par contre l'association avec Dtrace est uniquement possible sous FreeBSD (et Mac bien évidemment).

 

Par gloumps - Publié dans : dtrace
Ecrire un commentaire - Voir les 0 commentaires

Mercredi 24 août 2011 3 24 /08 /Août /2011 20:30

 

Solaris mon amour fait peau neuve... Nouveau thème, mise en forme des articles, mises à jour régulières, modification du feed, nouvelle url... on ne m'arrête plus... La rentrée scolaire 2011 a du bon !!!

 

Certaines pages ont été modifiées mais le contenu est toujours disponible dans les articles. Cela concerne notamment les plus visités :

 

Dernière information, l'association GUSES prépare elle aussi sa rentrée... Modification des statuts, changement d'adresse mais surtout nouveau compte pour nouvelle cotisation...

 

Les membres de l'association vont bientôt se réunir pour valider le planning des présentations mensuelles pour l'année 2011/2012. SI vous qvez des idées de thèmes merci de me les faire parvenir rapidement.

 

En attendant bonne lecture à tous, bonne rentrée et pensez à utiliser Solaris 11 Express...

Par gloumps - Publié dans : divers
Ecrire un commentaire - Voir les 0 commentaires

Présentation

Informations personnelles

  • Passionné d'informatique, je travaille actuellement comme expert système Solaris. Vous trouverez plus de renseignements à mon sujet sur mon profil Linkedin.

Flux RSS

  • Flux RSS des articles

Recherche

Calendrier

Octobre 2014
L M M J V S D
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
<< < > >>
Créer un blog gratuit sur over-blog.com - Contact - C.G.U. - Signaler un abus - Articles les plus commentés