Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
elearning:workbooks:centos:6:avance:l102 [2020/08/08 12:11] adminelearning:workbooks:centos:6:avance:l102 [2023/02/15 15:42] (Version actuelle) admin
Ligne 1: Ligne 1:
 ~~PDF:LANDSCAPE~~ ~~PDF:LANDSCAPE~~
 +
 +Version : **2022.01**
  
 Dernière mise-à-jour : ~~LASTMOD~~ Dernière mise-à-jour : ~~LASTMOD~~
  
-======LCF302 - Gestion des Disques Avancée - Raid Logiciel======+======LCF301 - Gestion des Paramètres du matériel et les Ressources======
  
 =====Contenu du Module===== =====Contenu du Module=====
  
-  * **LCF302 - Gestion Avancée des Disques - Raid Logiciel**+  * **LCF301 - Gestion des Paramètres et les Ressources du Matériel**
     * Contenu du Module     * Contenu du Module
-    * Concepts RAID +    * Fichiers Spéciaux  
-      * Disques en miroir +    * Commandes 
-      * Bandes de données +      * La Commande lspci 
-    * Types de RAID +      * La Commande lsusb 
-      * RAID 0 - Concaténation +      * La Commande dmidecode 
-      RAID 0 - Striping +    * Répertoire /proc 
-      * RAID 1 - Miroir +      * Répertoires 
-      * RAID 1+0 - Striping en Miroir +        ide/scsi 
-      RAID 2 - Miroir avec Contrôle d'Erreurs +        * acpi 
-      RAID 3 et 4 - Striping avec Parité +        * bus 
-      RAID 5 - Striping avec Parité Distribuée +        * net 
-      * Au délà de RAID 5 +        * sys 
-    * RAID Logiciel sous RHEL/CentOS +        * La Commande sysctl 
-      Préparation du disque +      * Fichiers 
-      * Partitionnement +        * Processeur 
-      * Mise en Place du RAID 5 Logiciel+        * Interruptions système 
 +        * Canaux DMA 
 +        * Plages d'entrée/sortie 
 +        * Périphériques 
 +        * Modules 
 +        * Statistiques de l'utilisation des disques 
 +        * Partitions 
 +        * Espaces de pagination 
 +        * Statistiques d'utilisation du processeur 
 +        * Statistiques d'utilisation de la mémoire 
 +        * Version du noyau 
 +      * Interprétation des informations dans /proc 
 +        * Commandes 
 +          * free 
 +          * uptime ou w  
 +          * iostat 
 +          * vmstat 
 +          * mpstat 
 +          * sar 
 +          * Utilisation des commandes en production 
 +            Identifier un système limité par le processeur 
 +            * Identifier un système ayant un problème de mémoire 
 +            * Identifier un système ayant un problème d'E/S 
 +    Modules usb 
 +    udev 
 +      * La Commande udevadm 
 +    * Système de fichiers /sys 
 +    Limiter les Ressources 
 +      * ulimit 
 +      * Groupes de Contrôle 
 +        * LAB #1 - Travailler avec les cgroups sous RHEL/CentOS 7
  
-=====Concepts RAID=====+=====Fichiers Spéciaux=====
  
-Les solutions RAID ou //Redundant Array of Independent Disks// ou encore //Redundant Array of Inexpensive Disks// permettent la combinaison de plusieurs disques de façon à ce que ceux-ci soient vu comme un seul disque logique.+Dans l'ordinateur les périphériques sont reliés à un **contrôleur** qui communique avec le processeur à l'aide d'un **bus**. Le contrôleur ainsi que les périphériques nécessitent des pilotes. Sous Linux, les pilotes sont généralement fournis sous la forme d'un **module**. Chaque périphérique est représenté par un **fichier spécial** dans le répertoire **/dev** et c'est dans ce fichier que le système trouve les informations nécessaires pour s'adresser au pilote.
  
-Les solutions RAID sont issues du travail fourni par l'université de Berkeley en Californie sur un projet de tolérances de pannes. Les systèmes RAID offre maintenant plusieurs avantages :+<WRAP center round important> 
 +**Important** : Les périphériques qui nécessitent à ce que l'ordinateur soit éteint afin des les brancher/débrancher sont appelés communément **Cold Plug Devices**. Les périphériques qui peuvent être brancher/débrancher à chaud sont appelés des **Hot Plug Devices**. 
 +</WRAP>
  
-    * Addition des capacités, +Consultez le contenu du répertoire /dev :
-    * Amélioration des performances, +
-    * Apporter la tolérance de panne.+
  
-Deux concepts sont fondamentaux à la compréhension des solutions RAID.+<code> 
 +[root@centos7 ~]# ls -l /dev | more 
 +total 0 
 +crw-------1 root    root     10, 235 Oct 28 09:40 autofs 
 +drwxr-xr-x. 2 root    root         140 Oct 28 09:40 block 
 +drwxr-xr-x. 2 root    root          80 Oct 28 09:40 bsg 
 +crw-------. 1 root    root     10, 234 Oct 28 09:40 btrfs-control 
 +drwxr-xr-x. 3 root    root          60 Oct 28 09:40 bus 
 +lrwxrwxrwx. 1 root    root           3 Oct 28 09:40 cdrom -> sr0 
 +drwxr-xr-x. 2 root    root        2800 Oct 28 09:41 char 
 +crw-------. 1 root    root      5,   1 Oct 28 09:40 console 
 +lrwxrwxrwx. 1 root    root          11 Oct 28 09:40 core -> /proc/kcore 
 +drwxr-xr-x. 3 root    root          80 Oct 28 09:40 cpu 
 +crw-------. 1 root    root     10,  61 Oct 28 09:40 cpu_dma_latency 
 +crw-------. 1 root    root     10,  62 Oct 28 09:40 crash 
 +drwxr-xr-x. 5 root    root         100 Oct 28 09:40 disk 
 +drwxr-xr-x. 2 root    root          60 Oct 28 09:40 dri 
 +lrwxrwxrwx. 1 root    root          13 Oct 28 09:40 fd -> /proc/self/fd 
 +crw-rw-rw-. 1 root    root      1,   7 Oct 28 09:40 full 
 +crw-rw-rw-. 1 root    root     10, 229 Oct 28 09:41 fuse 
 +crw-------. 1 root    root     10, 228 Oct 28 09:40 hpet 
 +drwxr-xr-x. 3 root    root           0 Oct 28 09:40 hugepages 
 +prw-------. 1 root    root           0 Oct 28 09:40 initctl 
 +drwxr-xr-x. 3 root    root         240 Oct 28 09:40 input 
 +crw-r--r--. 1 root    root      1,  11 Oct 28 09:40 kmsg 
 +--More-- 
 +</code>
  
-====Disques en miroir====+On peut noter dans la sortie de la commande que certains fichiers sont de type **bloc** (**b**), tandis que d'autre sont de type **caractère** (**c**). 
  
-La technique des disques en miroir consiste à dupliquer l'écriture des données sur plusieurs disquesLe miroir peut être géré par un logiciel ou par du matériel.+<code> 
 +..
 +brw-rw----  1 root    disk      8,   1 Nov  1 08:39 sda1 
 +... 
 +crw-rw-rw-  1 root    tty       5,   0 Nov  1 08:39 tty 
 +... 
 +</code>
  
-====Bandes de données====+La différence entre les deux repose sur le type de communication entre le système et le module. Dans le premier cas le système accède au périphérique par des coordonnées du bloc de données sur le support tandis que dans le deuxième cas la communication d'échange de données se fait octet par octet sans utiliser des tampons.
  
-La technique des bandes de données, autrement appelée //data striping// consiste à couper les données à enregistrer en segments séquentiels et contigus pour les enregistrer sur plusieurs disques physiques. L'ensemble des segments constitue alors un disque logique ou //striped disk//. Cette technique peut être améliorée en déposant une bande de parité, calculée à partir des données des autres bandes, afin de pouvoir reconstituer une bande de données défaillante.+Les deux informations clefs du fichier spécial sont situées à la place de la taille d'un fichier normal et se nomment le **majeur** et le **mineur** :
  
-=====Types de RAID=====+  * le **majeur** identifie le pilote du périphérique et donc son contrôleur, 
 +  * le **mineur** identifie le périphérique ou une particularité du périphérique telle une partition d'un disque.
  
-====RAID 0 - Concaténation====+=====Commandes=====
  
-Création de volume par récupération de l'espace libre sur un ou plusieurs disques. Le principe de la concaténation est la création d'un volume à bandes où chaque bande est une tranche.+====La Commande lspci====
  
-{{:linux:raid0c.gif|}}+Cette commande vous renseigne sur les adaptateurs reliés aux bus PCI, AGP et PCI express :
  
-===Avantages===+<code> 
 +[root@centos7 ~]# lspci 
 +00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02) 
 +00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II] 
 +00:01.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01) 
 +00:02.0 VGA compatible controller: InnoTek Systemberatung GmbH VirtualBox Graphics Adapter 
 +00:03.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 02) 
 +00:04.0 System peripheral: InnoTek Systemberatung GmbH VirtualBox Guest Service 
 +00:05.0 Multimedia audio controller: Intel Corporation 82801AA AC'97 Audio Controller (rev 01) 
 +00:06.0 USB controller: Apple Inc. KeyLargo/Intrepid USB 
 +00:07.0 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08) 
 +00:0b.0 USB controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller 
 +00:0d.0 SATA controller: Intel Corporation 82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (rev 02) 
 +</code>
  
-  * Récupération de l'espace disque.+Pour obtenir de l'information sur un adaptateur spécifique, il convient d'utiliser la même commande avec l'option **-v** en spécifiant l'identifiant concerné :
  
-===Inconvénients===+<code> 
 +[root@centos7 ~]# lspci -v -s 00:03.0 
 +00:03.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 02) 
 + Subsystem: Intel Corporation PRO/1000 MT Desktop Adapter 
 + Flags: bus master, 66MHz, medium devsel, latency 64, IRQ 19 
 + Memory at f0000000 (32-bit, non-prefetchable) [size=128K] 
 + I/O ports at d010 [size=8] 
 + Capabilities: [dc] Power Management version 2 
 + Capabilities: [e4] PCI-X non-bridge device 
 + Kernel driver in use: e1000 
 +</code>
  
-  * Pas de protection des données, +ou :
-  * Pas d'augmentation des performances d'E/S.+
  
-====RAID 0 - Striping====+<code> 
 +[root@centos7 ~]# lspci -vv -s 00:03.0 
 +00:03.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 02) 
 + Subsystem: Intel Corporation PRO/1000 MT Desktop Adapter 
 + Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- 
 + Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- 
 + Latency: 64 (63750ns min) 
 + Interrupt: pin A routed to IRQ 19 
 + Region 0: Memory at f0000000 (32-bit, non-prefetchable) [size=128K] 
 + Region 2: I/O ports at d010 [size=8] 
 + Capabilities: [dc] Power Management version 2 
 + Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) 
 + Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- 
 + Capabilities: [e4] PCI-X non-bridge device 
 + Command: DPEREERO+ RBC=512 OST=
 + Status: Dev=ff:1f.0 64bit- 133MHz- SCD- USC- DC=simple DMMRBC=2048 DMOST=1 DMCRS=8 RSCEM- 266MHz- 533MHz- 
 + Kernel driver in use: e1000 
 +</code>
  
-Création de volume sur plusieurs disques afin d'augmenter les performances d'E/S. Le principe du striping est la création d'un volume à bandes réparties sur plusieurs tranches. La taille de la bande doit être fonction des données à écrire sur le volume (16k, 32k, 64k, etc.) Cette taille est choisie à la création du volume.+===Options de la commande===
  
-{{:linux:raid0s.gif|}}+Les options de cette commande sont :
  
-===Avantages===+<code> 
 +[root@centos7 ~]# lspci --help 
 +lspci: invalid option -- '-' 
 +Usage: lspci [<switches>]
  
-  * Augmentation des performances d'E/S par écriture en parallèle sur les disques.+Basic display modes: 
 +-mm Produce machine-readable output (single -m for an obsolete format) 
 +-t Show bus tree
  
-===Inconvénients===+Display options: 
 +-v Be verbose (-vv for very verbose) 
 +-k Show kernel drivers handling each device 
 +-x Show hex-dump of the standard part of the config space 
 +-xxx Show hex-dump of the whole config space (dangerous; root only) 
 +-xxxx Show hex-dump of the 4096-byte extended config space (root only) 
 +-b Bus-centric view (addresses and IRQ's as seen by the bus) 
 +-D Always show domain numbers
  
-  * Pas de protection des données.+Resolving of device ID's to names: 
 +-n Show numeric ID's 
 +-nn Show both textual and numeric ID's (names & numbers) 
 +-q Query the PCI ID database for unknown ID's via DNS 
 +-qq As above, but re-query locally cached entries 
 +-Q Query the PCI ID database for all ID's via DNS
  
-====RAID 1 Miroir====+Selection of devices: 
 +-s [[[[<domain>]:]<bus>]:][<slot>][.[<func>]] Show only devices in selected slots 
 +-d [<vendor>]:[<device>] Show only devices with specified ID's
  
-Création d'un volume où les disques sont en miroir. Quand les deux disques sont connectés à des contrôleurs de disques différents, on parle de //duplexing// :+Other options: 
 +-i <file> Use specified ID database instead of /usr/share/hwdata/pci.ids 
 +-p <file> Look up kernel modules in a given file instead of default modules.pcimap 
 +-M Enable `bus mapping' mode (dangerous; root only)
  
-{{:linux:raid1m.gif|}}+PCI access options: 
 +-A <method> Use the specified PCI access method (see `-A help' for a list) 
 +-O <par>=<val> Set PCI access parameter (see `-O help' for a list) 
 +-G Enable PCI access debugging 
 +-H <mode> Use direct hardware access (<mode> = 1 or 2) 
 +-F <file> Read PCI configuration dump from a given file 
 +</code>
  
-===Avantages===+====La Commande lsusb====
  
-  * Protection des données contre une défaillance d'un disque.+Cette commande vous renseigne sur les adaptateurs reliés au bus usb :
  
-===Inconvénients===+<code> 
 +[root@centos7 ~]# lsusb 
 +Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub 
 +Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
  
-  * Coûteux à cause de l'augmentation du nombre de disques.+[root@centos7 ~]# lsusb -vt 
 +/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ohci-pci/8p, 12M 
 +/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/8p, 480M 
 +</code>
  
-====RAID 1+0 - Striping en Miroir====+===Options de la commande===
  
-Le RAID 1+0 ou encore 0+1 est une technique qui réunit le RAID 0 et le RAID 1. On l'appelle aussi un RAID **exotique**:+Les options de cette commande sont :
  
-{{:linux:raid10.gif|}}+<code> 
 +[root@centos7 ~]# lsusb --help 
 +Usagelsusb [options]... 
 +List USB devices 
 +  -v, --verbose 
 +      Increase verbosity (show descriptors) 
 +  -s [[bus]:][devnum] 
 +      Show only devices with specified device and/or 
 +      bus numbers (in decimal) 
 +  -d vendor:[product] 
 +      Show only devices with the specified vendor and 
 +      product ID numbers (in hexadecimal) 
 +  -D device 
 +      Selects which device lsusb will examine 
 +  -t, --tree 
 +      Dump the physical USB device hierarchy as a tree 
 +  -V, --version 
 +      Show version of program 
 +  -h, --help 
 +      Show usage and help 
 +</code>
  
-===Avantages===+====La Commande dmidecode====
  
-  Protection des données contre une défaillance d'un disque. +La commande **dmidecode** lit la table **DMI** (//Desktop Management Interface//) aussi appelée **SMBIOS** (//System Management BIOS//) et fourni les informations sur :
-  Augmentation des performances d'E/S par écriture en parallèle sur les disques.+
  
-===Inconvénients===+  * l'état du matériel actuel, 
 +  * les extensions possibles.
  
-  * Coûteux à cause de l'augmentation du nombre de disques.+<code> 
 +[root@centos7 ~]# dmidecode 
 +# dmidecode 2.12 
 +SMBIOS 2.5 present. 
 +10 structures occupying 450 bytes. 
 +Table at 0x000E1000.
  
-====RAID 2 - Miroir avec Contrôle d'Erreurs====+Handle 0x0000, DMI type 0, 20 bytes 
 +BIOS Information 
 + Vendor: innotek GmbH 
 + Version: VirtualBox 
 + Release Date: 12/01/2006 
 + Address: 0xE0000 
 + Runtime Size: 128 kB 
 + ROM Size: 128 kB 
 + Characteristics: 
 + ISA is supported 
 + PCI is supported 
 + Boot from CD is supported 
 + Selectable boot is supported 
 + 8042 keyboard services are supported (int 9h) 
 + CGA/mono video services are supported (int 10h) 
 + ACPI is supported
  
-Le RAID 2 est une technique de miroir avec contrôle de correction d'erreurs (EEC). De nos jours cette technique est peu utiliséeayant été remplacée par les RAID 34 et 5.+Handle 0x0001DMI type 127 bytes 
 +System Information 
 + Manufacturer: innotek GmbH 
 + Product Name: VirtualBox 
 + Version: 1.
 + Serial Number: 0 
 + UUID: DDEE345C-66F8-4250-B5A2-85CEF2C1C54D 
 + Wake-up Type: Power Switch 
 + SKU Number: Not Specified 
 + Family: Virtual Machine
  
-====RAID 3 et 4 - Striping avec Parité====+Handle 0x0008, DMI type 2, 15 bytes 
 +Base Board Information 
 + Manufacturer: Oracle Corporation 
 + Product Name: VirtualBox 
 + Version: 1.2 
 + Serial Number: 0 
 + Asset Tag: Not Specified 
 + Features: 
 + Board is a hosting board 
 + Location In Chassis: Not Specified 
 + Chassis Handle: 0x0003 
 + Type: Motherboard 
 + Contained Object Handles: 0
  
-Les RAID et 4 sont des technologies avec bandes de parité distribuées sur un seul disque :+Handle 0x0003, DMI type 3, 13 bytes 
 +Chassis Information 
 + ManufacturerOracle Corporation 
 + Type: Other 
 + Lock: Not Present 
 + Version: Not Specified 
 + Serial Number: Not Specified 
 + Asset Tag: Not Specified 
 + Boot-up State: Safe 
 + Power Supply State: Safe 
 + Thermal State: Safe 
 + Security Status: None
  
-{{:linux:raid34.gif|}}+Handle 0x0007, DMI type 126, 42 bytes 
 +Inactive
  
-En RAID 3la taille des segments n’est pas modifiable et est fixée à 512 octets (en RAID 3 : un segment = un secteur de disque dur = 512 octets).+Handle 0x0005DMI type 126, 15 bytes 
 +Inactive
  
-En RAID 4la taille des segments est variable et se modifie en temps réel. Cela implique que les informations de parité doivent être mise à jour à chaque écriture afin de vérifier si la taille des segments a été modifiée. +Handle 0x0006DMI type 126, 28 bytes 
 +Inactive
  
-===Avantages===+Handle 0x0002, DMI type 11, 7 bytes 
 +OEM Strings 
 + String 1: vboxVer_4.3.28 
 + String 2: vboxRev_100309
  
-  * Protection des données contre une défaillance d'un disque.+Handle 0x0008, DMI type 128, 8 bytes 
 +OEM-specific Type 
 + Header and Data: 
 + 80 08 08 00 01 15 21 00
  
-===Inconvénients===+Handle 0xFEFF, DMI type 127, 4 bytes 
 +End Of Table
  
-  * Création d'un goulot d'étranglement des données à cause de l'écriture des données de parité sur un seul disque.+</code> 
 + 
 +===Options de la commande=== 
 + 
 +Les options de cette commande sont : 
 + 
 +<code> 
 +[root@centos7 ~]# dmidecode --help 
 +Usage: dmidecode [OPTIONS] 
 +Options are: 
 + -d, --dev-mem FILE     Read memory from device FILE (default: /dev/mem) 
 + -h, --help             Display this help text and exit 
 + -q, --quiet            Less verbose output 
 + -s, --string KEYWORD   Only display the value of the given DMI string 
 + -t, --type TYPE        Only display the entries of given type 
 + -u, --dump             Do not decode the entries 
 +     --dump-bin FILE    Dump the DMI data to a binary file 
 +     --from-dump FILE   Read the DMI data from a binary file 
 + -V, --version          Display the version and exit 
 +</code> 
 + 
 +=====Répertoire /proc===== 
 + 
 +Le répertoire /proc contient des fichiers et des répertoires virtuels. Le contenu de ces fichiers est créé dynamiquement lors de la consultation. Seul root peut consulter la totalité des informations dans le répertoire /proc. 
 + 
 +<code> 
 +[root@centos7 ~]# ls /proc 
 +1      217    260   2833  3085  465   5898         fb            sched_debug 
 +10     22619  2605  2879  3091  478   5933         filesystems   scsi 
 +11     22650  2606  2883  3104  482   5940         fs            self 
 +12     228    261   2884  3108  484   60           interrupts    slabinfo 
 +1215   229    262   29    3124  485   604          iomem         softirqs 
 +1217   22908  263   2901  3172  488   698          ioports       stat 
 +1227   230    264   2906  3185  490              irq           swaps 
 +1228   232    265   2910  3304  492   7110         kallsyms      sys 
 +1230   233    2671  2913  3496  494              kcore         sysrq-trigger 
 +1264   23387  2676  2924  3543  495   83           keys          sysvipc 
 +13     235    27    2926  363                  key-users     timer_list 
 +1372   23580  2749  2931  370   502   acpi         kmsg          timer_stats 
 +14     23916  2752  2937  372   503   asound       kpagecount    tty 
 +15     23998  2759  2948  38    508   buddyinfo    kpageflags    uptime 
 +16     24     2762  2955  381   509   bus          loadavg       version 
 +17     24013  2764  2967  40    519   cgroups      locks         vmallocinfo 
 +1732   2427   2765  2971  41    521   cmdline      mdstat        vmstat 
 +1744   248    2767  2973  414   525   consoles     meminfo       zoneinfo 
 +17788  2486   2768  2983  431   530   cpuinfo      misc 
 +18     25     2782  2985  432   536   crypto       modules 
 +19     2586   2798  2988  433   549   devices      mounts 
 +2      259    28    2998  434   586   diskstats    mtrr 
 +20     2595   2802  3     436   587   dma          net 
 +20638  2597   2806  3058  454   5894  driver       pagetypeinfo 
 +21     26     2818  3084  458   5897  execdomains  partitions 
 +</code> 
 + 
 +====Répertoires==== 
 + 
 +===ide/scsi=== 
 + 
 +Ce répertoire contient des répertoires dans lesquels se trouvent des informations sur la capacité, le type et la géométrie des disques.
  
-====RAID 5 - Striping avec Parité Distribuée====+===acpi===
  
-Le RAID 5 est une technologie avec bandes de parité distribuées sur plusieurs disques :+Ce répertoire contient des informations sur la gestion de l'énérgie, les températures, les vitesses de ventilateurs, la charge des batteries.
  
-{{:linux:raid5.gif|}}+===bus===
  
-===Avantages===+Ce répertoire contient un sous-répertoire par bus.
  
-  * Protection des données contre une défaillance d'un disque, +===net===
-  * Evite le goulot d'étranglement d'un seul disque de parité.+
  
-===Inconvénients===+Ce répertoire contient des informations sur le réseau.
  
-  * Lecture moins performante qu'avec RAID 3 et 4.+===sys===
  
-====Au délà de RAID 5====+Ce répertoire contient des paramètres du noyau. Certains des fichiers dans ce répertoire sont accessibles en écriture par root en temps réel. Par exemple pour éviter des attaques réseau **%%DoS%%** utilisant la commande **ping**, saisissez la commande suivante :
  
-Il existe aussi deux autres technologies RAID, toute deux issues de la technologie RAID 5 :+  # echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all [Entrée]
  
-  * RAID 6 +Cette commande a pour résultat d'ignorer les reqûetes ping.
-    * //Disk Striping with Double Distributed Parity// +
-  * RAID TP +
-    * //Disk Striping with Triple Distributed Parity//+
  
-=====RAID Logiciel sous RHEL/CentOS=====+===La commande sysctl===
  
-====Préparation du disque====+Les fichiers dans le répertoire **/proc/sys** peuvent être administrés par la commande **sysctl** en temps réel. 
  
-===Partitionnement===+La commande **sysctl** applique les règles consignés dans le fichier **/etc/sysctl.conf** au démarrage de la machine.
  
-Suite à votre LAB de la leçon **Gestion des Disques et le Swap**, votre disque comporte 12 partitions :+Saisissez la commande :
  
 <code> <code>
-[root@centos7 ~]# fdisk -l+[root@centos7 ~]# cat /etc/sysctl.conf 
 +# System default settings live in /usr/lib/sysctl.d/00-system.conf. 
 +# To override those settings, enter new settings here, or in an /etc/sysctl.d/<name>.conf file 
 +
 +# For more information, see sysctl.conf(5) and sysctl.d(5).
  
-Disk /dev/sda: 21.5 GB21474836480 bytes41943040 sectors +[root@centos7 ~]# cat /usr/lib/sysctl.d/00-system.conf 
-Units = sectors of * 512 = 512 bytes +# Kernel sysctl configuration file 
-Sector size (logical/physical): 512 bytes / 512 bytes +
-I/O size (minimum/optimal): 512 bytes / 512 bytes +# For binary values0 is disabled, 1 is enabled.  See sysctl(8and 
-Disk label type: dos +# sysctl.conf(5for more details.
-Disk identifier: 0x000c5a90+
  
-   Device Boot      Start         End      Blocks   Id  System +# Disable netfilter on bridges. 
-/dev/sda1          2048      411647      204800   83  Linux +net.bridge.bridge-nf-call-ip6tables = 0 
-/dev/sda2          411648    20891647    10240000   83  Linux +net.bridge.bridge-nf-call-iptables = 0 
-/dev/sda3        20891648    25083903     2096128   82  Linux swap Solaris +net.bridge.bridge-nf-call-arptables = 0 
-/dev/sda4        25083904    41943039     8429568    5  Extended + 
-/dev/sda5        25085952    26109951      512000   fd  Linux raid autodetect +# Controls the maximum shared segment size, in bytes 
-/dev/sda6        26112000    26521599      204800   8e  Linux LVM +kernel.shmmax = 4294967295 
-/dev/sda7        26523648    27138047      307200   8e  Linux LVM + 
-/dev/sda8        27140096    28164095      512000   fd  Linux raid autodetect +# Controls the maximum number of shared memory segments, in pages 
-/dev/sda9        28166144    28985343      409600   8e  Linux LVM + 
-/dev/sda10       28987392    30011391      512000   fd  Linux raid autodetect +[root@centos7 ~]# ls -l /etc/sysctl.d
-/dev/sda11       30013440    31037439      512000   fd  Linux raid autodetect +total 0 
-/dev/sda12       31039488    31449087      204800   83  Linux+lrwxrwxrwx. 1 root root 14 Jun  4 09:54 99-sysctl.conf -> ../sysctl.conf 
 + 
 +[root@centos7 ~]# cat /etc/sysctl.d/99-sysctl.conf  
 +# System default settings live in /usr/lib/sysctl.d/00-system.conf. 
 +# To override those settings, enter new settings here, or in an /etc/sysctl.d/<name>.conf file 
 +
 +# For more information, see sysctl.conf(5) and sysctl.d(5).
 </code> </code>
  
-====Mise en Place du RAID 5 Logiciel====+==Options de la commande==
  
-Dans le cas de cet exemple les quatre partitions concernées par la mise en place d'un RAID 5 sont :+Les options de la commande **sysctl** sont :
  
-<file+<code
-/dev/sda5        25085952    26109951      512000   fd  Linux raid autodetect +[root@centos7 ~]# sysctl --help
-/dev/sda8        27140096    28164095      512000   fd  Linux raid autodetect +
-/dev/sda10       28987392    30011391      512000   fd  Linux raid autodetect +
-/dev/sda11       30013440    31037439      512000   fd  Linux raid autodetect +
-</file>+
  
-La création d'une unité RAID avec la commande **mdadm** se fait grâce aux options passées en arguments à la commande :+Usage: 
 + sysctl [options] [variable[=value] ...] 
 + 
 +Options: 
 +  -a, --all            display all variables 
 +  -A                   alias of -a 
 +  -X                   alias of -a 
 +      --deprecated     include deprecated parameters to listing 
 +  -b, --binary         print value without new line 
 +  -e, --ignore         ignore unknown variables errors 
 +  -N, --names          print variable names without values 
 +  -n, --values         print only values of a variables 
 +  -p, --load[=<file> read values from file 
 +  -f                   alias of -p 
 +      --system         read values from all system directories 
 +  -r, --pattern <expression> 
 +                       select setting that match expression 
 +  -q, --quiet          do not echo variable set 
 +  -w, --write          enable writing a value to variable 
 +  -o                   does nothing 
 +  -x                   does nothing 
 +  -                  alias of -h 
 + 
 + -h, --help     display this help and exit 
 + -V, --version  output version information and exit 
 + 
 +For more details see sysctl(8). 
 +</code> 
 + 
 +<WRAP center round important> 
 +**Important** : Consultez la page de la traduction du manuel de **sysctl** **[[http://www.delafond.org/traducmanfr/man/man8/sysctl.8.html|ici]]** pour comprendre la commande
 +</WRAP> 
 + 
 +====Fichiers==== 
 + 
 +===Processeur===
  
 <code> <code>
-mdadm --create <unité RAID> [options<unités physiques>+[root@centos7 ~]# cat /proc/cpuinfo 
 +processor : 0 
 +vendor_id : GenuineIntel 
 +cpu family : 6 
 +model : 55 
 +model name : Intel(R) Celeron(R) CPU  N2840  @ 2.16GHz 
 +stepping : 8 
 +microcode : 0x19 
 +cpu MHz : 2167.721 
 +cache size : 6144 KB 
 +physical id : 0 
 +siblings : 1 
 +core id : 0 
 +cpu cores : 1 
 +apicid : 0 
 +initial apicid : 0 
 +fpu : yes 
 +fpu_exception : yes 
 +cpuid level : 5 
 +wp : yes 
 +flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx rdtscp lm constant_tsc rep_good nopl pni monitor ssse3 lahf_lm 
 +bogomips : 4335.44 
 +clflush size : 64 
 +cache_alignment : 64 
 +address sizes : 36 bits physical, 48 bits virtual 
 +power management:
 </code> </code>
  
-Par exemple, saisissez la commande suivante :+===Interruptions système===
  
 <code> <code>
-[root@centos7 ~]# mdadm --create /dev/md1 --level=5 --raid-devices=3 /dev/sda5 /dev/sda8 /dev/sda11 +[root@centos7 ~]# cat /proc/interrupts 
-mdadmDefaulting to version 1.2 metadata +           CPU0        
-mdadmarray /dev/md1 started.+  0:        189   IO-APIC-edge      timer 
 +  1:       5890   IO-APIC-edge      i8042 
 +  8:          0   IO-APIC-edge      rtc0 
 +  9           IO-APIC-fasteoi   acpi 
 + 12     22452   IO-APIC-edge      i8042 
 + 14:          0   IO-APIC-edge      ata_piix 
 + 15:      13891   IO-APIC-edge      ata_piix 
 + 19:      25816   IO-APIC-fasteoi   ehci_hcd:usb1, enp0s3 
 + 20:     119352   IO-APIC-fasteoi   vboxguest 
 + 21:      33754   IO-APIC-fasteoi   ahci, snd_intel8x0 
 + 22:          0   IO-APIC-fasteoi   ohci_hcd:usb2 
 +NMI:          0   Non-maskable interrupts 
 +LOC:    1630315   Local timer interrupts 
 +SPU:          0   Spurious interrupts 
 +PMI:          0   Performance monitoring interrupts 
 +IWI:      83206   IRQ work interrupts 
 +RTR:          0   APIC ICR read retries 
 +RES:          0   Rescheduling interrupts 
 +CAL:          0   Function call interrupts 
 +TLB:          0   TLB shootdowns 
 +TRM:          0   Thermal event interrupts 
 +THR:          0   Threshold APIC interrupts 
 +MCE:          0   Machine check exceptions 
 +MCP:         48   Machine check polls 
 +ERR:          0 
 +MIS:          0
 </code> </code>
  
-Les options dans la ligne de commande sont :+<WRAP center round important> 
 +**Important** Un pilote de périphérique demande au processeur de fournir un service en utilisant un IRQ. Quand la demande est faite, le processeur interrompe ses activités et passe le contrôle au pilote identifié par l'IRQ. Techniquement l'attribution d'un IRQ à un périphérique doit être exclusive. Dans le cas où deux périphériques demandent un service en même temps, c'est le périphérique ayant l'IRQ le plus bas qui est prioritaire. 
 +</WRAP> 
  
-^ Option Courte ^ Option Longue ^ Description ^ +===Canaux DMA===
-| -l | - -level | Le niveau RAID - **linear, 0,1,2,4 ou 5** | +
-| -n | - -raid-devices=<nombre> | Le nombre de périphériques actifs dans le RAID |+
  
-Les autres options de la commande **mdadm** peuvent être visualisées grâce à la commande suivante :+<code> 
 +[root@centos7 ~]# cat /proc/dma 
 + 4cascade 
 +</code> 
 + 
 +===Plages d'entrée/sortie===
  
 <code> <code>
-[root@centos7 ~]# mdadm --help-options +[root@centos7 ~]# cat /proc/ioports | more 
-Any parameter that does not start with '-' is treated as a device name +0000-001f : dma1 
-or, for --examine-bitmap, a file name+0020-0021 : pic1 
-The first such name is often the name of an md device.  Subsequent +0040-0043 : timer0 
-names are often names of component devices.+0050-0053 : timer1 
 +0060-0060 : keyboard 
 +0064-0064 : keyboard 
 +0070-0071 : rtc_cmos 
 +  0070-0071 : rtc0 
 +0080-008f : dma page reg 
 +00a0-00a1 : pic2 
 +00c0-00df : dma2 
 +00f0-00ff : fpu 
 +0170-0177 : 0000:00:01.1 
 +  0170-0177 : ata_piix 
 +01f0-01f7 : 0000:00:01.
 +  01f0-01f7 : ata_piix 
 +0376-0376 : 0000:00:01.
 +  0376-0376 : ata_piix 
 +03c0-03df : vga+ 
 +03f6-03f6 : 0000:00:01.1 
 +  03f6-03f6 : ata_piix 
 +0cf8-0cff : PCI conf1 
 +4000-4003 : ACPI PM1a_EVT_BLK 
 +--More-- 
 +</code>
  
-Some common options are: +<WRAP center round alert 60%> 
-  --help        -h   : General help message or, after above option+Si deux périphériques ont le même portles **deux** périphériques seront inutilisables. 
-                       mode specific help message +</WRAP> 
-  --help-options     This help message + 
-  --version     -V   : Print version information for mdadm +===Périphériques=== 
-  --verbose     -v   : Be more verbose about what is happening + 
-  --quiet       -q   : Don't print un-necessary messages +<code> 
-  --brief       -b   : Be less verbose, more brief +[root@centos7 ~]# cat /proc/devices 
-  --export      -Y   : With --detail, --detail-platform or --examine use +Character devices
-                       key=value format for easy import into environment +  1 mem 
-  --force       -f   : Override normal checks and be more forceful+  4 /dev/vc/0 
 +  4 tty 
 +  4 ttyS 
 +  5 /dev/tty 
 +  5 /dev/console 
 +  5 /dev/ptmx 
 +  6 lp 
 +  7 vcs 
 + 10 misc 
 + 13 input 
 + 14 sound 
 + 29 fb 
 + 99 ppdev 
 +116 alsa 
 +128 ptm 
 +136 pts 
 +162 raw 
 +180 usb 
 +188 ttyUSB 
 +189 usb_device 
 +202 cpu/msr 
 +203 cpu/cpuid 
 +226 drm 
 +250 hidraw 
 +251 usbmon 
 +252 bsg 
 +253 watchdog 
 +254 rtc
  
-  --assemble    -A   Assemble an array +Block devices
-  --build       -B   : Build an array without metadata +259 blkext 
-  --create      -C   : Create a new array +  8 sd 
-  --detail      -D   : Display details of an array +  9 md 
-  --examine     -E   : Examine superblock on an array component + 11 sr 
-  --examine-bitmap -X: Display the detail of a bitmap file + 65 sd 
-  --examine-badblocks: Display list of known bad blocks on device + 66 sd 
-  --monitor     -F   : monitor (follow) some arrays + 67 sd 
-  --grow        -G   : resize/ reshape and array + 68 sd 
-  --incremental -I   : add/remove a single device to/from an array as appropriate + 69 sd 
-  --query       -Q   : Display general information about how a + 70 sd 
-                       device relates to the md driver + 71 sd 
-  --auto-detect      : Start arrays auto-detected by the kernel+128 sd 
 +129 sd 
 +130 sd 
 +131 sd 
 +132 sd 
 +133 sd 
 +134 sd 
 +135 sd 
 +253 device-mapper 
 +254 mdp
 </code> </code>
  
-Les //modes majeurs// de la commande **mdadm** peuvent être visualisés grâce à la commande suivante :+===Modules===
  
 <code> <code>
-[root@centos7 ~]# mdadm --help +[root@centos7 ~]# cat /proc/modules | more 
-mdadm is used for building, managing, and monitoring +tcp_lp 12663 0 Live 0xffffffffa059d000 
-Linux md devices (aka RAID arrays) +lp 17759 0 Live 0xffffffffa0593000 
-Usage: mdadm --create device options... +nls_utf8 12557 1 - Live 0xffffffffa0527000 
-            Create a new array from unused devices. +isofs 39844 1 - Live 0xffffffffa0588000 
-       mdadm --assemble device options... +bnep 19704 2 Live 0xffffffffa0516000 
-            Assemble a previously created array. +bluetooth 372662 7 bnep, Live 0xffffffffa052c000 
-       mdadm --build device options... +rfkill 26536 3 bluetooth, Live 0xffffffffa051f000 
-            Create or assemble an array without metadata. +fuse 87741 3 Live 0xffffffffa04ff000 
-       mdadm --manage device options... +ip6t_rpfilter 12546 1 Live 0xffffffffa04fa000 
-            make changes to an existing array. +ip6t_REJECT 12939 2 - Live 0xffffffffa04f5000 
-       mdadm --misc options... devices +ipt_REJECT 12541 2 Live 0xffffffffa04f0000 
-            report on or modify various md related devices. +xt_conntrack 12760 7 Live 0xffffffffa04e6000 
-       mdadm --grow options device +ebtable_nat 12807 0 Live 0xffffffffa04e1000 
-            resize/reshape an active array +ebtable_broute 12731 0 Live 0xffffffffa04eb000 
-       mdadm --incremental device +bridge 115385 1 ebtable_broute, Live 0xffffffffa04c3000 
-            add/remove a device to/from an array as appropriate +stp 12976 1 bridge, Live 0xffffffffa04be000 
-       mdadm --monitor options... +llc 14552 2 bridge,stp, Live 0xffffffffa04b5000 
-            Monitor one or more array for significant changes. +ebtable_filter 12827 0 Live 0xffffffffa04b0000 
-       mdadm device options... +ebtables 30913 3 ebtable_nat,ebtable_broute,ebtable_filter, Live 0xffffffffa04a3 
-            Shorthand for --manage. +000 
-Any parameter that does not start with '-' is treated as a device name +ip6table_nat 12864 1 Live 0xffffffffa049e000 
-orfor --examine-bitmap, a file name. +nf_conntrack_ipv6 18738 5 Live 0xffffffffa0498000 
-The first such name is often the name of an md device.  Subsequent +nf_defrag_ipv6 34651 1 nf_conntrack_ipv6Live 0xffffffffa048a000 
-names are often names of component devices.+--More-
 +</code>
  
- For detailed help on the above major modes use --help after the mode +===Statistiques de l'utilisation  des disques=== 
- e.g. + 
-         mdadm --assemble --help +<code> 
- For general help on options use +[root@centos7 ~]# cat /proc/diskstats 
-         mdadm --help-options+  11       0 sr0 21 0 132 157 0 0 0 0 0 157 157 
 +         0 sda 19700 638 2178341 386424 13324 1605 547086 356748 0 164849 740706 
 +         1 sda1 2129 0 9438 2181 2057 0 4122 392 0 2527 2569 
 +         2 sda2 17213 598 2165719 382957 11202 1605 542964 356316 0 164048 736814 
 +         3 sda3 170 31 1608 775 0 0 0 0 0 775 775
 </code> </code>
  
-Dernièrement, chaque //mode majeur// dispose de son propre aide :+===Partitions===
  
 <code> <code>
-[root@centos7 ~]# mdadm --assemble --help +[root@centos7 ~]# cat /proc/partitions 
-Usage: mdadm --assemble device options... +major minor  #blocks  name
-       mdadm --assemble --scan options...+
  
-This usage assembles one or more raid arrays from pre-existing +  11        0      56876 sr0 
-components. +   8        0   20971520 sda 
-For each array, mdadm needs to know the md device, the identity of +   8        1     204800 sda1 
-the array, and a number of sub devices. These can be found in a number +   8        2    7168000 sda2 
-of ways.+   8        3    3072000 sda3 
 +</code>
  
-The md device is given on the command line, is found listed in the +===Espaces de pagination===
-config file, or can be deduced from the array identity. +
-The array identity is determined either from the --uuid, --name, or +
---super-minor commandline arguments, from the config file, +
-or from the first component device on the command line.+
  
-The different combinations of these are as follows: +<code> 
- If the --scan option is not given, then only devices and identities +[root@centos7 ~]# cat /proc/swaps 
- listed on the command line are considered. +Filename Type Size Used Priority 
- The first device will be the array device, and the remainder will be +/dev/sda3                               partition 3071996 0 -1 
- examined when looking for components. +</code>
- If an explicit identity is given with --uuid or --super-minor, then +
- only devices with a superblock which matches that identity is considered, +
- otherwise every device listed is considered.+
  
- If the --scan option is given, and no devices are listed, then +===Statistiques d'utilisation du processeur===
- every array listed in the config file is considered for assembly. +
- The identity of candidate devices are determined from the config file. +
- After these arrays are assembled, mdadm will look for other devices +
- that could form further arrays and tries to assemble them.  This can +
- be disabled using the 'AUTO' option in the config file.+
  
- If the --scan option is given as well as one or more devices, then +<code> 
- Those devices are md devices that are to be assembled.  Their identity +[root@centos7 ~]# cat /proc/loadavg 
- and components are determined from the config file.+1.82 1.07 0.81 3/379 25349 
 +</code>
  
- If mdadm can not find all of the components for an array, it will assemble +===Statistiques d'utilisation de la mémoire===
- it but not activate it unless --run or --scan is given.  To preserve this +
- behaviour even with --scan, add --no-degraded.  Note that "all of the +
- components" means as many as were present the last time the array was running +
- as recorded in the superblock.  If the array was already degraded, and +
- the missing device is not a new problem, it will still be assembled.  It +
- is only newly missing devices that cause the array not to be started.+
  
-Options that are valid with --assemble (-Aare+<code> 
-  --bitmap=          bitmap file to use with the array +[root@centos7 ~]# cat /proc/meminfo 
-  --uuid=       -u   : uuid of array to assemble. Devices which don't +MemTotal:        1791624 kB 
-                       have this uuid are excluded +MemFree:           72272 kB 
-  --super-minor= -m  minor number to look for in super-block when +MemAvailable:     769436 kB 
-                       choosing devices to use. +Buffers:             404 kB 
-  --name=       -N   Array name to look for in super-block. +Cached:           790132 kB 
-  --config=     -c   config file +SwapCached:            0 kB 
-  --scan        -s   scan config file for missing information +Active:          1002556 kB 
-  --run         -R   Try to start the array even if not enough devices +Inactive:         529520 kB 
-                       for a full array are present +Active(anon):     620404 kB 
-  --force       -f   Assemble the array even if some superblocks appear +Inactive(anon)  131808 kB 
-                     out-of-date.  This involves modifying the superblocks. +Active(file):     382152 kB 
-  --update=     -U   : Update superblocktry '-A --update=?' for option list. +Inactive(file):   397712 kB 
-  --no-degraded      Assemble but do not start degraded arrays. +Unevictable          0 kB 
-  --readonly    -o   Mark the array as read-only. No resync will start.+Mlocked:               0 kB 
 +SwapTotal      3071996 kB 
 +SwapFree:        3071992 kB 
 +Dirty            35168 kB 
 +Writeback            0 kB 
 +AnonPages:        741568 kB 
 +Mapped          138756 kB 
 +Shmem            10664 kB 
 +Slab:              98304 kB 
 +SReclaimable     59848 kB 
 +SUnreclaim       38456 kB 
 +KernelStack:        5808 kB 
 +PageTables:        24140 kB 
 +NFS_Unstable:          0 kB 
 +Bounce:                0 kB 
 +WritebackTmp:          0 kB 
 +CommitLimit:     3967808 kB 
 +Committed_AS:    3006392 kB 
 +VmallocTotal:   34359738367 kB 
 +VmallocUsed      28612 kB 
 +VmallocChunk  34359706684 kB 
 +HardwareCorrupted    0 kB 
 +AnonHugePages:    256000 kB 
 +HugePages_Total      0 
 +HugePages_Free:        0 
 +HugePages_Rsvd:        0 
 +HugePages_Surp:        0 
 +Hugepagesize:       2048 kB 
 +DirectMap4k:       75712 kB 
 +DirectMap2M:     1759232 kB
 </code> </code>
  
-Constatez maintenant les informations concernant le RAID 5 créé :+===Version du noyau===
  
 <code> <code>
-[root@centos7 ~]# cat /proc/mdstat +[root@centos7 ~]# cat /proc/version 
-Personalities : [raid6] [raid5] [raid4]  +Linux version 3.10.0-229.4.2.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.20140120 (Red Hat 4.8.2-16) (GCC) ) #1 SMP Wed May 13 10:06:09 UTC 2015
-md1 : active raid5 sda11[3] sda8[1] sda5[0+
-      1021952 blocks super 1.2 level 5, 512k chunk, algorithm [3/3] [UUU] +
-       +
-unused devices<none>+
 </code> </code>
  
-Grâce à la commande mdadmil est possible d'obtenir d'avantage d'informations :+==== Interprétation des informations dans /proc==== 
 + 
 +Les informations brutes stockées dans /proc peuvent être interprétées grâce à l'utilisation des commandes dites de //gestion des performances//
 + 
 +  * free, 
 +  * uptime et w, 
 +  * iostat, 
 +  * vmstat, 
 +  * mpstat, 
 +  * sar.  
 + 
 +===Commandes=== 
 + 
 +==free== 
 + 
 +La commande **free** permet de donner l’état de la mémoire totalelibre, partagée, swap et bufferisée. Saisissez donc la commande suivante :
  
 <code> <code>
-[root@centos7 ~]# mdadm --query /dev/md1 +[root@centos7 ~]# free -
-/dev/md1998.17MiB raid5 devices, 0 spares. Use mdadm --detail for more detail.+              total        used        free      shared  buff/cache   available 
 +Mem          1749         859          76                   813         707 
 +Swap:          2999                  2996
 </code> </code>
  
-L'option **- -detail** produit le résultat suivant :+Dans le cas de cet exemple, nous pouvons constater que l’affichage montre : 
 + 
 +  1749 Mo de mémoire physique totale, 
 +  859 Mo de mémoire physique utilisée et 76 Mo de mémoire physique libre, 
 +  2999 Mo de mémoire swap totale et 3 Mo de swap utilisé 
 + 
 +Les options de cette commande sont :
  
 <code> <code>
-[root@centos7 ~]# mdadm --detail /dev/md1 +[root@centos7 ~]# free --help
-/dev/md1: +
-        Version : 1.2 +
-  Creation Time : Tue Aug  2 15:10:12 2016 +
-     Raid Level : raid5 +
-     Array Size : 1021952 (998.17 MiB 1046.48 MB) +
-  Used Dev Size : 510976 (499.08 MiB 523.24 MB) +
-   Raid Devices : 3 +
-  Total Devices : 3 +
-    Persistence : Superblock is persistent+
  
-    Update Time Tue Aug  2 15:10:17 2016 +Usage
-          State : clean  + free [options]
- Active Devices : 3 +
-Working Devices : 3 +
- Failed Devices : 0 +
-  Spare Devices : 0+
  
-         Layout left-symmetric +Options: 
-     Chunk Size : 512K+ -b, --bytes         show output in bytes 
 + -k, --kilo          show output in kilobytes 
 + -m, --mega          show output in megabytes 
 + -g, --giga          show output in gigabytes 
 +     --tera          show output in terabytes 
 + -h, --human         show human-readable output 
 +     --si            use powers of 1000 not 1024 
 + -l, --lohi          show detailed low and high memory statistics 
 + -t, --total         show total for RAM + swap 
 + -s N, --seconds N   repeat printing every N seconds 
 + -c N, --count N     repeat printing N times, then exit 
 + -w, --wide          wide output
  
-           Name : centos7.fenestros.loc: (local to host centos7.fenestros.loc) +     --help     display this help and exit 
-           UUID : fd8bac53:1457a4f4:30feab84:e0f9d8e0 + -V, --version  output version information and exit
-         Events : 18+
  
-    Number   Major   Minor   RaidDevice State +For more details see free(1).
-                    5        0      active sync   /dev/sda5 +
-             8        8        1      active sync   /dev/sda8 +
-                   11        2      active sync   /dev/sda11+
 </code> </code>
  
-Notez la ligne **Persistence Superblock is persistent**. En effet, cette implémentation de RAID inscrit les caractéristiques du volume dans un //super bloc// persistant en début de chaque unité de type bloc dans le volume.+==uptime ou w== 
 + 
 +Chacune des ces commandes indique la charge moyenne du ou des processeurs depuis 1 minute, 5 minutes et 15 minutes : 
 + 
 +<code> 
 +[root@centos7 ~]# uptime 
 + 14:43:46 up  4:05,  2 users,  load average: 0.92, 1.23, 0.95 
 + 
 +[root@centos7 ~]# w 
 + 14:43:49 up  4:05,  2 users,  load average: 0.92, 1.23, 0.95 
 +USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT 
 +trainee  :0       :              Wed09   ?xdm?  40:01   0.74s gdm-session-worker [pam/gdm-password] 
 +trainee  pts/0    :0               Wed10    5.00s  0.65s 26.90s /usr/libexec/gnome-terminal-server 
 +</code> 
 + 
 +Les valeurs **load average** ou //charge moyenne// indiquent le nombre moyen de processus en cours de traitement ou en attente pour la période concernée. 
 + 
 +Par exemple si les valeurs sur un système muni d'un seul processeur étaient **3,48  4,00  3,85** ceci indiquerait que le processeur a du mal à traiter les processus mettant en moyenne : 
 + 
 +  * 2,48 processus en attente dans la dernière minute, 
 +  * 3,00 processus en attente dans les dernières 5 minutes, 
 +  * 2,85 processus en attente dans les dernières 15 minutes. 
 + 
 +Les options de ces commandes sont : 
 + 
 +<code> 
 +[root@centos7 ~]# uptime --help 
 + 
 +Usage: 
 + uptime [options] 
 + 
 +Options: 
 + -p, --pretty   show uptime in pretty format 
 + -h, --help     display this help and exit 
 + -s, --since    system up since 
 + -V, --version  output version information and exit 
 + 
 +For more details see uptime(1). 
 + 
 +[root@centos7 ~]# w --help 
 + 
 +Usage: 
 + w [options] 
 + 
 +Options: 
 + -h, --no-header     do not print header 
 + -u, --no-current    ignore current process username 
 + -s, --short         short format 
 + -f, --from          show remote hostname field 
 + -o, --old-style     old style output 
 + -i, --ip-addr       display IP address instead of hostname (if possible) 
 + 
 +     --help     display this help and exit 
 + -V, --version  output version information and exit 
 + 
 +For more details see w(1). 
 +</code> 
 + 
 +==iostat== 
 + 
 +La commande **iostat** affiche des statistiques sur l'utilisation des disques, des terminaux et des lecteurs de cartouche : 
 + 
 +<code> 
 +[root@centos7 ~]# iostat 
 +Linux 3.10.0-229.4.2.el7.x86_64 (centos7.fenestros.loc) 11/02/2015 _x86_64_ (1 CPU) 
 + 
 +avg-cpu:  %user   %nice %system %iowait  %steal   %idle 
 +           9.00    0.14    2.67    0.29    0.00   87.90 
 + 
 +Device:            tps    kB_read/   kB_wrtn/   kB_read    kB_wrtn 
 +scd0              0.00         0.00         0.00         66          0 
 +sda               2.56        95.04        37.09    1409026     549881 
 +</code> 
 + 
 +Au-dessous de la première ligne indiquant la version du noyau du système et son nom d'hôte ainsi que la date actuelle, iostat affiche une vue d'ensemble de l'utilisation CPU moyenne du système depuis le dernier démarrage. Le rapport d'utilisation du CPU inclut les pourcentages suivants : 
 + 
 +  * Pourcentage de temps passé en mode utilisateur (exécutant des applications, etc.) 
 +  * Pourcentage de temps passé en mode utilisateur (pour les processus qui ont modifié leur priorité de programmation à l'aide de la commande nice) 
 +  * Pourcentage de temps passé en mode noyau 
 +  * Pourcentage de temps passé en inactivité 
 + 
 +Notez la valeur de **%iowait**. Dans le cas où ce pourcentage est trop élévé, ceci indique que le processeur passe son temps à attendre les entrées et les sorties de disque. 
 + 
 +Pour surveiller la vitesse des entrées et des sorties du disque, vous pouvez utiliser la commande **hdparm**. 
 + 
 +Sous RHEL/CentOS 7, la commande **hdparm** n'est pas disponible par défaut. Installez donc le paquet **hdparm** : 
 + 
 +<code> 
 +[root@centos7 ~]# yum install hdparm 
 +</code> 
 + 
 +<code> 
 +[root@centos7 ~]# hdparm -t /dev/sda 
 + 
 +/dev/sda: 
 + Timing buffered disk reads: 254 MB in  3.02 seconds =  84.19 MB/sec 
 +</code> 
 + 
 +Au-dessous du rapport d'utilisation du CPU de la sortie de la commande **iostat** figure le rapport d'utilisation des périphériques. Ce dernier contient une ligne pour chaque périphérique disque du système et inclut les informations suivantes : 
 + 
 +  La spécification du périphérique, apparaissant sous la forme dev<major-number>-sequence-number où <major-number> correspond au nombre majeur du périphérique et <sequence-number> correspond à un numéro de séquence commençant par zéro. 
 +  Le nombre de transferts (ou opérations d'E/S) par seconde. 
 +  * Le nombre de blocs de 512 octets lus par seconde. 
 +  * Le nombre de blocs de 512 octets écrits par seconde. 
 +  * Le nombre total de blocs de 512 octets lus par seconde. 
 +  * Le nombre total de blocs de 512 octets écrits par seconde. 
 + 
 +Les options de cette commande sont : 
 + 
 +<code> 
 +[root@centos7 ~]# iostat --help 
 +Usage: iostat [ options ] [ <interval> [ <count> ] ] 
 +Options are: 
 +[ -c ] [ -d ] [ -h ] [ -k | -m ] [ -N ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ] 
 +[ -j { ID | LABEL | PATH | UUID | ... } ] 
 +[ [ -T ] -g <group_name> ] [ -p [ <device> [,...] | ALL ] ] 
 +[ <device> [...] | ALL ] 
 +</code> 
 + 
 +==vmstat== 
 + 
 +La commande **vmstat** affiche des statistiques sur la mémoire, la pagination et la charge ponctuelle du processeur : 
 + 
 +<code> 
 +[root@centos7 ~]# vmstat 1 10 
 +procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- 
 +  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st 
 +  0   4600 352560     20 620332    0    0   114    37  157  236  9  3 88  0  0 
 +  0   4600 352736     20 620368    0    0          231  310 29  7 63  0  0 
 +  0   4600 352736     20 620368    0    0          223  318 32  7 60  0  0 
 +  0   4600 352776     20 620328    0    0          250  339 34  9 57  0  0 
 +  0   4600 352776     20 620328    0    0          215  285 30  9 61  0  0 
 +  0   4600 352776     20 620328    0    0          234  326 31  7 61  0  0 
 +  0   4600 352776     20 620328    0    0          219  306 31  8 62  0  0 
 +  0   4600 352776     20 620328    0    0          223  298 29  7 63  0  0 
 +  0   4600 352776     20 620328    0    0          223  314 32  7 60  0  0 
 +  0   4600 352776     20 620332    0    0          238  309 34  7 59  0  0 
 +</code> 
 + 
 +La première ligne subdivise le champ en six catégories à savoir : processus, mémoire, swap, E/S, système et CPU sur lesquelles elle donne des statistiquesLa seconde ligne identifie de manière encore plus détaillée chacun des champspermettant ainsi de parcourir simplement et rapidement l'ensemble des données lors de la recherche de statistiques spécifiques. 
 + 
 +Les champs relatifs aux processus sont les suivants : 
 + 
 +  * r — Le nombre de processus exécutables attendant d'avoir accès au CPU 
 +  * b — Le nombre de processus exécutables dans un état de veille qui ne peut être interrompu 
 + 
 +Les champs relatifs à la mémoire sont les suivants : 
 + 
 +  * swpd — La quantité de mémoire virtuelle utilisée 
 +  * free — La quantité de mémoire libre 
 +  * buff — La quantité de mémoire utilisée par les tampons (ou buffers) 
 +  * cache — La quantité de mémoire utilisée comme cache de pages 
 + 
 +Les champs relatifs au swap sont les suivants : 
 + 
 +  * si — La quantité de mémoire chargée depuis le disque 
 +  * so — La quantité de mémoire déchargée sur le disque 
 + 
 +Les champs relatifs aux Entrées/Sorties (E/S) sont les suivants : 
 + 
 +  * bi — Blocs envoyés vers un périphérique blocs 
 +  * bo— Blocs reçus d'un périphérique blocs  
 + 
 +Les champs relatifs au système sont les suivants : 
 + 
 +  * in — Nombre d'interruptions par seconde 
 +  * cs — Nombre de changements de contexte par seconde 
 + 
 +Les champs relatifs au CPU sont les suivants : 
 + 
 +  * us — Le pourcentage de temps pendant lequel le CPU exécute un code de niveau utilisateur 
 +  * sy — Le pourcentage de temps pendant lequel le CPU exécute un code de niveau système 
 +  * id — Le pourcentage de temps pendant lequel le CPU était inoccupé 
 +  * wa — Attente d'E/
 + 
 +Les options de cette commande sont : 
 + 
 +<code> 
 +[root@centos7 ~]# vmstat --help 
 + 
 +Usage: 
 + vmstat [options] [delay [count]] 
 + 
 +Options: 
 + -a, --active           active/inactive memory 
 + -f, --forks            number of forks since boot 
 + -m, --slabs            slabinfo 
 + -n, --one-header       do not redisplay header 
 + -s, --stats            event counter statistics 
 + -d, --disk             disk statistics 
 + -D, --disk-sum         summarize disk statistics 
 + -p, --partition <dev>  partition specific statistics 
 + -S, --unit <char>      define display unit 
 + -w, --wide             wide output 
 + -t, --timestamp        show timestamp 
 + 
 + -h, --help     display this help and exit 
 + -V, --version  output version information and exit 
 + 
 +For more details see vmstat(8). 
 +</code> 
 + 
 +<WRAP center round important> 
 +**Important** : Par défaut la commande vmstat affiche des informations depuis le démarrage du système. 
 +</WRAP> 
 + 
 +==mpstat== 
 + 
 +La commande **mpstat** affiche des statistiques détaillées sur le CPU : 
 + 
 +<code> 
 +[root@centos7 ~]# mpstat 
 +Linux 3.10.0-229.4.2.el7.x86_64 (centos7.fenestros.loc) 11/02/2015 _x86_64_ (1 CPU) 
 + 
 +03:19:32 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle 
 +03:19:32 PM  all    9.38    0.14    2.52    0.31    0.00    0.24    0.00    0.00    0.00   87.42 
 +</code> 
 + 
 +Dans le cas où vous avez plusieurs processeurs ou coeurs, vous pouvez visualiser ces mêmes informations par unité de traitement : 
 + 
 +<code> 
 +[root@centos7 ~]# mpstat -P ALL 
 +Linux 3.10.0-229.4.2.el7.x86_64 (centos7.fenestros.loc) 11/02/2015 _x86_64_ (1 CPU) 
 + 
 +03:20:06 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle 
 +03:20:06 PM  all    9.42    0.14    2.53    0.31    0.00    0.24    0.00    0.00    0.00   87.36 
 +03:20:06 PM    0    9.42    0.14    2.53    0.31    0.00    0.24    0.00    0.00    0.00   87.36 
 +</code> 
 + 
 +Pour afficher 5 jeux de statistiques à des intervales de 2 secondes pour tous les unités de traitement, il convient d'utiliser la commande suivante : 
 + 
 +<code> 
 +[root@centos7 ~]# mpstat -P ALL 2 5 
 +Linux 3.10.0-229.4.2.el7.x86_64 (centos7.fenestros.loc) 11/02/2015 _x86_64_ (1 CPU) 
 + 
 +03:20:43 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle 
 +03:20:45 PM  all   27.46    0.00    7.04    0.00    0.00    0.00    0.00    0.00    0.00   65.49 
 +03:20:45 PM    0   27.46    0.00    7.04    0.00    0.00    0.00    0.00    0.00    0.00   65.49 
 + 
 +03:20:45 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle 
 +03:20:47 PM  all   24.83    0.00    5.37    0.00    0.00    0.67    0.00    0.00    0.00   69.13 
 +03:20:47 PM    0   24.83    0.00    5.37    0.00    0.00    0.67    0.00    0.00    0.00   69.13 
 + 
 +03:20:47 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle 
 +03:20:49 PM  all   17.95    0.00    4.49    0.00    0.00    0.00    0.00    0.00    0.00   77.56 
 +03:20:49 PM    0   17.95    0.00    4.49    0.00    0.00    0.00    0.00    0.00    0.00   77.56 
 + 
 +03:20:49 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle 
 +03:20:51 PM  all   18.18    0.00    3.90    0.00    0.00    0.00    0.00    0.00    0.00   77.92 
 +03:20:51 PM    0   18.18    0.00    3.90    0.00    0.00    0.00    0.00    0.00    0.00   77.92 
 + 
 +03:20:51 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle 
 +03:20:53 PM  all   24.14    0.00    6.21    0.00    0.00    0.00    0.00    0.00    0.00   69.66 
 +03:20:53 PM    0   24.14    0.00    6.21    0.00    0.00    0.00    0.00    0.00    0.00   69.66 
 + 
 +Average:     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle 
 +Average:     all   22.39    0.00    5.36    0.00    0.00    0.13    0.00    0.00    0.00   72.12 
 +Average:         22.39    0.00    5.36    0.00    0.00    0.13    0.00    0.00    0.00   72.12 
 +</code> 
 + 
 +Les options de cette commande sont : 
 + 
 +<code> 
 +[root@centos7 ~]# mpstat --help 
 +Usage: mpstat [ options ] [ <interval> [ <count> ] ] 
 +Options are: 
 +[ -A ] [ -u ] [ -V ] [ -I { SUM | CPU | SCPU | ALL } ] 
 +[ -P { <cpu> [,...] | ON | ALL } ] 
 +</code> 
 + 
 +==sar== 
 + 
 +La commande **sar** permet de surveiller toutes les ressources du système selon l'option qui est passée en argument à la commande. Quelques options importantes sont : 
 + 
 +^ Option ^ Description ^ 
 +| -u | Pourcentage d'utilisation du CPU | 
 +| -q | Nombre de processus en attente | 
 +| -r | Utilisation de la mémoire centrale | 
 +| -w | Surveillance du swapping | 
 +| -p | Surveillance de la pagination | 
 +| -b | Utilisation des tampons | 
 +| -d | Utilisation des disques | 
 + 
 +Sous RHEL/CentOS 7 la commande **/usr/lib64/sa/sadc** permet de collecter les informations : 
 + 
 +<code> 
 +[root@centos7 ~]# ls /usr/lib64/sa 
 +sa1  sa2  sadc 
 +</code> 
 + 
 +Le script **/usr/lib64/sa/sa1** exécute la commande **sadc**. Ce script prend deux options : 
 + 
 +^ Option ^ Description ^ 
 +| -t | L'interval entre les collectes | 
 +| -n | Nombre de collectes | 
 + 
 +Le script **/usr/lib64/sa/sa2** exécute la commande **sar** et consigne les informations dans un fichier au format **/var/log/sa/sar<jj>**.  
 + 
 +Pour pouvoir fonctionner correctement, ces scripts doivent être appelés par **cron**.  
 + 
 +Modifiez le fichier **/etc/cron.d/sysstat** ainsi : 
 + 
 +<code> 
 +[root@centos7 ~]# cat /etc/cron.d/sysstat 
 +# Run system activity accounting tool every 10 minutes 
 +# */10 * * * * root /usr/lib64/sa/sa1 1 1 
 +*/2 * * * * root /usr/lib64/sa/sa1 1 1 
 +# 0 * * * * root /usr/lib64/sa/sa1 600 6 & 
 +# Generate a daily summary of process accounting at 23:53 
 +53 23 * * * root /usr/lib64/sa/sa2 -A 
 +</code> 
 + 
 +Attendez deux minutes puis saisissez les commandes suivantes : 
 + 
 +<code> 
 +[root@centos7 ~]# sar 
 +Linux 3.10.0-229.4.2.el7.x86_64 (centos7.fenestros.loc) 11/02/2015 _x86_64_ (1 CPU) 
 + 
 +02:20:02 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle 
 +02:30:01 PM     all     12.95      0.01      3.36      0.01      0.00     83.67 
 +02:40:01 PM     all     27.64      0.50      7.84      0.06      0.00     63.96 
 +02:50:01 PM     all     11.56      2.46      4.59      1.18      0.00     80.21 
 +03:00:01 PM     all      0.45      0.01      0.64      0.03      0.00     98.88 
 +03:10:01 PM     all      0.38      0.01      0.61      0.01      0.00     98.98 
 +03:20:01 PM     all     25.80      0.02      6.68      0.85      0.00     66.66 
 +03:28:02 PM     all     21.59      0.06      6.84      0.21      0.00     71.31 
 +03:30:01 PM     all     22.88      0.01      5.76      0.00      0.00     71.35 
 +03:32:01 PM     all     11.34      0.01      2.99      0.11      0.00     85.55 
 +Average:        all     13.21      0.41      4.01      0.30      0.00     82.06 
 +</code> 
 + 
 +<code> 
 +[root@centos7 ~]# sar -u 5 3 
 +Linux 3.10.0-229.4.2.el7.x86_64 (centos7.fenestros.loc) 11/02/2015 _x86_64_ (1 CPU) 
 + 
 +03:34:01 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle 
 +03:34:06 PM     all     29.73      0.00     14.19      0.00      0.00     56.08 
 +03:34:11 PM     all     17.62      0.00      4.40      0.00      0.00     77.98 
 +03:34:16 PM     all      4.75      0.00      1.30      0.00      0.00     93.95 
 +Average:        all     15.55      0.00      5.68      0.00      0.00     78.78 
 +</code> 
 + 
 +<code> 
 +[root@centos7 ~]# sar -r 5 3 
 +Linux 3.10.0-229.4.2.el7.x86_64 (centos7.fenestros.loc) 11/02/2015 _x86_64_ (1 CPU) 
 + 
 +03:34:48 PM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty 
 +03:34:53 PM    137708   1653916     92.31        20    561940   2950052     60.66    776232    539396        12 
 +03:34:58 PM    130988   1660636     92.69        20    566552   3000196     61.69    779820    542436        20 
 +03:35:03 PM    131360   1660264     92.67        20    566584   2999016     61.66    779288    542472        48 
 +Average:       133352   1658272     92.56        20    565025   2983088     61.33    778447    541435        27 
 +</code> 
 + 
 +<code> 
 +[root@centos7 ~]# sar -w 5 3 
 +Linux 3.10.0-229.4.2.el7.x86_64 (centos7.fenestros.loc) 11/02/2015 _x86_64_ (1 CPU) 
 + 
 +03:35:51 PM    proc/  cswch/
 +03:35:56 PM      0.00    608.04 
 +03:36:01 PM      1.06    531.75 
 +03:36:06 PM     25.94   1226.28 
 +Average:         8.36    767.19 
 +</code> 
 + 
 +<code> 
 +[root@centos7 ~]# sar -b 5 3 
 +Linux 3.10.0-229.4.2.el7.x86_64 (centos7.fenestros.loc) 11/02/2015 _x86_64_ (1 CPU) 
 + 
 +03:36:09 PM       tps      rtps      wtps   bread/  bwrtn/
 +03:36:14 PM      0.00      0.00      0.00      0.00      0.00 
 +03:36:19 PM      0.00      0.00      0.00      0.00      0.00 
 +03:36:24 PM      2.32      0.00      2.32      0.00     31.79 
 +Average:         0.89      0.00      0.89      0.00     12.25 
 +</code> 
 + 
 +<code> 
 +[root@centos7 ~]# sar -d 5 3 
 +Linux 3.10.0-229.4.2.el7.x86_64 (centos7.fenestros.loc) 11/02/2015 _x86_64_ (1 CPU) 
 + 
 +03:36:46 PM       DEV       tps  rd_sec/ wr_sec/ avgrq-sz  avgqu-sz     await     svctm     %util 
 +03:36:51 PM   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00 
 +03:36:51 PM    dev8-0      0.31      0.00      2.45      8.00      0.00      0.00      0.00      0.00 
 + 
 +03:36:51 PM       DEV       tps  rd_sec/ wr_sec/ avgrq-sz  avgqu-sz     await     svctm     %util 
 +03:36:56 PM   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00 
 +03:36:56 PM    dev8-0      4.31      0.00     55.38     12.86      0.04      9.36      1.93      0.83 
 + 
 +03:36:56 PM       DEV       tps  rd_sec/ wr_sec/ avgrq-sz  avgqu-sz     await     svctm     %util 
 +03:37:01 PM   dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00 
 +03:37:01 PM    dev8-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00 
 + 
 +Average:          DEV       tps  rd_sec/ wr_sec/ avgrq-sz  avgqu-sz     await     svctm     %util 
 +Average:      dev11-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00 
 +Average:       dev8-0      1.49      0.00     18.63     12.53      0.01      8.73      1.80      0.27 
 +</code> 
 + 
 +<code> 
 +[root@centos7 ~]# sar -p 5 3 
 +Linux 3.10.0-229.4.2.el7.x86_64 (centos7.fenestros.loc) 11/02/2015 _x86_64_ (1 CPU) 
 + 
 +03:37:16 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle 
 +03:37:21 PM     all     38.30      0.00      7.31      0.00      0.00     54.39 
 +03:37:26 PM     all     45.81      0.00      9.58      0.00      0.00     44.61 
 +03:37:31 PM     all     33.33      0.00      7.67      0.00      0.00     59.00 
 +Average:        all     39.11      0.00      8.18      0.00      0.00     52.71 
 +</code> 
 + 
 +<code> 
 +[root@centos7 ~]# sar -v 5 3 
 +Linux 3.10.0-229.4.2.el7.x86_64 (centos7.fenestros.loc) 11/02/2015 _x86_64_ (1 CPU) 
 + 
 +03:38:44 PM dentunusd   file-nr  inode-nr    pty-nr 
 +03:38:49 PM    136266      5792    122548         2 
 +03:38:54 PM    136266      5792    122548         2 
 +03:38:59 PM    136266      5792    122548         2 
 +Average:       136266      5792    122548         2 
 +</code> 
 + 
 +Les options de cette commande sont : 
 + 
 +<code> 
 +[root@centos7 ~]# sar --help 
 +Usage: sar [ options ] [ <interval> [ <count> ] ] 
 +Options are: 
 +[ -A ] [ -B ] [ -b ] [ -C ] [ -d ] [ -H ] [ -h ] [ -p ] [ -q ] [ -R ] 
 +[ -r ] [ -S ] [ -t ] [ -u [ ALL ] ] [ -V ] [ -v ] [ -W ] [ -w ] [ -y ] 
 +[ -I { <int> [,...] | SUM | ALL | XALL } ] [ -P { <cpu> [,...] | ALL } ] 
 +[ -m { <keyword> [,...] | ALL } ] [ -n { <keyword> [,...] | ALL } ] 
 +[ -j { ID | LABEL | PATH | UUID | ... } ] 
 +[ -f [ <filename> ] | -o [ <filename> ] | -[0-9]+ ] 
 +[ -i <interval> ] [ -s [ <hh:mm:ss> ] ] [ -e [ <hh:mm:ss> ] ] 
 +</code> 
 + 
 +===Utilisation des commandes en production=== 
 + 
 +==Identifier un système limité par le processeur== 
 + 
 +Dans ce cas utilisez les commandes suivantes : 
 + 
 +  * uptime ou w 
 +  * vmstat 
 +  * mpstat -P ALL 
 +  * sar -u 
 +  * iostat -c 
 + 
 +==Identifier un système ayant un problème de mémoire== 
 + 
 +Dans ce cas utilisez les commandes suivantes : 
 + 
 +  * free 
 +  * sar -B 
 + 
 + 
 +==Identifier un système ayant un problème d'E/S== 
 + 
 +Utilisez la commande : 
 + 
 +  * iostat -d -x 
 + 
 + 
 +=====Modules usb===== 
 + 
 +L'**USB** (//Universal Serial Bus//) est un bus de données qui peut offrir des taux de transfert jusqu'à 480Mb/s sous la version 2.0 et jusqu'à 4.8 Gb/s sous la version 3.0. Les modules nécessaires pour les contrôleurs USB sont : 
 + 
 +^ Version USB ^ Module ^ Nom Complet ^ 
 +|  1.0\1.1  | **UHCI** | //Universal Controller Host Interface// | 
 +|  :::  | **OHCI** | //Open Controller Host Interface// | 
 +|  2.0  | **EHCI** | //Enhanced Host Controller Interface// | 
 +|  3.0  | **XHCI** | //Extensible Host Controller Interface// | 
 + 
 +Le tableau suivant liste les modules courrament chargés en fonction du périphérique utilisé : 
 + 
 +^ Module ^ Type de Périphérique ^  
 +|  **usb_storage**  | Supports de masse | 
 +|  **usbhid**  | Periphériques HID (//Human Interface Device//) | 
 +|  **snd-usb-audio**  | Cartes son usb | 
 +|  **usbvidéo**  | Cartes vidéo et d'acquisition | 
 +|  **irda-usb**  | Périphériques infrarouges | 
 +|  **usbnet**  | Cartes réseaux usb | 
 + 
 +Les modules peuvent être chargés par un des moyens suivants : 
 + 
 +  * INITrd, 
 +  * Le processus init, 
 +  * kmod, d'une manière dynamique et transparente lors du branchement du périphérique, en utilisant le fichier **/lib/modules/2.6.18-194.3.1.el5/modules.usbmap**, 
 +  * udev, 
 +  * manuellement.
  
 <WRAP center round todo> <WRAP center round todo>
-Recherchez la signification des termes Layout, Chunk size, Major et Minor.+**A faire** : Branchez une clef USB avant de continuer. Si vous utilisez %%VirtualBox%%, activez la clef dans votre machine virtuelle grâce aux menus **Périphériques > Périphériques USB > le_nom_de_votre_clef**.
 </WRAP> </WRAP>
  
-Cependantil necéssaire de renseigner le fichier **/etc/mdadm.conf** afin que le RAID soit contruit à chaque démarrage :+=====udev===== 
 + 
 +Depuis le noyau Linux 2.6 Linux est capable de détecter des périphériques branchés à chaud. Cette technologie s'appelle le **//hotplugging//**. Le //hotplugging// est obtenu grâce à l'utilisation de trois composants : 
 + 
 +  * Udev, 
 +  * HAL, 
 +  * Dbus. 
 + 
 +Les rôles de chaque composant sont les suivants : 
 + 
 +  * Udev se charge de créer et supprimer d'une manière dynamique les nœuds dans le répertoire **/dev**, 
 +  * HAL obtient des informations à partir d'Udev et créé un fichier au format XML représentant le périphérique branché. Il informe ensuite Nautilus en utilisant le Dbus, 
 +  * Dbus joue le rôle d'un bus système qui est utilisé pour la communication inter-processus. 
 + 
 +Lors de démarrage de Linux, Udev joue un rôle important : 
 + 
 +  * Au démarrage **tmpfs** est monté sur /dev, 
 +  * Udev copie les éventuels nœuds statiques de **/lib/udev/devices** vers /dev, 
 +  * le démon **udevd** collecte des données appelées **uevents** du noyau et cherche une règle correspondante dans le répertoire **/lib/udev/rules.d/**
 +  * Udev crée les nœuds et liens symboliques spécifiés dans la règle identifiée, 
 +  * Udev stocke les règles contenues dans **/lib/udev/rules.d/*.rules** en mémoire, 
 +  * En cas de modification des ces règles, Udev met à jour la mémoire. 
 + 
 +Udev repose sur le filesystem **sysfs** monté sur /sys qui permet de rendre les périphériques visibles à Udev dans l'//User Space//. Par exemple, lors du branchement d'une clé USB, Udev crée **/dev/sdb1** automatiquement et utilise les informations contenues dans le fichier **/lib/modules/`uname -r`/modules.alias** pour trouver le pilote nécessaire : 
 + 
 +Le fichier de configuration principal d'Udev est **/etc/udev/udev.conf** :
  
 <code> <code>
-[root@centos7 ~]# echo 'DEVICES /dev/sda5 /dev/sda8 /dev/sda11'/etc/mdadm.conf +[root@centos7 ~]# cat /etc/udev/udev.conf 
-[root@centos7 ~]# mdadm --detail --scan >> /etc/mdadm.conf  +see udev(7) for details 
-[root@centos7 ~]cat /etc/mdadm.conf + 
-DEVICES /dev/sda5 /dev/sda8 /dev/sda11 +#udev_log="info"
-ARRAY /dev/md1 metadata=1.2 name=centos7.fenestros.loc:1 UUID=fd8bac53:1457a4f4:30feab84:e0f9d8e0+
 </code> </code>
  
-Chaque unité peut être examinée individuellement :+Les fichiers de règles se trouvent dans **/lib/udev/rules.d/** :
  
 <code> <code>
-[root@centos7 ~]# mdadm --examine /dev/sda5 +[root@centos7 ~]# ls /lib/udev/rules.d
-/dev/sda5: +10-dm.rules                       61-gnome-bluetooth-rfkill.rules  77-mm-ericsson-mbm.rules                  90-iprutils.rules 
-          Magic : a92b4efc +11-dm-lvm.rules                   62-multipath.rules               77-mm-huawei-net-port-types.rules         90-pulseaudio.rules 
-        Version : 1.2 +11-dm-mpath.rules                 63-md-raid-arrays.rules          77-mm-longcheer-port-types.rules          90-vconsole.rules 
-    Feature Map : 0x0 +13-dm-disk.rules                  64-btrfs.rules                   77-mm-nokia-port-types.rules              91-drm-modeset.rules 
-     Array UUID : fd8bac53:1457a4f4:30feab84:e0f9d8e0 +40-libgphoto2.rules               65-libwacom.rules                77-mm-pcmcia-device-blacklist.rules       95-cd-devices.rules 
-           Name : centos7.fenestros.loc:1  (local to host centos7.fenestros.loc) +40-redhat.rules                   65-md-incremental.rules          77-mm-platform-serial-whitelist.rules     95-dm-notify.rules 
-  Creation Time : Tue Aug  2 15:10:12 2016 +40-usb_modeswitch.rules           65-sane-backends.rules           77-mm-simtech-port-types.rules            95-udev-late.rules 
-     Raid Level raid5 +42-usb-hid-pm.rules               69-cd-sensors.rules              77-mm-telit-port-types.rules              95-upower-battery-recall-dell.rules 
-   Raid Devices 3+50-rbd.rules                      69-dm-lvm-metad.rules            77-mm-usb-device-blacklist.rules          95-upower-battery-recall-fujitsu.rules 
 +50-udev-default.rules             69-libmtp.rules                  77-mm-usb-serial-adapters-greylist.rules  95-upower-battery-recall-gateway.rules 
 +56-hpmud.rules                    69-xorg-vmmouse.rules            77-mm-x22x-port-types.rules               95-upower-battery-recall-ibm.rules 
 +60-alias-kmsg.rules               70-power-switch.rules            77-mm-zte-port-types.rules                95-upower-battery-recall-lenovo.rules 
 +60-cdrom_id.rules                 70-printers.rules                77-nm-olpc-mesh.rules                     95-upower-battery-recall-toshiba.rules 
 +60-fprint-autosuspend.rules       70-spice-vdagentd.rules          78-sound-card.rules                       95-upower-csr.rules 
 +60-keyboard.rules                 70-touchpad-quirks.rules         80-drivers.rules                          95-upower-hid.rules 
 +60-net.rules                      70-uaccess.rules                 80-kvm.rules                              95-upower-wup.rules 
 +60-persistent-alsa.rules          70-wacom.rules                   80-mm-candidate.rules                     97-bluetooth-serial.rules 
 +60-persistent-input.rules         71-biosdevname.rules             80-net-name-slot.rules                    98-kexec.rules 
 +60-persistent-serial.rules        71-seat.rules                    80-udisks2.rules                          98-rdma.rules 
 +60-persistent-storage.rules       73-idrac.rules                   81-kvm-rhel.rules                         99-qemu-guest-agent.rules 
 +60-persistent-storage-tape.rules  73-seat-late.rules               85-regulatory.rules                       99-systemd.rules 
 +60-persistent-v4l.rules           75-net-description.rules         85-usbmuxd.rules 
 +60-raw.rules                      75-probe_mtd.rules               90-alsa-restore.rules 
 +61-accelerometer.rules            75-tty-description.rules         90-alsa-tools-firmware.rules 
 +</code> 
 + 
 +<WRAP center round important> 
 +**Important** Il vous est possible d'ajouter des règles si besoin est. Dans ce cas, créez un fichier **99-local.rules** est éditez-le au lieu d'éditer les fichiers existants. 
 +</WRAP> 
 + 
 +Comme indique le nom de chaque fichier, le contenu est composé de règles à l'attention d'udev. Le fichier des règles par défaut est le **50-udev-default.rules** : 
 + 
 +<code> 
 +[root@centos7 ~]# cat /lib/udev/rules.d/50-udev-default.rules | more 
 +# do not edit this file, it will be overwritten on update 
 + 
 +SUBSYSTEM=="virtio-ports", KERNEL=="vport*", ATTR{name}=="?*", SYMLINK+="virtio-ports/$attr{name}" 
 + 
 +# select "system RTC" or just use the first one 
 +SUBSYSTEM=="rtc", ATTR{hctosys}=="1", SYMLINK+="rtc" 
 +SUBSYSTEM=="rtc", KERNEL=="rtc0", SYMLINK+="rtc", OPTIONS+="link_priority=-100" 
 + 
 +SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", IMPORT{builtin}="usb_id", IMPORT{builtin}="hwdb --subsystem=usb" 
 +SUBSYSTEM=="input", ENV{ID_INPUT}=="", IMPORT{builtin}="input_id" 
 +ENV{MODALIAS}!="", IMPORT{builtin}="hwdb --subsystem=$env{SUBSYSTEM}" 
 + 
 +ACTION!="add", GOTO="default_permissions_end"
  
- Avail Dev Size : 1021952 (499.08 MiB 523.24 MB) +SUBSYSTEM=="tty", KERNEL=="ptmx", GROUP="tty", MODE="0666" 
-     Array Size : 1021952 (998.17 MiB 1046.48 MB) +SUBSYSTEM=="tty", KERNEL=="tty", GROUP="tty", MODE="0666" 
-    Data Offset : 2048 sectors +SUBSYSTEM=="tty", KERNEL=="tty[0-9]*", GROUP="tty", MODE="0620" 
-   Super Offset : 8 sectors +SUBSYSTEM=="tty", KERNEL=="sclp_line[0-9]*", GROUP="tty", MODE="0620" 
-   Unused Space : before=1960 sectorsafter=0 sectors +SUBSYSTEM=="tty"KERNEL=="ttysclp[0-9]*", GROUP="tty", MODE="0620" 
-          State : clean +SUBSYSTEM=="tty", KERNEL=="3270/tty[0-9]*", GROUP="tty", MODE="0620" 
-    Device UUID : 4569e15e:20201bce:365776f2:75aed23f+SUBSYSTEM=="vc", KERNEL=="vcs*|vcsa*", GROUP="tty" 
 +KERNEL=="tty[A-Z]*[0-9]|pppox[0-9]*|ircomm[0-9]*|noz[0-9]*|rfcomm[0-9]*", GROUP="dialout"
  
-    Update Time : Tue Aug  2 15:10:17 2016 +SUBSYSTEM=="mem", KERNEL=="mem|kmem|port", GROUP="kmem", MODE="0640"
-  Bad Block Log : 512 entries available at offset 72 sectors +
-       Checksum : 4c9948d0 - correct +
-         Events : 18+
  
-         Layout : left-symmetric +SUBSYSTEM=="input", KERNEL=="js[0-9]*", MODE="0664"
-     Chunk Size : 512K+
  
-   Device Role : Active device 0 +SUBSYSTEM=="video4linux"GROUP="video" 
-   Array State : AAA ('A' == active'.' == missing'R' == replacing)+SUBSYSTEM=="misc"KERNEL=="agpgart", GROUP="video" 
 +--More--
 </code> </code>
  
-A ce stade il est intéressant de noter comment réagir lors d'une défaillance d'un disque. Dans notre cas nous allons indiquer au système que la partition /dev/sda5 est devenue défaillante :+Chaque règle prend la forme suivante : 
 + 
 +KEY, [KEY, ...] NAME [, SYMLINK] 
 + 
 +Chaque KEY est un champ au format **type=valeur** qui doit correspondre à un périphérique unique. La valeur de type peut prendre plusieurs formes : 
 + 
 +^ Type ^ Description ^ Exemples ^ 
 +| BUS | Type de bus | usb, scsi, ide | 
 +| KERNEL | Le nom par défault du périphérique donné par le noyau | hda, ttyUSB0, lp0 | 
 +| SUBSYSTEM | Le nom noyau du sous-système, généralement identique à la valeur du BUS | usb, scsi | 
 +| DRIVER | Le nom du pilote qui contrôle le périphérique | usb-storage | 
 +| ID | Le numéro du périphérique sur son bus | PCI bus id, USB id | 
 +| PLACE | Ne concerne que les périphériques USB et donne la position topologique du périphérique sur son bus | S/O | 
 +| SYSFS{filename} | Le nom du fichier dans /sys pour le périphérique. Ce fichier contient le fabricant, le label, le numéro de série et UUID du périphérique. La vérification de jusqu'à 5 fichiers est possible par règle | S/O | 
 +| PROGRAM | Ceci permet à Udev d'appeler un programme externe pour nommer un périphérique | S/O | 
 +| RESULT | Valeur à comparer au résultat de PROGRAM | S/O | 
 + 
 +NAME et SYMLINK sont utilisées pour stipuler ce que Udev doit faire avec le périphérique : 
 + 
 +^ Type ^ Description ^ Exemples ^ 
 +| NAME | Le nome du nœud dans /dev | S/O | 
 +| SYMLINK | Le ou les lien(s) symbolique(s) qui pointe(nt) vers le NAME | S/O | 
 + 
 +====La commande udevadm==== 
 + 
 +Pour obtenir de l'information sur un périphérique il convient d'utiliser la commande **udevadm** :
  
 <code> <code>
-[root@centos7 ~]# mdadm --manage --set-faulty /dev/md1 /dev/sda5 +[root@centos7 ~]# udevadm info --query=all -n /dev/sda 
-mdadmset /dev/sda5 faulty in /dev/md1+P: /devices/pci0000:00/0000:00:0d.0/ata3/host2/target2:0:0/2:0:0:0/block/sda 
 +N: sda 
 +S: disk/by-id/ata-VBOX_HARDDISK_VBc40eec8a-49b6b6f3 
 +E: DEVLINKS=/dev/disk/by-id/ata-VBOX_HARDDISK_VBc40eec8a-49b6b6f3 
 +EDEVNAME=/dev/sda 
 +E: DEVPATH=/devices/pci0000:00/0000:00:0d.0/ata3/host2/target2:0:0/2:0:0:0/block/sda 
 +E: DEVTYPE=disk 
 +E: ID_ATA=1 
 +E: ID_ATA_FEATURE_SET_PM=1 
 +E: ID_ATA_FEATURE_SET_PM_ENABLED=1 
 +E: ID_ATA_SATA=1 
 +E: ID_ATA_SATA_SIGNAL_RATE_GEN2=1 
 +E: ID_ATA_WRITE_CACHE=1 
 +E: ID_ATA_WRITE_CACHE_ENABLED=1 
 +E: ID_BUS=ata 
 +E: ID_MODEL=VBOX_HARDDISK 
 +E: ID_MODEL_ENC=VBOX\x20HARDDISK\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20 
 +E: ID_PART_TABLE_TYPE=dos 
 +E: ID_REVISION=1.0 
 +E: ID_SERIAL=VBOX_HARDDISK_VBc40eec8a-49b6b6f3 
 +E: ID_SERIAL_SHORT=VBc40eec8a-49b6b6f3 
 +E: ID_TYPE=disk 
 +E: MAJOR=8 
 +E: MINOR=0 
 +E: MPATH_SBIN_PATH=/sbin 
 +E: SUBSYSTEM=block 
 +E: TAGS=:systemd: 
 +E: USEC_INITIALIZED=957366
 </code> </code>
  
-L'utilisation de la ligne de commande suivante nous confirme le statut de /dev/sda5 :+===Les options de la commande=== 
 + 
 +Les options de la commande udevadm sont :
  
 <code> <code>
-[root@centos7 ~]# mdadm --detail /dev/md1 +[root@centos7 ~]# udevadm --help 
-/dev/md1+Usageudevadm [--help] [--version] [--debug] COMMAND [COMMAND OPTIONS] 
-        Version : 1.2 +  info         query sysfs or the udev database 
-  Creation Time : Tue Aug  2 15:10:12 2016 +  trigger      request events from the kernel 
-     Raid Level : raid5 +  settle       wait for the event queue to finish 
-     Array Size : 1021952 (998.17 MiB 1046.48 MB) +  control      control the udev daemon 
-  Used Dev Size : 510976 (499.08 MiB 523.24 MB) +  monitor      listen to kernel and udev events 
-   Raid Devices : 3 +  hwdb         maintain the hardware database index 
-  Total Devices : 3 +  test         test an event run 
-    Persistence : Superblock is persistent+  test-builtin test a built-in command
  
-    Update Time Tue Aug  2 15:14:59 2016 +[root@centos7 ~]# udevadm info --help 
-          State : clean, degraded  +Usageudevadm info OPTIONS 
- Active Devices : 2 +  --query=<type>             query device information
-Working Devices : 2 +      name                     name of device node 
- Failed Devices : 1 +      symlink                  pointing to node 
-  Spare Devices 0+      path                     sys device path 
 +      property                 the device properties 
 +      all                      all values 
 +  --path=<syspath>           sys device path used for query or attribute walk 
 +  --name=<name>              node or symlink name used for query or attribute walk 
 +  --root                     prepend dev directory to path names 
 +  --attribute-walk           print all key matches while walking along the chain 
 +                             of parent devices 
 +  --device-id-of-file=<file> print major:minor of device containing this file 
 +  --export                   export key/value pairs 
 +  --export-prefix            export the key name with a prefix 
 +  --export-db                export the content of the udev database 
 +  --cleanup-db               cleanup the udev database 
 +  --help 
 +</code>
  
-         Layout : left-symmetric +=====Système de fichiers /sys=====
-     Chunk Size : 512K+
  
-           Name : centos7.fenestros.loc:1  (local to host centos7.fenestros.loc) +Le système de fichiers virtuel **/sys** a été introduit avec le noyau Linux **2.6**Son rôle est de décrire le matériel pour udev.
-           UUID : fd8bac53:1457a4f4:30feab84:e0f9d8e0 +
-         Events : 20+
  
-    Number   Major   Minor   RaidDevice State +Saisissez la commande suivante :
-                    0        0      removed +
-                    8        1      active sync   /dev/sda8 +
-                   11        2      active sync   /dev/sda11+
  
-             8        5             faulty   /dev/sda5+<code> 
 +[root@centos7 ~]# ls -l /sys 
 +total 0 
 +drwxr-xr-x.   2 root root 0 Oct 28 09:40 block 
 +drwxr-xr-x.  24 root root 0 Oct 28 09:40 bus 
 +drwxr-xr-x.  45 root root 0 Oct 28 09:40 class 
 +drwxr-xr-x.   4 root root 0 Oct 28 09:40 dev 
 +drwxr-xr-x.  11 root root 0 Oct 28 09:40 devices 
 +drwxr-xr-x.   5 root root 0 Oct 28 09:40 firmware 
 +drwxr-xr-x.   6 root root 0 Oct 28 09:40 fs 
 +drwxr-xr-x.   2 root root 0 Oct 28 09:40 hypervisor 
 +drwxr-xr-x.   9 root root 0 Oct 28 09:40 kernel 
 +drwxr-xr-x. 146 root root 0 Oct 28 09:40 module 
 +drwxr-xr-x.   2 root root 0 Oct 28 09:40 power
 </code> </code>
  
-Il est maintenant nécessaire de supprimer /dev/sda5 de notre RAID 5 :+Chaque répertoire contient des informations : 
 + 
 +  * **block** 
 +    * contient des informations sur les périphériques bloc 
 +  * **bus** 
 +    * contient des informations sur les bus de données 
 +  * **class** 
 +    * contient des informations sur des classes de matériel 
 +  * **devices** 
 +    * contient des informations sur la position des périphériques sur les bus 
 +  * **firmware** 
 +    * contient, entre autre, des informations sur l'ACPI 
 +  * **module** 
 +    * contient des informations sur les modules du noyau 
 +  * **power** 
 +    * contient des informations sur la gestion de l'énergie 
 +  * **fs** 
 +    * contient des informations sur les systèmes de fichiers 
 + 
 +Pour illustrer ceci, saisissez la commande suivante :
  
 <code> <code>
-[root@centos7 ~]# mdadm --manage --remove /dev/md1 /dev/sda5 +[root@centos7 ~]# cat /sys/block/sda/sda1/size 
-mdadm: hot removed /dev/sda5 from /dev/md1+409600
 </code> </code>
  
-l'examen de notre RAIDon constate que /dev/sda5 a été supprimé :+Ce chiffre correspond aux nombre de secteurs. 
 + 
 +=====Limitation des ressources===== 
 + 
 +====ulimit==== 
 + 
 +Les ressources disponibles aux utilisateurs peuvent être limitées par l'utilisation de la commande **ulimit**.  
 + 
 +La commande **ulimit** gère deux types de limitela limite //hard// en utilisant l'option **-H** et la limite //soft// en utilisant l'option **-S**. Seul root peut positionner une limite //hard// et ceci à condition que la limite ne dépasse pas les ressources réelles. 
 + 
 +La limite //soft// est la limite imposée à l'utilisateur par défaut tandis que la limite //hard// est la limite que l'utilisateur peut atteindre en utilisant la commande ulimit lui-même. 
 + 
 +L'utilisateur root peut paramétrer les limites accordées en éditant la fichier **/etc/security/limits.conf** :
  
 <code> <code>
-[root@centos7 ~]# mdadm --detail /dev/md1 +[root@centos7 ~]# cat /etc/security/limits.conf 
-/dev/md1: +/etc/security/limits.conf 
-        Version : 1.2 +
-  Creation Time Tue Aug  2 15:10:12 2016 +#This file sets the resource limits for the users logged in via PAM
-     Raid Level raid5 +#It does not affect resource limits of the system services. 
-     Array Size 1021952 (998.17 MiB 1046.48 MB+
-  Used Dev Size : 510976 (499.08 MiB 523.24 MB+#Also note that configuration files in /etc/security/limits.d directory, 
-   Raid Devices 3 +#which are read in alphabetical order, override the settings in this 
-  Total Devices : 2 +#file in case the domain is the same or more specific. 
-    Persistence : Superblock is persistent+#That means for example that setting a limit for wildcard domain here 
 +#can be overriden with a wildcard setting in a config file in the 
 +#subdirectory, but a user specific setting here can be overriden only 
 +#with a user specific setting in the subdirectory. 
 +
 +#Each line describes a limit for a user in the form: 
 +
 +#<domain>        <type>  <item>  <value> 
 +
 +#Where: 
 +#<domain> can be
 +#        - a user name 
 +#        - a group name, with @group syntax 
 +#        - the wildcard *, for default entry 
 +#        - the wildcard %, can be also used with %group syntax, 
 +#                 for maxlogin limit 
 +
 +#<type> can have the two values
 +#        - "soft" for enforcing the soft limits 
 +#        - "hard" for enforcing hard limits 
 +
 +#<item> can be one of the following: 
 +#        - core - limits the core file size (KB
 +#        - data - max data size (KB
 +#        - fsize - maximum filesize (KB) 
 +#        - memlock - max locked-in-memory address space (KB) 
 +#        - nofile - max number of open file descriptors 
 +#        - rss - max resident set size (KB) 
 +#        - stack - max stack size (KB) 
 +#        - cpu - max CPU time (MIN) 
 +#        - nproc - max number of processes 
 +#        - as - address space limit (KB) 
 +#        - maxlogins - max number of logins for this user 
 +#        - maxsyslogins - max number of logins on the system 
 +#        - priority - the priority to run user process with 
 +#        - locks - max number of file locks the user can hold 
 +#        - sigpending - max number of pending signals 
 +#        - msgqueue - max memory used by POSIX message queues (bytes) 
 +#        - nice - max nice priority allowed to raise to values[-20, 19] 
 +#        - rtprio - max realtime priority 
 +
 +#<domain>      <type>  <item>         <value> 
 +#
  
-    Update Time : Tue Aug  2 15:16:41 2016 +#*               soft    core            0 
-          State : clean, degraded  +#*               hard    rss             10000 
- Active Devices : 2 +#@student        hard    nproc           20 
-Working Devices : 2 +#@faculty        soft    nproc           20 
- Failed Devices : 0 +#@faculty        hard    nproc           50 
-  Spare Devices : 0+#ftp             hard    nproc           0 
 +#@student        -       maxlogins       4
  
-         Layout : left-symmetric +# End of file 
-     Chunk Size : 512K+</code> 
  
-           Name centos7.fenestros.loc: (local to host centos7.fenestros.loc) +<WRAP center round important> 
-           UUID : fd8bac53:1457a4f4:30feab84:e0f9d8e0 +**Important** La valeur de la limite peut être un **nombre** ou le mot **unlimited**
-         Events : 21+</WRAP>
  
-    Number   Major   Minor   RaidDevice State +Par exemple, si root inscrit les deux ligne suivantes dans le fichier /etc/security/limits.conf : 
-       0              0        0      removed + 
-       1              8        1      active sync   /dev/sda8 +<file> 
-       3             11        2      active sync   /dev/sda11+... 
 +trainee                soft        nofile          1024 
 +trainee                hard        nofile          4096 
 +... 
 +</file> 
 + 
 +la limite du nombre de fichiers ouverts simultanément par trainee est de 1 024. Par contre, trainee a la possibilité d'augmenter cette limite jusqu'à 4 096 en utilisant la commande suivante : 
 + 
 +<code> 
 +$ ulimit -n 4096
 </code> </code>
  
-Constatez maintenant l'existance de votre RAID :+Pour consulter la liste des limites actuelles, il convient d'utiliser la commande ulimit avec l'option **-a** :
  
 <code> <code>
-[root@centos7 ~]# cat /proc/mdstat +[root@centos7 ~]# ulimit -a 
-Personalities : [raid6] [raid5] [raid4]  +core file size          (blocks, -c) 0 
-md1 : active raid5 sda11[3] sda8[1] +data seg size           (kbytes, -d) unlimited 
-      1021952 blocks super 1.2 level 5512k chunkalgorithm 2 [3/2] [_UU] +scheduling priority             (-e) 0 
-       +file size               (blocks, -f) unlimited 
-unused devices: <none>+pending signals                 (-i) 6929 
 +max locked memory       (kbytes-l) 64 
 +max memory size         (kbytes, -m) unlimited 
 +open files                      (-n) 1024 
 +pipe size            (512 bytes, -p) 8 
 +POSIX message queues     (bytes, -q) 819200 
 +real-time priority              (-r) 0 
 +stack size              (kbytes, -s) 8192 
 +cpu time               (seconds, -t) unlimited 
 +max user processes              (-u) 6929 
 +virtual memory          (kbytes, -v) unlimited 
 +file locks                      (-x) unlimited
 </code> </code>
 +
 +====Options de la commande====
 +
 +Les options de **ulimit** sont :
 +
 +<code>
 +[root@centos7 ~]# help ulimit
 +ulimit: ulimit [-SHacdefilmnpqrstuvx] [limit]
 +    Modify shell resource limits.
 +    
 +    Provides control over the resources available to the shell and processes
 +    it creates, on systems that allow such control.
 +    
 +    Options:
 +      -S use the `soft' resource limit
 +      -H use the `hard' resource limit
 +      -a all current limits are reported
 +      -b the socket buffer size
 +      -c the maximum size of core files created
 +      -d the maximum size of a process's data segment
 +      -e the maximum scheduling priority (`nice')
 +      -f the maximum size of files written by the shell and its children
 +      -i the maximum number of pending signals
 +      -l the maximum size a process may lock into memory
 +      -m the maximum resident set size
 +      -n the maximum number of open file descriptors
 +      -p the pipe buffer size
 +      -q the maximum number of bytes in POSIX message queues
 +      -r the maximum real-time scheduling priority
 +      -s the maximum stack size
 +      -t the maximum amount of cpu time in seconds
 +      -u the maximum number of user processes
 +      -v the size of virtual memory
 +      -x the maximum number of file locks
 +    
 +    If LIMIT is given, it is the new value of the specified resource; the
 +    special LIMIT values `soft', `hard', and `unlimited' stand for the
 +    current soft limit, the current hard limit, and no limit, respectively.
 +    Otherwise, the current value of the specified resource is printed.  If
 +    no option is given, then -f is assumed.
 +    
 +    Values are in 1024-byte increments, except for -t, which is in seconds,
 +    -p, which is in increments of 512 bytes, and -u, which is an unscaled
 +    number of processes.
 +    
 +    Exit Status:
 +    Returns success unless an invalid option is supplied or an error occurs.
 +</code>
 +
 +====Groupes de Contrôle====
 +
 +Les **Groupes de Contrôles** (//Control Groups//) aussi appelés **CGroups**, sont une nouvelle façon sous RHEL/CentOS 7 de contrôler et de limiter des ressources. Les groupes de contrôle permettent l'allocation de ressources, même d'une manière dynamique pendant que le système fonctionne, telles le temps processeur, la mémoire système, la bande réseau, ou une combinaison de ces ressources parmi des groupes de tâches (processus) définis par l'utilisateur et exécutés sur un système.
 +
 +Les groupes de contrôle sont organisés de manière hiérarchique, comme des processus. Par contre, la comparaison entre les deux démontre que tandis que les processus se trouvent dans une arborescence unique descandant tous du processus init et héritant de l'environnement de leurs parents, les contrôles groupes peuvent être multiples donnant lieu à des arborescences ou **hiérarchies** multiples qui héritent de certains attributs de leurs groupes de contrôle parents.
 +
 +Ces hiérarchies multiples et séparés sont necéssaires parce que chaque hiérarchie est attaché à un ou plusieurs **sous-système(s)** aussi appelés des **Contrôleurs de Ressources** ou simplement des **Contrôleurs**. Les contrôleurs disponibles sous RHEl/CentOS 7 sont :
 +
 +  * **blkio** - utilisé pour établir des limites sur l'accès des entrées/sorties à partir et depuis des périphériques blocs,
 +  * **cpu** - utilisé pour fournir aux tâches des groupes de contrôle accès au CPU grâce au planificateur,
 +  * **cpuacct** - utilisé pour produire des rapports automatiques sur les ressources CPU utilisées par les tâches dans un groupe de contrôle,
 +  * **cpuset** - utilisé pour assigner des CPU individuels sur un système multicoeur et des noeuds de mémoire à des tâches dans un groupe de contrôle,
 +  * **devices** - utilisé pour autoriser ou pour refuser l'accès des tâches aux périphériques dans un groupe de contrôle,
 +  * **freezer** - utilisé pour suspendre ou pour réactiver les tâches dans un groupe de contrôle,
 +  * **memory** - utilisé pour établir les limites d'utilisation de la mémoire par les tâches d'un groupe de contrôle et pour génèrer des rapports automatiques sur les ressources rmémoire utilisées par ces tâches,
 +  * **net_cls** - utilisé pour repèrer les paquets réseau avec un identifiant de classe (//classid//) afin de permettre au contrôleur de trafic Linux, **tc**,  d'identifier les paquets provenant d'une tâche particulière d'un groupe de contrôle.
 +  * **perf_event**  - utilisé pour permettre le monitoring des CGroups avec l'outil perf,
 +  * **hugetlb** - utilisé pour limiter des ressources sur des pages de mémoire virtuelle de grande taille.
 +
 +Pour visualiser les hiérarchies, il convient d'utiliser la commande suivante :
 +
 +<code>
 +[root@centos7 ~]# lssubsys -am
 +cpuset /sys/fs/cgroup/cpuset
 +cpu,cpuacct /sys/fs/cgroup/cpu,cpuacct
 +memory /sys/fs/cgroup/memory
 +devices /sys/fs/cgroup/devices
 +freezer /sys/fs/cgroup/freezer
 +net_cls /sys/fs/cgroup/net_cls
 +blkio /sys/fs/cgroup/blkio
 +perf_event /sys/fs/cgroup/perf_event
 +hugetlb /sys/fs/cgroup/hugetlb
 +</code> 
 +
 +Sous RHEL/CentOS 7, **Systemd** organise les processus dans chaque CGroup. Par exemple tous les processus démarrés par le serveur Apache se trouveront dans le même CGroup, y compris les scripts CGI. Ceci implique que la gestion des ressources en utilisant des hiérarchies est couplé avec l'arborescence des unités de Systemd.
 +
 +En haut de l'arborescence des unités de Systemd se trouve la tranche root - **-.slice**, dont dépend :
 +
 +  * le **system.slice** - l'emplacement des services système,
 +  * le **user.slice** - l'emplacement des sessions des utilisateurs,
 +  * le **machine.slice** - l'emplacement des machines virtuelles et conteneurs.
 +
 +En dessous des tranches peuvent se trouver :
 +
 +  * des **scopes** - des processus crées par **fork**,
 +  * des **services** - des processus créés par une **Unité**.
 +
 +Les slices peuvent être visualisés avec la commande suivante :
 +
 +<code>
 +[root@centos7 ~]# systemctl list-units --type=slice
 +UNIT               LOAD   ACTIVE SUB    DESCRIPTION
 +-.slice            loaded active active Root Slice
 +system-getty.slice loaded active active system-getty.slice
 +system.slice       loaded active active System Slice
 +user-0.slice       loaded active active user-0.slice
 +user-1000.slice    loaded active active user-1000.slice
 +user.slice         loaded active active User and Session Slice
 +
 +LOAD   = Reflects whether the unit definition was properly loaded.
 +ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
 +SUB    = The low-level unit activation state, values depend on unit type.
 +
 +6 loaded units listed. Pass --all to see loaded but inactive units, too.
 +To show all installed unit files use 'systemctl list-unit-files'.
 +</code>
 +
 +L'arborescence des unités de Systemd est la suivante :
 +
 +<code>
 +[root@centos7 ~]# systemd-cgls
 +├─1 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
 +├─user.slice
 +│ └─user-1000.slice
 +│   └─session-2.scope
 +│     ├─ 5577 sshd: trainee [priv]
 +│     ├─ 6004 sshd: trainee@pts/
 +│     ├─ 6167 -bash
 +│     ├─ 6217 su -
 +│     ├─ 6245 -bash
 +│     ├─13457 systemd-cgls
 +│     └─13459 systemd-cgls
 +└─system.slice
 +  ├─upower.service
 +  │ └─3478 /usr/libexec/upowerd
 +  ├─polkit.service
 +  │ └─822 /usr/lib/polkit-1/polkitd --no-debug
 +  ├─wpa_supplicant.service
 +  │ └─821 /usr/sbin/wpa_supplicant -u -f /var/log/wpa_supplicant.log -c /etc/wpa_supplicant/wpa_supplicant.conf -u -f /var/log/wpa_supplicant.log -P /var/run/wpa_suppli
 +  ├─crond.service
 +  │ └─793 /usr/sbin/crond -n
 +  ├─atd.service
 +  │ └─789 /usr/sbin/atd -f
 +  ├─tuned.service
 +  │ └─762 /usr/bin/python -Es /usr/sbin/tuned -l -P
 +  ├─simplegateway.service
 +  │ ├─  760 /bin/sh /opt/JWrapper-Remote Access/JWAppsSharedConfig/SimpleGatewayService/service_launch.sh
 +  │ ├─ 3202 /opt/JWrapper-Remote Access/JWrapper-Linux64JRE-00028603412-complete/bin/Remote Access -cp /opt/JWrapper-Remote Access/JWrapper-JWrapper-00041369502-complet
 +  │ ├─ 3384 /opt/JWrapper-Remote Access/JWrapper-Linux64JRE-00028603412-complete/bin/Remote Access Monitoring -cp /opt/JWrapper-Remote Access/JWrapper-JWrapper-00041369
 +  │ ├─13111 /bin/sh /opt/JWrapper-Remote Access/JWAppsSharedConfig/SimpleGatewayService/service_launch.sh
 +  │ └─13458 sleep 1
 +  ├─postfix.service
 +  │ ├─1810 /usr/libexec/postfix/master -w
 +  │ ├─1833 pickup -l -t unix -u
 +  │ └─1834 qmgr -l -t unix -u
 +  ├─cups.service
 +  │ └─756 /usr/sbin/cupsd -f
 +  ├─sshd.service
 +  │ └─755 /usr/sbin/sshd -D
 +  ├─docker.service
 +  │ ├─750 /bin/sh -c /usr/bin/docker-current daemon $OPTIONS            $DOCKER_STORAGE_OPTIONS            $DOCKER_NETWORK_OPTIONS            $ADD_REGISTRY            $
 +  │ ├─753 /usr/bin/docker-current daemon --selinux-enabled
 +  │ └─754 /usr/bin/forward-journald -tag docker
 +  ├─NetworkManager.service
 +  │ ├─ 678 /usr/sbin/NetworkManager --no-daemon
 +  │ └─1968 /sbin/dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-enp0s3.pid -lf /var/lib/NetworkManager/dhclient-3b386b69-23e8-4940-80e0-e16d346d43
 +  ├─abrt-xorg.service
 +  │ └─586 /usr/bin/abrt-watch-log -F Backtrace /var/log/Xorg.0.log -- /usr/bin/abrt-dump-xorg -xD
 +  ├─abrt-oops.service
 +  │ └─582 /usr/bin/abrt-watch-log -F BUG: WARNING: at WARNING: CPU: INFO: possible recursive locking detected ernel BUG at list_del corruption list_add corruption do_IR
 +  ├─abrtd.service
 +  │ └─581 /usr/sbin/abrtd -d -s
 +  ├─dbus.service
 +  │ └─513 /bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
 +  ├─chronyd.service
 +  │ └─525 /usr/sbin/chronyd
 +  ├─firewalld.service
 +  │ └─510 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
 +  ├─avahi-daemon.service
 +  │ ├─507 avahi-daemon: running [centos7.local
 +  │ └─530 avahi-daemon: chroot helpe
 +  ├─ModemManager.service
 +  │ └─506 /usr/sbin/ModemManager
 +  ├─smartd.service
 +  │ └─505 /usr/sbin/smartd -n -q never
 +  ├─libstoragemgmt.service
 +  │ └─494 /usr/bin/lsmd -d
 +  ├─gssproxy.service
 +  │ └─517 /usr/sbin/gssproxy -D
 +  ├─systemd-logind.service
 +  │ └─492 /usr/lib/systemd/systemd-logind
 +  ├─rsyslog.service
 +  │ └─488 /usr/sbin/rsyslogd -n
 +  ├─alsa-state.service
 +  │ └─487 /usr/sbin/alsactl -s -n 19 -c -E ALSA_CONFIG_PATH=/etc/alsa/alsactl.conf --initfile=/lib/alsa/init/00main rdaemon
 +  ├─auditd.service
 +  │ ├─463 /sbin/auditd -n
 +  │ ├─473 /sbin/audispd
 +  │ └─475 /usr/sbin/sedispatch
 +  ├─systemd-udevd.service
 +  │ └─381 /usr/lib/systemd/systemd-udevd
 +  ├─lvm2-lvmetad.service
 +  │ └─378 /usr/sbin/lvmetad -f
 +  ├─systemd-journald.service
 +  │ └─349 /usr/lib/systemd/systemd-journald
 +  └─system-getty.slice
 +    └─getty@tty1.service
 +      └─798 /sbin/agetty --noclear tty1 linux
 +</code>
 +
 +En utilisant Systemd, plusieurs ressources peuvent être limitées :
 +
 +  * **CPUShares** - par défault 1024,
 +  * **MemoryLimit** - limite exprimée en Mo ou en Go. Pas de valeur par défaut,
 +  * **BlockIOWeight** - valeur entre 10 et 1000. Pas de valeur par défaut,
 +  * **StartupCPUShares** - comme CPUShares mais uniquement appliqué pendant le démarrage,
 +  * **StartupBlockIOWeight** - comme BlockIOWeight mais uniquement appliqué pendant le démarrage,
 +  * **CPUQuota** - utilisé pour limiter le temps CPU, même quand le système ne fait rien.
  
 <WRAP center round important> <WRAP center round important>
-Notez que le RAID a été démarré avec 2 unités au lieu de trois.+**Important** : Consultez le manuel systemd.resource-control(5) pour voir les paramètres CGroup qui peuvent être passés à systemctl.
 </WRAP> </WRAP>
  
-Pour ajouter un autre disque à notre RAID afin de remplacer /dev/sda5 il convient d'utiliser l'option **--add** :+ 
 +===LAB #1 - Travailler avec les cgroups sous RHEL/CentOS 7=== 
 + 
 +Créez un service appelé **foo** :
  
 <code> <code>
-[root@centos7 ~]# mdadm --manage --add /dev/md1 /dev/sda10 +[root@centos7 ~]# vi /etc/systemd/system/foo.service 
-mdadm: added /dev/sda10+[root@centos7 ~]# cat /etc/systemd/system/foo.service 
 +[Unit] 
 +Description=The foo service that does nothing useful 
 +After=remote-fs.target nss-lookup.target 
 + 
 +[Service] 
 +ExecStart=/usr/bin/sha1sum /dev/zero  
 +ExecStop=/bin/kill -WINCH ${MAINPID} 
 + 
 +[Install] 
 +WantedBy=multi-user.target
 </code> </code>
  
-L'exemen du RAID indique que /dev/sda10 a été ajouté en tant que //spare// et à l'issu de quelques minutes le RAID 5 a été reconstruite :+Consultez le statut du service foo :
  
 <code> <code>
-[root@centos7 ~]# mdadm --detail /dev/md1 +[root@centos7 ~]# systemctl status foo.service 
-/dev/md1: +● foo.service The foo service that does nothing useful 
-        Version : 1.+   Loaded: loaded (/etc/systemd/system/foo.service; disabled; vendor presetdisabled
-  Creation Time Tue Aug  2 15:10:12 2016 +   Activeinactive (dead
-     Raid Level : raid5 +</code>
-     Array Size : 1021952 (998.17 MiB 1046.48 MB+
-  Used Dev Size 510976 (499.08 MiB 523.24 MB+
-   Raid Devices : 3 +
-  Total Devices : 3 +
-    Persistence : Superblock is persistent+
  
-    Update Time Tue Aug  2 15:19:06 2016 +Démarrez et actives le service :
-          State : clean  +
- Active Devices : 3 +
-Working Devices : 3 +
- Failed Devices : 0 +
-  Spare Devices : 0+
  
-         Layout left-symmetric +<code> 
-     Chunk Size 512K+[root@centos7 ~]# systemctl start foo.service 
 +[root@centos7 ~]# systemctl enable foo.service 
 +Created symlink from /etc/systemd/system/multi-user.target.wants/foo.service to /etc/systemd/system/foo.service. 
 +[root@centos7 ~]# systemctl status foo.service 
 +● foo.service - The foo service that does nothing useful 
 +   Loadedloaded (/etc/systemd/system/foo.service; enabled; vendor preset: disabled) 
 +   Active: active (running) since Wed 2016-06-15 13:13:17 CEST; 24s ago 
 + Main PID22256 (sha1sum) 
 +   CGroup: /system.slice/foo.service 
 +           └─22256 /usr/bin/sha1sum /dev/zero
  
-           Name : centos7.fenestros.loc: (local to host centos7.fenestros.loc+Jun 15 13:13:17 centos7.fenestros.loc systemd[1]: Started The foo service that does nothing useful. 
-           UUID : fd8bac53:1457a4f4:30feab84:e0f9d8e0 +Jun 15 13:13:17 centos7.fenestros.loc systemd[1]Starting The foo service that does nothing useful... 
-         Events : 40+</code>
  
-    Number   Major   Minor   RaidDevice State +Notez que notre service a été placé dans la tranche **system.slice** : 
-       4             10        0      active sync   /dev/sda10 + 
-       1              8        1      active sync   /dev/sda8 +<code> 
-       3             11        2      active sync   /dev/sda11+[root@centos7 ~]# systemctl show -p Slice foo.service 
 +Slice=system.slice
 </code> </code>
  
-Naturellement, il necéssaire de renseigner le fichier **/etc/mdadm.conf** du changement afin que le RAID soit contruit à chaque démarrage :+Utilisez ps pour voir le pourcentage du CPU utilisé par ce service :
  
 <code> <code>
-[root@centos7 ~]# echo 'DEVICES /dev/sda10 /dev/sda8 /dev/sda11' > /etc/mdadm.conf +[root@centos7 ~]# ps -p 22256 -o pid,comm,cputime,%cpu 
-[root@centos7 ~]# mdadm --detail --scan >> /etc/mdadm.conf  +  PID COMMAND             TIME %CPU 
-[root@centos7 ~]# cat /etc/mdadm.conf +22256 sha1sum         00:00:46 94.8 
-DEVICES /dev/sda10 /dev/sda8 /dev/sda11 +</code> 
-ARRAY /dev/md1 metadata=1.2 name=centos7.fenestros.loc:UUID=fd8bac53:1457a4f4:30feab84:e0f9d8e0+ 
 +Fixez maintenant la valeur de CPUShares pour ce service à 250 : 
 + 
 +<code> 
 +[root@centos7 ~]# systemctl set-property foo.service CPUShares=250 
 +</code> 
 + 
 +Cette limite est permenante et a été inscrite dans le fichier **50-CPUShares.conf** qui se trouve dans le répertoire **/etc/systemd/system/foo.service.d** : 
 + 
 +<code> 
 +[root@centos7 ~]# ls /etc/systemd/system/foo.service.d 
 +50-CPUShares.conf 
 +[root@centos7 ~]# cat /etc/systemd/system/foo.service.d/50-CPUShares.conf  
 +[Service] 
 +CPUShares=250 
 +</code> 
 + 
 +<WRAP center round important> 
 +**Important** : En utilisant l'option **--runtime** avec la commande **sysetmctl set-property** il est possible d'appliquer la limite d'une manière provisoire. 
 +</WRAP> 
 + 
 +Appliquez cette modification en rechargeant systemd et en re-démarrant le service foo.service : 
 + 
 +<code> 
 +[root@centos7 ~]# systemctl daemon-reload 
 +[root@centos7 ~]# systemctl restart foo.service 
 +</code> 
 + 
 +Vérifiez maintenant que la limite a été appliquée : 
 + 
 +<code> 
 +[root@centos7 ~]# cat /sys/fs/cgroup/cpu/system.slice/foo.service/cpu.shares 
 +250 
 +[root@centos7 ~]# systemctl show -p MainPID foo.service 
 +MainPID=27233 
 +[root@centos7 ~]# cat /proc/27233/cgroup | grep foo 
 +4:cpuacct,cpu:/system.slice/foo.service 
 +1:name=systemd:/system.slice/foo.service 
 +</code> 
 + 
 +Créez maintenant le service **bar** : 
 + 
 +<code> 
 +[root@centos7 ~]# vi /etc/systemd/system/bar.service 
 +[root@centos7 ~]# cat /etc/systemd/system/bar.service 
 +[Unit] 
 +Description=The bar service that does nothing useful 
 +After=remote-fs.target nss-lookup.target 
 + 
 +[Service] 
 +ExecStart=/usr/bin/md5sum /dev/zero  
 +ExecStop=/bin/kill -WINCH ${MAINPID} 
 + 
 +[Install] 
 +WantedBy=multi-user.target 
 +</code> 
 + 
 +Fixez maintenant la limite de CPUShares pour ce service à 2000 : 
 + 
 +<code> 
 +[root@centos7 ~]# systemctl set-property bar.service CPUShares=2000 
 +Failed to set unit properties on bar.service: Unit bar.service is not loaded. 
 +[root@centos7 ~]# systemctl start bar.service 
 +[root@centos7 ~]# systemctl enable bar.service 
 +Created symlink from /etc/systemd/system/multi-user.target.wants/bar.service to /etc/systemd/system/bar.service. 
 +[root@centos7 ~]# systemctl set-property bar.service CPUShares=2000 
 +</code> 
 + 
 +Appliquez la limite : 
 + 
 +<code> 
 +[root@centos7 ~]# systemctl daemon-reload 
 +[root@centos7 ~]# systemctl restart bar.service 
 +[root@centos7 ~]# systemctl status bar.service 
 +● bar.service - The bar service that does nothing useful 
 +   Loaded: loaded (/etc/systemd/system/bar.service; enabled; vendor preset: disabled) 
 +  Drop-In: /etc/systemd/system/bar.service.d 
 +           └─50-CPUShares.conf 
 +   Active: active (running) since Wed 2016-06-15 13:37:54 CEST; 9s ago 
 + Main PID: 29515 (md5sum) 
 +   CGroup: /system.slice/bar.service 
 +           └─29515 /usr/bin/md5sum /dev/zero 
 + 
 +Jun 15 13:37:54 centos7.fenestros.loc systemd[1]: Started The bar service that does nothing useful. 
 +Jun 15 13:37:54 centos7.fenestros.loc systemd[1]: Starting The bar service that does nothing useful... 
 +</code> 
 + 
 +Re-démarrer les services foo et bar : 
 + 
 +<code> 
 +[root@centos7 ~]# systemctl restart foo.service 
 +[root@centos7 ~]# systemctl status foo.service 
 +● foo.service - The foo service that does nothing useful 
 +   Loaded: loaded (/etc/systemd/system/foo.service; enabled; vendor preset: disabled) 
 +  Drop-In: /etc/systemd/system/foo.service.d 
 +           └─50-CPUShares.conf 
 +   Active: active (running) since Wed 2016-06-15 13:50:08 CEST; 11s ago 
 + Main PID: 652 (sha1sum) 
 +   CGroup: /system.slice/foo.service 
 +           └─652 /usr/bin/sha1sum /dev/zero 
 + 
 +Jun 15 13:50:08 centos7.fenestros.loc systemd[1]: Started The foo service that does nothing useful. 
 +Jun 15 13:50:08 centos7.fenestros.loc systemd[1]Starting The foo service that does nothing useful... 
 +[root@centos7 ~]# systemctl restart bar.service 
 +[root@centos7 ~]# systemctl status bar.service 
 +● bar.service - The bar service that does nothing useful 
 +   Loaded: loaded (/etc/systemd/system/bar.service; enabled; vendor preset: disabled) 
 +  Drop-In: /etc/systemd/system/bar.service.d 
 +           └─50-CPUShares.conf 
 +   Active: active (running) since Wed 2016-06-15 13:50:38 CEST; 12s ago 
 + Main PID: 810 (md5sum) 
 +   CGroup: /system.slice/bar.service 
 +           └─810 /usr/bin/md5sum /dev/zero 
 + 
 +Jun 15 13:50:38 centos7.fenestros.loc systemd[1]Started The bar service that does nothing useful. 
 +Jun 15 13:50:38 centos7.fenestros.loc systemd[1]: Starting The bar service that does nothing useful... 
 +</code> 
 + 
 +Utilisez ps pour voir le pourcentage du CPU utilisé par les deux services : 
 + 
 +<code> 
 +[root@centos7 ~]# ps -p 652,810 -o pid,comm,cputime,%cpu 
 +  PID COMMAND             TIME %CPU 
 +  652 sha1sum         00:00:08  9.7 
 +  810 md5sum          00:00:45 78.9
 </code> </code>
  
 ----- -----
-<html> + 
-<div align="center"> +Copyright © 2023 Hugh Norris.
-Copyright © 2020 Hugh Norris. +
-</html>+
Menu