Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
elearning:workbooks:centos:6:avance:l102 [2020/08/07 14:47] – admin | elearning:workbooks:centos:6:avance:l102 [2023/02/15 15:42] (Version actuelle) – admin | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
~~PDF: | ~~PDF: | ||
+ | |||
+ | Version : **2022.01** | ||
Dernière mise-à-jour : ~~LASTMOD~~ | Dernière mise-à-jour : ~~LASTMOD~~ | ||
- | ======LRF302 | + | ======LCF301 |
=====Contenu du Module===== | =====Contenu du Module===== | ||
- | * **LRF302 | + | * **LCF301 |
- | * Concepts RAID | + | * Contenu du Module |
- | * Disques en miroir | + | * Fichiers Spéciaux |
- | * Bandes de données | + | * Commandes |
- | * Types de RAID | + | * La Commande lspci |
- | * RAID 0 - Concaténation | + | * La Commande lsusb |
- | * RAID 0 - Striping | + | * La Commande dmidecode |
- | * RAID 1 - Miroir | + | * Répertoire /proc |
- | * RAID 1+0 - Striping | + | * Répertoires |
- | * RAID 2 - Miroir avec Contrôle | + | * ide/scsi |
- | * RAID 3 et 4 - Striping avec Parité | + | * acpi |
- | * RAID 5 - Striping avec Parité Distribuée | + | * bus |
- | * Au délà de RAID 5 | + | * net |
- | * RAID Logiciel sous RHEL/CentOS | + | * sys |
- | * Préparation du disque | + | * La Commande sysctl |
- | * Partitionnement | + | * Fichiers |
- | * Mise en Place du RAID 5 Logiciel | + | * Processeur |
+ | * Interruptions système | ||
+ | * Canaux DMA | ||
+ | * Plages d' | ||
+ | * Périphériques | ||
+ | * Modules | ||
+ | * Statistiques de l' | ||
+ | * Partitions | ||
+ | * Espaces de pagination | ||
+ | * Statistiques d' | ||
+ | * Statistiques d' | ||
+ | * Version du noyau | ||
+ | * Interprétation des informations dans /proc | ||
+ | * Commandes | ||
+ | * free | ||
+ | * uptime ou w | ||
+ | * iostat | ||
+ | * vmstat | ||
+ | * mpstat | ||
+ | * sar | ||
+ | * Utilisation des commandes | ||
+ | * 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 | ||
+ | * Modules usb | ||
+ | * udev | ||
+ | * La Commande udevadm | ||
+ | * Système de fichiers | ||
+ | * 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' |
- | 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/ | ||
+ | </ | ||
- | * 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. | + | < |
+ | [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 -> / | ||
+ | drwxr-xr-x. 3 root root 80 Oct 28 09:40 cpu | ||
+ | crw-------. 1 root root | ||
+ | crw-------. 1 root root | ||
+ | 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 -> / | ||
+ | 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-- | ||
+ | </ | ||
- | ====Disques en miroir==== | + | On peut noter dans la sortie de la commande que certains fichiers sont de type **bloc** (**b**), tandis que d' |
- | La technique des disques en miroir consiste à dupliquer l' | + | < |
+ | ... | ||
+ | brw-rw---- | ||
+ | ... | ||
+ | crw-rw-rw- | ||
+ | ... | ||
+ | </ | ||
- | ====Bandes | + | 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' |
- | La technique des bandes | + | Les deux informations clefs du fichier spécial sont situées à la place de la taille d' |
- | =====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' | + | ====La Commande lspci==== |
- | {{:linux: | + | Cette commande vous renseigne sur les adaptateurs reliés aux bus PCI, AGP et PCI express |
- | ===Avantages=== | + | < |
+ | [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/ | ||
+ | 00:01.1 IDE interface: Intel Corporation 82371AB/ | ||
+ | 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/ | ||
+ | 00:07.0 Bridge: Intel Corporation 82371AB/ | ||
+ | 00:0b.0 USB controller: Intel Corporation 82801FB/ | ||
+ | 00:0d.0 SATA controller: Intel Corporation 82801HM/HEM (ICH8M/ | ||
+ | </ | ||
- | * Récupération | + | Pour obtenir |
- | ===Inconvénients=== | + | < |
+ | [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: | ||
+ | Capabilities: | ||
+ | Kernel driver in use: e1000 | ||
+ | </ | ||
- | * Pas de protection des données, | + | ou : |
- | * Pas d' | + | |
- | ====RAID 0 - Striping==== | + | < |
+ | [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: | ||
+ | Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-, | ||
+ | Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- | ||
+ | Capabilities: | ||
+ | Command: DPERE- ERO+ RBC=512 OST=1 | ||
+ | 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 | ||
+ | </ | ||
- | Création | + | ===Options |
- | {{:linux: | + | Les options de cette commande sont : |
- | ===Avantages=== | + | < |
+ | [root@centos7 ~]# lspci --help | ||
+ | lspci: invalid option -- ' | ||
+ | Usage: lspci [< | ||
- | * 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 [[[[< | ||
+ | -d [< | ||
- | 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, | + | Other options: |
+ | -i < | ||
+ | -p < | ||
+ | -M Enable `bus mapping' | ||
- | {{:linux: | + | PCI access options: |
+ | -A < | ||
+ | -O < | ||
+ | -G Enable PCI access debugging | ||
+ | -H < | ||
+ | -F < | ||
+ | </ | ||
- | ===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=== | + | < |
+ | [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' | + | [root@centos7 ~]# lsusb -vt |
+ | /: Bus 02.Port 1: Dev 1, Class=root_hub, | ||
+ | /: Bus 01.Port 1: Dev 1, Class=root_hub, | ||
+ | </ | ||
- | ====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' | + | Les options de cette commande sont : |
- | {{:linux: | + | < |
+ | [root@centos7 ~]# lsusb --help | ||
+ | Usage: lsusb [options]... | ||
+ | List USB devices | ||
+ | -v, --verbose | ||
+ | Increase verbosity (show descriptors) | ||
+ | -s [[bus]: | ||
+ | Show only devices with specified device and/or | ||
+ | bus numbers (in decimal) | ||
+ | -d vendor: | ||
+ | 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 | ||
+ | </ | ||
- | ===Avantages=== | + | ====La Commande dmidecode==== |
- | | + | La commande |
- | | + | |
- | ===Inconvénients=== | + | * l' |
+ | * les extensions possibles. | ||
- | * Coûteux à cause de l' | + | < |
+ | [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' | + | Handle 0x0000, DMI type 0, 20 bytes |
+ | BIOS Information | ||
+ | Vendor: innotek GmbH | ||
+ | Version: VirtualBox | ||
+ | Release Date: 12/ | ||
+ | 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' | + | Handle 0x0001, DMI type 1, 27 bytes |
+ | System Information | ||
+ | Manufacturer: | ||
+ | Product Name: VirtualBox | ||
+ | Version: 1.2 | ||
+ | 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: | ||
+ | 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 3 et 4 sont des technologies avec bandes de parité distribuées sur un seul disque | + | Handle 0x0003, DMI type 3, 13 bytes |
+ | Chassis Information | ||
+ | Manufacturer: Oracle 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 | ||
- | {{: | + | Handle 0x0007, DMI type 126, 42 bytes |
+ | Inactive | ||
- | En RAID 3, la 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 0x0005, DMI type 126, 15 bytes |
+ | Inactive | ||
- | En RAID 4, la 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 0x0006, DMI 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 | + | </ |
+ | |||
+ | ===Options de la commande=== | ||
+ | |||
+ | Les options de cette commande sont : | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# dmidecode --help | ||
+ | Usage: dmidecode [OPTIONS] | ||
+ | Options are: | ||
+ | -d, --dev-mem FILE Read memory from device FILE (default: /dev/mem) | ||
+ | -h, --help | ||
+ | -q, --quiet | ||
+ | -s, --string KEYWORD | ||
+ | -t, --type TYPE Only display the entries of given type | ||
+ | -u, --dump | ||
+ | | ||
+ | | ||
+ | -V, --version | ||
+ | </ | ||
+ | |||
+ | =====Répertoire / | ||
+ | |||
+ | Le répertoire /proc contient | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# ls /proc | ||
+ | 1 217 260 | ||
+ | 10 | ||
+ | 11 | ||
+ | 12 | ||
+ | 1215 | ||
+ | 1217 | ||
+ | 1227 | ||
+ | 1228 | ||
+ | 1230 | ||
+ | 1264 | ||
+ | 13 | ||
+ | 1372 | ||
+ | 14 | ||
+ | 15 | ||
+ | 16 | ||
+ | 17 | ||
+ | 1732 | ||
+ | 1744 | ||
+ | 17788 2486 | ||
+ | 18 | ||
+ | 19 | ||
+ | 2 259 28 2998 434 | ||
+ | 20 | ||
+ | 20638 2597 | ||
+ | 21 | ||
+ | </ | ||
+ | |||
+ | ====Répertoires==== | ||
+ | |||
+ | ===ide/ | ||
+ | |||
+ | Ce répertoire contient des répertoires dans lesquels se trouvent des informations | ||
- | ====RAID 5 - Striping avec Parité Distribuée==== | + | ===acpi=== |
- | Le RAID 5 est une technologie avec bandes de parité distribuées | + | Ce répertoire contient des informations |
- | {{: | + | ===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' | + | |
- | ===Inconvénients=== | + | Ce répertoire contient des informations sur le réseau. |
- | * Lecture moins performante qu' | + | ===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 > / |
- | * RAID 6 | + | Cette commande a pour résultat d' |
- | * //Disk Striping with Double Distributed Parity// | + | |
- | * RAID TP | + | |
- | * //Disk Striping with Triple Distributed Parity// | + | |
- | =====RAID Logiciel sous RHEL/ | + | ===La commande sysctl=== |
- | ====Préparation du disque==== | + | Les fichiers dans le répertoire **/ |
- | ===Partitionnement=== | + | La commande **sysctl** applique les règles consignés dans le fichier **/ |
- | Suite à votre LAB de la leçon **Gestion des Disques et le Swap**, votre disque comporte 12 partitions | + | Saisissez |
< | < | ||
- | [root@centos7 ~]# fdisk -l | + | [root@centos7 ~]# cat / |
+ | # System default settings live in / | ||
+ | # To override those settings, enter new settings here, or in an / | ||
+ | # | ||
+ | # For more information, | ||
- | Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors | + | [root@centos7 ~]# cat /usr/lib/sysctl.d/ |
- | Units = sectors of 1 * 512 = 512 bytes | + | # Kernel sysctl configuration file |
- | Sector size (logical/ | + | # |
- | I/O size (minimum/ | + | # For binary values, 0 is disabled, 1 is enabled. |
- | Disk label type: dos | + | # sysctl.conf(5) for more details. |
- | Disk identifier: 0x000c5a90 | + | |
- | | + | # Disable netfilter on bridges. |
- | / | + | net.bridge.bridge-nf-call-ip6tables = 0 |
- | / | + | net.bridge.bridge-nf-call-iptables = 0 |
- | /dev/sda3 20891648 | + | net.bridge.bridge-nf-call-arptables = 0 |
- | / | + | |
- | /dev/ | + | # Controls the maximum shared segment size, in bytes |
- | /dev/sda6 26112000 | + | kernel.shmmax = 4294967295 |
- | /dev/ | + | |
- | /dev/sda8 27140096 | + | # Controls the maximum number of shared memory segments, in pages |
- | /dev/sda9 28166144 | + | |
- | /dev/sda10 | + | [root@centos7 ~]# ls -l /etc/sysctl.d/ |
- | /dev/ | + | total 0 |
- | / | + | 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/< | ||
+ | # | ||
+ | # For more information, | ||
</ | </ | ||
- | ====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 |
- | <file> | + | <code> |
- | / | + | [root@centos7 ~]# sysctl --help |
- | / | + | |
- | / | + | |
- | / | + | |
- | </ | + | |
- | La création | + | Usage: |
+ | | ||
+ | |||
+ | Options: | ||
+ | -a, --all display all variables | ||
+ | -A alias of -a | ||
+ | -X alias of -a | ||
+ | --deprecated | ||
+ | -b, --binary | ||
+ | -e, --ignore | ||
+ | -N, --names | ||
+ | -n, --values | ||
+ | -p, --load[=< | ||
+ | -f alias of -p | ||
+ | --system | ||
+ | -r, --pattern < | ||
+ | | ||
+ | -q, --quiet | ||
+ | -w, --write | ||
+ | -o does nothing | ||
+ | -x does nothing | ||
+ | -d alias of -h | ||
+ | |||
+ | -h, --help | ||
+ | -V, --version | ||
+ | |||
+ | For more details see sysctl(8). | ||
+ | </ | ||
+ | |||
+ | <WRAP center round important> | ||
+ | **Important** : Consultez | ||
+ | </ | ||
+ | |||
+ | ====Fichiers==== | ||
+ | |||
+ | ===Processeur=== | ||
< | < | ||
- | mdadm --create <unité RAID> | + | [root@centos7 ~]# cat / |
+ | 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 : | ||
+ | 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 : | ||
+ | address sizes : 36 bits physical, 48 bits virtual | ||
+ | power management: | ||
</ | </ | ||
- | Par exemple, saisissez la commande suivante : | + | ===Interruptions système=== |
< | < | ||
- | [root@centos7 ~]# mdadm --create | + | [root@centos7 ~]# cat /proc/interrupts |
- | mdadm: Defaulting to version | + | |
- | mdadm: array /dev/md1 started. | + | 0: 189 IO-APIC-edge timer |
+ | 1: | ||
+ | 8: 0 IO-APIC-edge | ||
+ | 9: 1 IO-APIC-fasteoi | ||
+ | 12: | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | NMI: 0 | ||
+ | LOC: 1630315 | ||
+ | SPU: 0 | ||
+ | PMI: 0 | ||
+ | IWI: 83206 IRQ work interrupts | ||
+ | RTR: 0 APIC ICR read retries | ||
+ | RES: 0 | ||
+ | CAL: 0 | ||
+ | TLB: 0 TLB shootdowns | ||
+ | TRM: 0 | ||
+ | THR: 0 | ||
+ | MCE: 0 | ||
+ | MCP: | ||
+ | ERR: 0 | ||
+ | MIS: 0 | ||
</ | </ | ||
- | Les options dans la ligne de commande sont : | + | <WRAP center round important> |
+ | **Important** | ||
+ | </ | ||
- | ^ Option Courte ^ Option Longue ^ Description ^ | + | ===Canaux DMA=== |
- | | -l | - -level | Le niveau RAID - **linear, 0,1,2,4 ou 5** | | + | |
- | | -n | - -raid-devices=< | + | |
- | Les autres options de la commande **mdadm** peuvent être visualisées grâce à la commande suivante | + | < |
+ | [root@centos7 ~]# cat /proc/dma | ||
+ | 4: cascade | ||
+ | </ | ||
+ | |||
+ | ===Plages d' | ||
< | < | ||
- | [root@centos7 ~]# mdadm --help-options | + | [root@centos7 ~]# cat / |
- | 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. | + | 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 | ||
+ | | ||
+ | 01f0-01f7 : 0000:00:01.1 | ||
+ | 01f0-01f7 : ata_piix | ||
+ | 0376-0376 : 0000:00:01.1 | ||
+ | 0376-0376 : ata_piix | ||
+ | 03c0-03df : vga+ | ||
+ | 03f6-03f6 : 0000: | ||
+ | 03f6-03f6 : ata_piix | ||
+ | 0cf8-0cff : PCI conf1 | ||
+ | 4000-4003 : ACPI PM1a_EVT_BLK | ||
+ | --More-- | ||
+ | </ | ||
- | Some common options are: | + | <WRAP center round alert 60%> |
- | | + | Si deux périphériques ont le même port, les **deux** périphériques seront inutilisables. |
- | mode specific help message | + | </ |
- | | + | |
- | | + | ===Périphériques=== |
- | | + | |
- | | + | < |
- | | + | [root@centos7 ~]# cat / |
- | | + | Character devices: |
- | key=value format for easy import into environment | + | |
- | | + | |
+ | | ||
+ | | ||
+ | | ||
+ | 5 / | ||
+ | | ||
+ | 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 | + | Block devices: |
- | | + | 259 blkext |
- | | + | |
- | | + | |
- | | + | 11 sr |
- | | + | 65 sd |
- | | + | 66 sd |
- | | + | 67 sd |
- | | + | 68 sd |
- | | + | 69 sd |
- | | + | 70 sd |
- | | + | 71 sd |
- | | + | 128 sd |
+ | 129 sd | ||
+ | 130 sd | ||
+ | 131 sd | ||
+ | 132 sd | ||
+ | 133 sd | ||
+ | 134 sd | ||
+ | 135 sd | ||
+ | 253 device-mapper | ||
+ | 254 mdp | ||
</ | </ | ||
- | Les //modes majeurs// de la commande **mdadm** peuvent être visualisés grâce à la commande suivante : | + | ===Modules=== |
< | < | ||
- | [root@centos7 ~]# mdadm --help | + | [root@centos7 ~]# cat / |
- | 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 |
- | | + | isofs 39844 1 - Live 0xffffffffa0588000 |
- | mdadm --assemble device options... | + | bnep 19704 2 - Live 0xffffffffa0516000 |
- | | + | bluetooth 372662 7 bnep, Live 0xffffffffa052c000 |
- | mdadm --build device options... | + | rfkill 26536 3 bluetooth, Live 0xffffffffa051f000 |
- | | + | 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 |
- | | + | 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 |
- | | + | ebtable_broute 12731 0 - Live 0xffffffffa04eb000 |
- | mdadm --incremental device | + | bridge 115385 1 ebtable_broute, |
- | | + | stp 12976 1 bridge, Live 0xffffffffa04be000 |
- | mdadm --monitor options... | + | llc 14552 2 bridge,stp, Live 0xffffffffa04b5000 |
- | | + | ebtable_filter 12827 0 - Live 0xffffffffa04b0000 |
- | mdadm device options... | + | ebtables 30913 3 ebtable_nat, |
- | | + | 000 |
- | Any parameter that does not start with '-' is treated as a device name | + | ip6table_nat 12864 1 - Live 0xffffffffa049e000 |
- | or, for --examine-bitmap, a file name. | + | nf_conntrack_ipv6 18738 5 - Live 0xffffffffa0498000 |
- | The first such name is often the name of an md device. | + | nf_defrag_ipv6 34651 1 nf_conntrack_ipv6, Live 0xffffffffa048a000 |
- | names are often names of component devices. | + | --More-- |
+ | </ | ||
- | For detailed help on the above major modes use --help after the mode | + | ===Statistiques de l' |
- | e.g. | + | |
- | mdadm --assemble --help | + | < |
- | For general help on options use | + | [root@centos7 ~]# cat / |
- | mdadm --help-options | + | |
+ | | ||
+ | | ||
+ | | ||
+ | | ||
</ | </ | ||
- | Dernièrement, | + | ===Partitions=== |
< | < | ||
- | [root@centos7 ~]# mdadm --assemble --help | + | [root@centos7 ~]# cat / |
- | Usage: mdadm --assemble device options... | + | major minor # |
- | mdadm --assemble --scan options... | + | |
- | This usage assembles one or more raid arrays from pre-existing | + | 11 0 56876 sr0 |
- | components. | + | 8 0 |
- | For each array, mdadm needs to know the md device, the identity of | + | 8 1 |
- | 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 |
+ | </ | ||
- | 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: | + | < |
- | 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 | + | / |
- | | + | </ |
- | If an explicit identity is given with --uuid or --super-minor, | + | |
- | 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 | + | < |
- | Those devices are md devices that are to be assembled. | + | [root@centos7 ~]# cat / |
- | and components are determined from the config file. | + | 1.82 1.07 0.81 3/379 25349 |
+ | </ | ||
- | If mdadm can not find all of the components for an array, it will assemble | + | ===Statistiques d' |
- | it but not activate it unless --run or --scan is given. | + | |
- | | + | |
- | | + | |
- | as recorded in the superblock. | + | |
- | the missing device is not a new problem, it will still be assembled. | + | |
- | is only newly missing devices that cause the array not to be started. | + | |
- | Options that are valid with --assemble | + | < |
- | | + | [root@centos7 ~]# cat / |
- | | + | MemTotal: |
- | have this uuid are excluded | + | MemFree: |
- | | + | MemAvailable: |
- | choosing devices to use. | + | Buffers: |
- | | + | Cached: |
- | | + | SwapCached: |
- | | + | Active: |
- | | + | Inactive: |
- | for a full array are present | + | Active(anon): 620404 kB |
- | | + | Inactive(anon): 131808 kB |
- | | + | Active(file): |
- | | + | Inactive(file): |
- | | + | Unevictable: 0 kB |
- | | + | Mlocked: |
+ | SwapTotal: 3071996 kB | ||
+ | SwapFree: | ||
+ | Dirty: 35168 kB | ||
+ | Writeback: 0 kB | ||
+ | AnonPages: | ||
+ | Mapped: 138756 kB | ||
+ | Shmem: 10664 kB | ||
+ | Slab: 98304 kB | ||
+ | SReclaimable: 59848 kB | ||
+ | SUnreclaim: 38456 kB | ||
+ | KernelStack: | ||
+ | PageTables: | ||
+ | NFS_Unstable: | ||
+ | Bounce: | ||
+ | WritebackTmp: | ||
+ | CommitLimit: | ||
+ | Committed_AS: | ||
+ | VmallocTotal: | ||
+ | VmallocUsed: 28612 kB | ||
+ | VmallocChunk: 34359706684 kB | ||
+ | HardwareCorrupted: 0 kB | ||
+ | AnonHugePages: | ||
+ | HugePages_Total: 0 | ||
+ | HugePages_Free: | ||
+ | HugePages_Rsvd: | ||
+ | HugePages_Surp: | ||
+ | Hugepagesize: | ||
+ | DirectMap4k: | ||
+ | DirectMap2M: | ||
</ | </ | ||
- | Constatez maintenant les informations concernant le RAID 5 créé : | + | ===Version du noyau=== |
< | < | ||
- | [root@centos7 ~]# cat /proc/mdstat | + | [root@centos7 ~]# cat /proc/version |
- | Personalities : [raid6] [raid5] [raid4] | + | Linux version |
- | md1 : active raid5 sda11[3] sda8[1] sda5[0] | + | |
- | 1021952 blocks super 1.2 level 5, 512k chunk, algorithm | + | |
- | + | ||
- | unused devices: < | + | |
</ | </ | ||
- | Grâce | + | ==== Interprétation des informations dans /proc==== |
+ | |||
+ | Les informations brutes stockées dans /proc peuvent être interprétées grâce | ||
+ | |||
+ | * free, | ||
+ | * uptime et w, | ||
+ | * iostat, | ||
+ | * vmstat, | ||
+ | * mpstat, | ||
+ | * sar. | ||
+ | |||
+ | ===Commandes=== | ||
+ | |||
+ | ==free== | ||
+ | |||
+ | La commande | ||
< | < | ||
- | [root@centos7 ~]# mdadm --query | + | [root@centos7 ~]# free -m |
- | /dev/md1: 998.17MiB raid5 3 devices, 0 spares. Use mdadm --detail for more detail. | + | total used free shared |
+ | Mem: 1749 | ||
+ | Swap: 2999 3 2996 | ||
</ | </ | ||
- | L' | + | Dans le cas de cet exemple, nous pouvons constater que l’affichage montre : |
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Les options de cette commande sont : | ||
< | < | ||
- | [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] |
- | | + | |
- | Working Devices : 3 | + | |
- | | + | |
- | Spare Devices : 0 | + | |
- | | + | Options: |
- | Chunk Size : 512K | + | -b, --bytes |
+ | -k, --kilo | ||
+ | -m, --mega | ||
+ | -g, --giga | ||
+ | --tera | ||
+ | -h, --human | ||
+ | | ||
+ | -l, --lohi | ||
+ | -t, --total | ||
+ | -s N, --seconds N | ||
+ | -c N, --count N | ||
+ | -w, --wide | ||
- | Name : centos7.fenestros.loc: | + | |
- | UUID : fd8bac53: | + | -V, --version |
- | | + | |
- | Number | + | For more details see free(1). |
- | | + | |
- | 1 8 8 1 active sync / | + | |
- | | + | |
</ | </ | ||
- | Notez la ligne **Persistence | + | ==uptime ou w== |
+ | |||
+ | Chacune des ces commandes indique la charge moyenne du ou des processeurs depuis 1 minute, 5 minutes et 15 minutes : | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# uptime | ||
+ | | ||
+ | |||
+ | [root@centos7 ~]# w | ||
+ | | ||
+ | USER | ||
+ | trainee | ||
+ | trainee | ||
+ | </ | ||
+ | |||
+ | 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, | ||
+ | |||
+ | * 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 : | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# uptime --help | ||
+ | |||
+ | Usage: | ||
+ | | ||
+ | |||
+ | Options: | ||
+ | -p, --pretty | ||
+ | -h, --help | ||
+ | -s, --since | ||
+ | -V, --version | ||
+ | |||
+ | For more details see uptime(1). | ||
+ | |||
+ | [root@centos7 ~]# w --help | ||
+ | |||
+ | Usage: | ||
+ | w [options] | ||
+ | |||
+ | Options: | ||
+ | -h, --no-header | ||
+ | -u, --no-current | ||
+ | -s, --short | ||
+ | -f, --from | ||
+ | -o, --old-style | ||
+ | -i, --ip-addr | ||
+ | |||
+ | | ||
+ | -V, --version | ||
+ | |||
+ | For more details see w(1). | ||
+ | </ | ||
+ | |||
+ | ==iostat== | ||
+ | |||
+ | La commande **iostat** affiche des statistiques sur l' | ||
+ | |||
+ | < | ||
+ | [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: | ||
+ | | ||
+ | |||
+ | Device: | ||
+ | scd0 0.00 | ||
+ | sda | ||
+ | </ | ||
+ | |||
+ | Au-dessous de la première ligne indiquant la version du noyau du système et son nom d' | ||
+ | |||
+ | * Pourcentage de temps passé en mode utilisateur (exécutant des applications, | ||
+ | * 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** : | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# yum install hdparm | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# hdparm -t /dev/sda | ||
+ | |||
+ | /dev/sda: | ||
+ | | ||
+ | </ | ||
+ | |||
+ | Au-dessous du rapport d' | ||
+ | |||
+ | | ||
+ | | ||
+ | * 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 : | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# iostat --help | ||
+ | Usage: iostat [ options ] [ < | ||
+ | Options are: | ||
+ | [ -c ] [ -d ] [ -h ] [ -k | -m ] [ -N ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ] | ||
+ | [ -j { ID | LABEL | PATH | UUID | ... } ] | ||
+ | [ [ -T ] -g < | ||
+ | [ < | ||
+ | </ | ||
+ | |||
+ | ==vmstat== | ||
+ | |||
+ | La commande | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# vmstat 1 10 | ||
+ | procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | 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 statistiques. La seconde ligne identifie de manière encore plus détaillée chacun des champs, permettant ainsi de parcourir simplement et rapidement l' | ||
+ | |||
+ | Les champs relatifs aux processus sont les suivants : | ||
+ | |||
+ | * r — Le nombre de processus exécutables attendant d' | ||
+ | * 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/ | ||
+ | |||
+ | * 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' | ||
+ | * 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' | ||
+ | |||
+ | Les options de cette commande sont : | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# vmstat --help | ||
+ | |||
+ | Usage: | ||
+ | | ||
+ | |||
+ | Options: | ||
+ | -a, --active | ||
+ | -f, --forks | ||
+ | -m, --slabs | ||
+ | -n, --one-header | ||
+ | -s, --stats | ||
+ | -d, --disk | ||
+ | -D, --disk-sum | ||
+ | -p, --partition < | ||
+ | -S, --unit < | ||
+ | -w, --wide | ||
+ | -t, --timestamp | ||
+ | |||
+ | -h, --help | ||
+ | -V, --version | ||
+ | |||
+ | For more details see vmstat(8). | ||
+ | </ | ||
+ | |||
+ | <WRAP center round important> | ||
+ | **Important** : Par défaut la commande vmstat affiche des informations depuis le démarrage du système. | ||
+ | </ | ||
+ | |||
+ | ==mpstat== | ||
+ | |||
+ | La commande **mpstat** affiche des statistiques détaillées sur le CPU : | ||
+ | |||
+ | < | ||
+ | [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 | ||
+ | 03:19:32 PM all 9.38 0.14 2.52 0.31 0.00 0.24 0.00 0.00 0.00 | ||
+ | </ | ||
+ | |||
+ | Dans le cas où vous avez plusieurs processeurs ou coeurs, vous pouvez visualiser ces mêmes informations par unité de traitement : | ||
+ | |||
+ | < | ||
+ | [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 | ||
+ | 03:20:06 PM all 9.42 0.14 2.53 0.31 0.00 0.24 0.00 0.00 0.00 | ||
+ | 03:20:06 PM 0 9.42 0.14 2.53 0.31 0.00 0.24 0.00 0.00 0.00 | ||
+ | </ | ||
+ | |||
+ | Pour afficher 5 jeux de statistiques à des intervales de 2 secondes pour tous les unités de traitement, il convient d' | ||
+ | |||
+ | < | ||
+ | [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 | ||
+ | 03:20:45 PM all | ||
+ | 03:20:45 PM 0 | ||
+ | |||
+ | 03:20:45 PM CPU %usr | ||
+ | 03:20:47 PM all | ||
+ | 03:20:47 PM 0 | ||
+ | |||
+ | 03:20:47 PM CPU %usr | ||
+ | 03:20:49 PM all | ||
+ | 03:20:49 PM 0 | ||
+ | |||
+ | 03:20:49 PM CPU %usr | ||
+ | 03:20:51 PM all | ||
+ | 03:20:51 PM 0 | ||
+ | |||
+ | 03:20:51 PM CPU %usr | ||
+ | 03:20:53 PM all | ||
+ | 03:20:53 PM 0 | ||
+ | |||
+ | Average: | ||
+ | Average: | ||
+ | Average: | ||
+ | </ | ||
+ | |||
+ | Les options de cette commande sont : | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# mpstat --help | ||
+ | Usage: mpstat [ options ] [ < | ||
+ | Options are: | ||
+ | [ -A ] [ -u ] [ -V ] [ -I { SUM | CPU | SCPU | ALL } ] | ||
+ | [ -P { <cpu> [,...] | ON | ALL } ] | ||
+ | </ | ||
+ | |||
+ | ==sar== | ||
+ | |||
+ | La commande **sar** permet | ||
+ | |||
+ | ^ Option ^ Description ^ | ||
+ | | -u | Pourcentage d' | ||
+ | | -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 **/ | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# ls / | ||
+ | sa1 sa2 sadc | ||
+ | </ | ||
+ | |||
+ | Le script **/ | ||
+ | |||
+ | ^ Option ^ Description ^ | ||
+ | | -t | L' | ||
+ | | -n | Nombre de collectes | | ||
+ | |||
+ | Le script **/ | ||
+ | |||
+ | Pour pouvoir fonctionner correctement, | ||
+ | |||
+ | Modifiez le fichier **/ | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# cat / | ||
+ | # Run system activity accounting tool every 10 minutes | ||
+ | # */10 * * * * root / | ||
+ | */2 * * * * root / | ||
+ | # 0 * * * * root / | ||
+ | # Generate a daily summary of process accounting at 23:53 | ||
+ | 53 23 * * * root / | ||
+ | </ | ||
+ | |||
+ | Attendez deux minutes puis saisissez les commandes suivantes : | ||
+ | |||
+ | < | ||
+ | [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 | ||
+ | 02:30:01 PM | ||
+ | 02:40:01 PM | ||
+ | 02:50:01 PM | ||
+ | 03:00:01 PM | ||
+ | 03:10:01 PM | ||
+ | 03:20:01 PM | ||
+ | 03:28:02 PM | ||
+ | 03:30:01 PM | ||
+ | 03:32:01 PM | ||
+ | Average: | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | [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 | ||
+ | 03:34:06 PM | ||
+ | 03:34:11 PM | ||
+ | 03:34:16 PM | ||
+ | Average: | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | [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 | ||
+ | 03:34:53 PM 137708 | ||
+ | 03:34:58 PM 130988 | ||
+ | 03:35:03 PM 131360 | ||
+ | Average: | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | [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/ | ||
+ | 03:35:56 PM 0.00 608.04 | ||
+ | 03:36:01 PM 1.06 531.75 | ||
+ | 03:36:06 PM | ||
+ | Average: | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | [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 | ||
+ | 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 | ||
+ | Average: | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | [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 | ||
+ | 03:36:51 PM | ||
+ | 03:36:51 PM dev8-0 | ||
+ | |||
+ | 03:36:51 PM | ||
+ | 03:36:56 PM | ||
+ | 03:36:56 PM dev8-0 | ||
+ | |||
+ | 03:36:56 PM | ||
+ | 03:37:01 PM | ||
+ | 03:37:01 PM dev8-0 | ||
+ | |||
+ | Average: | ||
+ | Average: | ||
+ | Average: | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | [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 | ||
+ | 03:37:21 PM | ||
+ | 03:37:26 PM | ||
+ | 03:37:31 PM | ||
+ | Average: | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | [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 | ||
+ | 03:38:49 PM 136266 | ||
+ | 03:38:54 PM 136266 | ||
+ | 03:38:59 PM 136266 | ||
+ | Average: | ||
+ | </ | ||
+ | |||
+ | Les options de cette commande sont : | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# sar --help | ||
+ | Usage: sar [ options ] [ < | ||
+ | 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 { < | ||
+ | [ -j { ID | LABEL | PATH | UUID | ... } ] | ||
+ | [ -f [ < | ||
+ | [ -i < | ||
+ | </ | ||
+ | |||
+ | ===Utilisation des commandes | ||
+ | |||
+ | ==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 | ||
+ | |||
+ | Dans ce cas utilisez les commandes suivantes : | ||
+ | |||
+ | * free | ||
+ | * sar -B | ||
+ | |||
+ | |||
+ | ==Identifier un système ayant un problème d' | ||
+ | |||
+ | Utilisez la commande : | ||
+ | |||
+ | * iostat -d -x | ||
+ | |||
+ | |||
+ | =====Modules usb===== | ||
+ | |||
+ | L' | ||
+ | |||
+ | ^ Version USB ^ Module ^ Nom Complet ^ | ||
+ | | 1.0\1.1 | ||
+ | | ::: | **OHCI** | //Open Controller Host Interface// | | ||
+ | | 2.0 | **EHCI** | //Enhanced Host Controller Interface// | | ||
+ | | 3.0 | **XHCI** | // | ||
+ | |||
+ | Le tableau suivant liste les modules courrament chargés en fonction du périphérique utilisé : | ||
+ | |||
+ | ^ Module ^ Type de Périphérique ^ | ||
+ | | **usb_storage** | ||
+ | | **usbhid** | ||
+ | | **snd-usb-audio** | ||
+ | | **usbvidéo** | ||
+ | | **irda-usb** | ||
+ | | **usbnet** | ||
+ | |||
+ | 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, | ||
+ | * udev, | ||
+ | * manuellement. | ||
<WRAP center round todo> | <WRAP center round todo> | ||
- | Recherchez | + | **A faire** : Branchez une clef USB avant de continuer. Si vous utilisez %%VirtualBox%%, |
</ | </ | ||
- | Cependant, il necéssaire | + | =====udev===== |
+ | |||
+ | Depuis le noyau Linux 2.6 Linux est capable de détecter des périphériques branchés à chaud. Cette technologie s' | ||
+ | |||
+ | * Udev, | ||
+ | * HAL, | ||
+ | * Dbus. | ||
+ | |||
+ | Les rôles de chaque composant sont les suivants : | ||
+ | |||
+ | * Udev se charge | ||
+ | * HAL obtient des informations à partir d'Udev et créé un fichier | ||
+ | * 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/ | ||
+ | * le démon **udevd** collecte des données appelées **uevents** du noyau et cherche une règle correspondante dans le répertoire **/ | ||
+ | * 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 **/ | ||
+ | * 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 | ||
+ | |||
+ | Le fichier de configuration principal d'Udev est **/ | ||
< | < | ||
- | [root@centos7 ~]# echo ' | + | [root@centos7 ~]# cat /etc/udev/udev.conf |
- | [root@centos7 ~]# mdadm --detail --scan >> | + | # see udev(7) for details |
- | [root@centos7 ~]# cat / | + | |
- | DEVICES /dev/sda5 /dev/sda8 /dev/sda11 | + | #udev_log=" |
- | ARRAY /dev/md1 metadata=1.2 name=centos7.fenestros.loc: | + | |
</ | </ | ||
- | Chaque unité peut être examinée individuellement | + | Les fichiers de règles se trouvent dans **/ |
< | < | ||
- | [root@centos7 ~]# mdadm --examine | + | [root@centos7 ~]# ls /lib/udev/rules.d/ |
- | /dev/sda5: | + | 10-dm.rules |
- | | + | 11-dm-lvm.rules |
- | | + | 11-dm-mpath.rules |
- | | + | 13-dm-disk.rules 64-btrfs.rules |
- | Array UUID : fd8bac53: | + | 40-libgphoto2.rules |
- | Name : centos7.fenestros.loc:1 (local to host centos7.fenestros.loc) | + | 40-redhat.rules |
- | | + | 40-usb_modeswitch.rules |
- | Raid Level : raid5 | + | 42-usb-hid-pm.rules |
- | Raid Devices | + | 50-rbd.rules |
+ | 50-udev-default.rules | ||
+ | 56-hpmud.rules 69-xorg-vmmouse.rules | ||
+ | 60-alias-kmsg.rules | ||
+ | 60-cdrom_id.rules | ||
+ | 60-fprint-autosuspend.rules | ||
+ | 60-keyboard.rules | ||
+ | 60-net.rules | ||
+ | 60-persistent-alsa.rules | ||
+ | 60-persistent-input.rules | ||
+ | 60-persistent-serial.rules | ||
+ | 60-persistent-storage.rules | ||
+ | 60-persistent-storage-tape.rules | ||
+ | 60-persistent-v4l.rules | ||
+ | 60-raw.rules | ||
+ | 61-accelerometer.rules | ||
+ | </ | ||
+ | |||
+ | <WRAP center round important> | ||
+ | **Important** | ||
+ | </ | ||
+ | |||
+ | Comme indique le nom de chaque fichier, le contenu est composé de règles à l' | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# cat / | ||
+ | # do not edit this file, it will be overwritten on update | ||
+ | |||
+ | SUBSYSTEM==" | ||
+ | |||
+ | # select " | ||
+ | SUBSYSTEM==" | ||
+ | SUBSYSTEM==" | ||
+ | |||
+ | SUBSYSTEM==" | ||
+ | SUBSYSTEM==" | ||
+ | ENV{MODALIAS}!="", | ||
+ | |||
+ | ACTION!=" | ||
- | Avail Dev Size : 1021952 (499.08 MiB 523.24 MB) | + | SUBSYSTEM==" |
- | Array Size : 1021952 (998.17 MiB 1046.48 MB) | + | SUBSYSTEM==" |
- | Data Offset : 2048 sectors | + | SUBSYSTEM==" |
- | Super Offset : 8 sectors | + | SUBSYSTEM==" |
- | Unused Space : before=1960 sectors, after=0 sectors | + | SUBSYSTEM==" |
- | State : clean | + | SUBSYSTEM==" |
- | | + | SUBSYSTEM==" |
+ | KERNEL==" | ||
- | Update Time : Tue Aug 2 15:10:17 2016 | + | SUBSYSTEM==" |
- | Bad Block Log : 512 entries available at offset 72 sectors | + | |
- | | + | |
- | | + | |
- | | + | SUBSYSTEM==" |
- | Chunk Size : 512K | + | |
- | | + | SUBSYSTEM==" |
- | Array State : AAA (' | + | SUBSYSTEM==" |
+ | --More-- | ||
</ | </ | ||
- | A ce stade il est intéressant | + | 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 | ||
+ | |||
+ | ^ 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, | ||
+ | | 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 | ||
+ | | RESULT | Valeur à comparer | ||
+ | |||
+ | 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' | ||
< | < | ||
- | [root@centos7 ~]# mdadm --manage | + | [root@centos7 ~]# udevadm info --query=all |
- | mdadm: set /dev/sda5 faulty in /dev/md1 | + | P: / |
+ | N: sda | ||
+ | S: disk/by-id/ata-VBOX_HARDDISK_VBc40eec8a-49b6b6f3 | ||
+ | E: DEVLINKS=/dev/disk/by-id/ata-VBOX_HARDDISK_VBc40eec8a-49b6b6f3 | ||
+ | E: DEVNAME=/dev/sda | ||
+ | E: DEVPATH=/devices/pci0000: | ||
+ | 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=/ | ||
+ | E: SUBSYSTEM=block | ||
+ | E: TAGS=: | ||
+ | E: USEC_INITIALIZED=957366 | ||
</ | </ | ||
- | L' | + | ===Les options |
+ | |||
+ | Les options | ||
< | < | ||
- | [root@centos7 ~]# mdadm --detail /dev/md1 | + | [root@centos7 ~]# udevadm |
- | /dev/md1: | + | Usage: udevadm [--help] [--version] [--debug] COMMAND [COMMAND OPTIONS] |
- | | + | |
- | | + | |
- | Raid Level : raid5 | + | settle |
- | Array Size : 1021952 (998.17 MiB 1046.48 MB) | + | |
- | | + | |
- | Raid Devices : 3 | + | |
- | | + | |
- | | + | |
- | Update Time : Tue Aug 2 15:14:59 2016 | + | [root@centos7 ~]# udevadm info --help |
- | State : clean, degraded | + | Usage: udevadm info OPTIONS |
- | Active Devices : 2 | + | --query=< |
- | Working Devices : 2 | + | |
- | Failed Devices : 1 | + | |
- | | + | |
+ | | ||
+ | all all values | ||
+ | | ||
+ | --name=< | ||
+ | --root | ||
+ | --attribute-walk | ||
+ | of parent devices | ||
+ | --device-id-of-file=< | ||
+ | --export | ||
+ | --export-prefix | ||
+ | --export-db | ||
+ | --cleanup-db | ||
+ | --help | ||
+ | </ | ||
- | | + | =====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: | + | |
- | | + | |
- | Number | + | Saisissez la commande suivante : |
- | | + | |
- | | + | |
- | | + | |
- | 0 8 5 | + | < |
+ | [root@centos7 ~]# ls -l /sys | ||
+ | total 0 | ||
+ | drwxr-xr-x. | ||
+ | drwxr-xr-x. | ||
+ | drwxr-xr-x. | ||
+ | drwxr-xr-x. | ||
+ | drwxr-xr-x. | ||
+ | drwxr-xr-x. | ||
+ | drwxr-xr-x. | ||
+ | drwxr-xr-x. | ||
+ | drwxr-xr-x. | ||
+ | drwxr-xr-x. 146 root root 0 Oct 28 09:40 module | ||
+ | drwxr-xr-x. | ||
</ | </ | ||
- | Il est maintenant nécessaire | + | 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 | ||
+ | * **devices** | ||
+ | * contient des informations sur la position des périphériques sur les bus | ||
+ | * **firmware** | ||
+ | * contient, entre autre, des informations sur l' | ||
+ | * **module** | ||
+ | * contient des informations sur les modules du noyau | ||
+ | * **power** | ||
+ | * contient des informations sur la gestion de l' | ||
+ | * **fs** | ||
+ | * contient des informations sur les systèmes de fichiers | ||
+ | |||
+ | Pour illustrer ceci, saisissez la commande suivante | ||
< | < | ||
- | [root@centos7 ~]# mdadm --manage --remove | + | [root@centos7 ~]# cat /sys/block/sda/sda1/size |
- | mdadm: hot removed /dev/sda5 from /dev/md1 | + | 409600 |
</ | </ | ||
- | A l'examen | + | Ce chiffre correspond aux nombre de secteurs. |
+ | |||
+ | =====Limitation des ressources===== | ||
+ | |||
+ | ====ulimit==== | ||
+ | |||
+ | Les ressources disponibles aux utilisateurs peuvent être limitées par l'utilisation | ||
+ | |||
+ | La commande **ulimit** gère deux types de limite, la limite //hard// en utilisant l' | ||
+ | |||
+ | La limite //soft// est la limite imposée à l' | ||
+ | |||
+ | L' | ||
< | < | ||
- | [root@centos7 ~]# mdadm --detail | + | [root@centos7 ~]# cat /etc/security/ |
- | /dev/md1: | + | # /etc/security/ |
- | | + | # |
- | | + | #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 | + | # |
- | Used Dev Size : 510976 | + | #Also note that configuration files in / |
- | Raid Devices | + | #which are read in alphabetical order, override the settings in this |
- | | + | #file in case the domain is the same or more specific. |
- | | + | #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 | ||
+ | # | ||
+ | #with a user specific setting in the subdirectory. | ||
+ | # | ||
+ | #Each line describes a limit for a user in the form: | ||
+ | # | ||
+ | #< | ||
+ | # | ||
+ | #Where: | ||
+ | #< | ||
+ | # - 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 | ||
+ | # | ||
+ | #< | ||
+ | # - " | ||
+ | # - " | ||
+ | # | ||
+ | #< | ||
+ | # - 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 | ||
+ | # | ||
+ | #< | ||
+ | # | ||
- | Update Time : Tue Aug 2 15:16:41 2016 | + | #* |
- | State : clean, degraded | + | #* |
- | Active Devices : 2 | + | # |
- | Working Devices : 2 | + | # |
- | Failed Devices : 0 | + | # |
- | Spare Devices : 0 | + | #ftp |
+ | # | ||
- | | + | # End of file |
- | Chunk Size : 512K | + | </ |
- | | + | <WRAP center round important> |
- | UUID : fd8bac53: | + | **Important** |
- | | + | </ |
- | Number | + | Par exemple, si root inscrit les deux ligne suivantes dans le fichier / |
- | 0 | + | |
- | 1 | + | < |
- | 3 | + | ... |
+ | trainee | ||
+ | trainee | ||
+ | ... | ||
+ | </file> | ||
+ | |||
+ | la limite du nombre de fichiers ouverts simultanément par trainee est de 1 024. Par contre, trainee a la possibilité d' | ||
+ | |||
+ | < | ||
+ | $ ulimit -n 4096 | ||
</ | </ | ||
- | Constatez maintenant | + | Pour consulter la liste des limites actuelles, il convient d' |
< | < | ||
- | [root@centos7 ~]# cat / | + | [root@centos7 ~]# ulimit -a |
- | Personalities : [raid6] [raid5] [raid4] | + | core file size (blocks, -c) 0 |
- | md1 : active raid5 sda11[3] sda8[1] | + | data seg size |
- | | + | scheduling priority |
- | + | file size (blocks, | |
- | unused devices: < | + | pending signals |
+ | max locked memory | ||
+ | max memory size | ||
+ | open files (-n) 1024 | ||
+ | pipe size (512 bytes, -p) 8 | ||
+ | POSIX message queues | ||
+ | real-time priority | ||
+ | stack size (kbytes, -s) 8192 | ||
+ | cpu time | ||
+ | max user processes | ||
+ | virtual memory | ||
+ | file locks (-x) unlimited | ||
</ | </ | ||
+ | |||
+ | ====Options de la commande==== | ||
+ | |||
+ | Les options de **ulimit** sont : | ||
+ | |||
+ | < | ||
+ | [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' | ||
+ | -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', | ||
+ | current soft limit, the current hard limit, and no limit, respectively. | ||
+ | Otherwise, the current value of the specified resource is printed. | ||
+ | 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. | ||
+ | </ | ||
+ | |||
+ | ====Groupes de Contrôle==== | ||
+ | |||
+ | Les **Groupes de Contrôles** (//Control Groups//) aussi appelés **CGroups**, | ||
+ | |||
+ | Les groupes de contrôle sont organisés de manière hiérarchique, | ||
+ | |||
+ | 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' | ||
+ | * **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' | ||
+ | * **freezer** - utilisé pour suspendre ou pour réactiver les tâches dans un groupe de contrôle, | ||
+ | * **memory** - utilisé pour établir les limites d' | ||
+ | * **net_cls** - utilisé pour repèrer les paquets réseau avec un identifiant de classe (// | ||
+ | * **perf_event** | ||
+ | * **hugetlb** - utilisé pour limiter des ressources sur des pages de mémoire virtuelle de grande taille. | ||
+ | |||
+ | Pour visualiser les hiérarchies, | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# lssubsys -am | ||
+ | cpuset / | ||
+ | cpu,cpuacct / | ||
+ | memory / | ||
+ | devices / | ||
+ | freezer / | ||
+ | net_cls / | ||
+ | blkio / | ||
+ | perf_event / | ||
+ | hugetlb / | ||
+ | </ | ||
+ | |||
+ | 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' | ||
+ | |||
+ | En haut de l' | ||
+ | |||
+ | * le **system.slice** - l' | ||
+ | * le **user.slice** - l' | ||
+ | * le **machine.slice** - l' | ||
+ | |||
+ | 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 : | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# systemctl list-units --type=slice | ||
+ | UNIT | ||
+ | -.slice | ||
+ | system-getty.slice loaded active active system-getty.slice | ||
+ | system.slice | ||
+ | user-0.slice | ||
+ | user-1000.slice | ||
+ | user.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 ' | ||
+ | </ | ||
+ | |||
+ | L' | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# systemd-cgls | ||
+ | ├─1 / | ||
+ | ├─user.slice | ||
+ | │ └─user-1000.slice | ||
+ | │ | ||
+ | │ | ||
+ | │ | ||
+ | │ | ||
+ | │ | ||
+ | │ | ||
+ | │ | ||
+ | │ | ||
+ | └─system.slice | ||
+ | ├─upower.service | ||
+ | │ └─3478 / | ||
+ | ├─polkit.service | ||
+ | │ └─822 / | ||
+ | ├─wpa_supplicant.service | ||
+ | │ └─821 / | ||
+ | ├─crond.service | ||
+ | │ └─793 / | ||
+ | ├─atd.service | ||
+ | │ └─789 / | ||
+ | ├─tuned.service | ||
+ | │ └─762 / | ||
+ | ├─simplegateway.service | ||
+ | │ ├─ | ||
+ | │ ├─ 3202 / | ||
+ | │ ├─ 3384 / | ||
+ | │ ├─13111 /bin/sh / | ||
+ | │ └─13458 sleep 1 | ||
+ | ├─postfix.service | ||
+ | │ ├─1810 / | ||
+ | │ ├─1833 pickup -l -t unix -u | ||
+ | │ └─1834 qmgr -l -t unix -u | ||
+ | ├─cups.service | ||
+ | │ └─756 / | ||
+ | ├─sshd.service | ||
+ | │ └─755 / | ||
+ | ├─docker.service | ||
+ | │ ├─750 /bin/sh -c / | ||
+ | │ ├─753 / | ||
+ | │ └─754 / | ||
+ | ├─NetworkManager.service | ||
+ | │ ├─ 678 / | ||
+ | │ └─1968 / | ||
+ | ├─abrt-xorg.service | ||
+ | │ └─586 / | ||
+ | ├─abrt-oops.service | ||
+ | │ └─582 / | ||
+ | ├─abrtd.service | ||
+ | │ └─581 / | ||
+ | ├─dbus.service | ||
+ | │ └─513 / | ||
+ | ├─chronyd.service | ||
+ | │ └─525 / | ||
+ | ├─firewalld.service | ||
+ | │ └─510 / | ||
+ | ├─avahi-daemon.service | ||
+ | │ ├─507 avahi-daemon: | ||
+ | │ └─530 avahi-daemon: | ||
+ | ├─ModemManager.service | ||
+ | │ └─506 / | ||
+ | ├─smartd.service | ||
+ | │ └─505 / | ||
+ | ├─libstoragemgmt.service | ||
+ | │ └─494 / | ||
+ | ├─gssproxy.service | ||
+ | │ └─517 / | ||
+ | ├─systemd-logind.service | ||
+ | │ └─492 / | ||
+ | ├─rsyslog.service | ||
+ | │ └─488 / | ||
+ | ├─alsa-state.service | ||
+ | │ └─487 / | ||
+ | ├─auditd.service | ||
+ | │ ├─463 / | ||
+ | │ ├─473 / | ||
+ | │ └─475 / | ||
+ | ├─systemd-udevd.service | ||
+ | │ └─381 / | ||
+ | ├─lvm2-lvmetad.service | ||
+ | │ └─378 / | ||
+ | ├─systemd-journald.service | ||
+ | │ └─349 / | ||
+ | └─system-getty.slice | ||
+ | └─getty@tty1.service | ||
+ | └─798 / | ||
+ | </ | ||
+ | |||
+ | 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 |
</ | </ | ||
- | Pour ajouter | + | |
+ | ===LAB #1 - Travailler avec les cgroups sous RHEL/CentOS 7=== | ||
+ | |||
+ | Créez | ||
< | < | ||
- | [root@centos7 ~]# mdadm --manage --add /dev/md1 /dev/sda10 | + | [root@centos7 ~]# vi / |
- | mdadm: added /dev/sda10 | + | [root@centos7 ~]# cat / |
+ | [Unit] | ||
+ | Description=The foo service that does nothing useful | ||
+ | After=remote-fs.target nss-lookup.target | ||
+ | |||
+ | [Service] | ||
+ | ExecStart=/usr/bin/ | ||
+ | ExecStop=/bin/kill -WINCH ${MAINPID} | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=multi-user.target | ||
</ | </ | ||
- | L' | + | Consultez |
< | < | ||
- | [root@centos7 ~]# mdadm --detail | + | [root@centos7 ~]# systemctl status foo.service |
- | /dev/md1: | + | ● foo.service |
- | Version : 1.2 | + | |
- | Creation Time : Tue Aug 2 15:10:12 2016 | + | Active: inactive |
- | Raid Level : raid5 | + | </ |
- | Array Size : 1021952 (998.17 MiB 1046.48 MB) | + | |
- | Used Dev Size : 510976 | + | |
- | 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 | + | |
- | | + | |
- | Working Devices : 3 | + | |
- | | + | |
- | Spare Devices : 0 | + | |
- | | + | < |
- | Chunk Size : 512K | + | [root@centos7 ~]# systemctl start foo.service |
+ | [root@centos7 ~]# systemctl enable foo.service | ||
+ | Created symlink from / | ||
+ | [root@centos7 ~]# systemctl status foo.service | ||
+ | ● foo.service - The foo service that does nothing useful | ||
+ | | ||
+ | | ||
+ | Main PID: 22256 (sha1sum) | ||
+ | | ||
+ | | ||
- | | + | Jun 15 13:13:17 centos7.fenestros.loc |
- | UUID : fd8bac53:1457a4f4: | + | Jun 15 13: |
- | Events : 40 | + | </ |
- | Number | + | Notez que notre service a été placé dans la tranche **system.slice** : |
- | 4 | + | |
- | 1 | + | < |
- | 3 | + | [root@centos7 ~]# systemctl show -p Slice foo.service |
+ | Slice=system.slice | ||
</ | </ | ||
- | Naturellement, | + | Utilisez ps pour voir le pourcentage |
< | < | ||
- | [root@centos7 ~]# echo ' | + | [root@centos7 ~]# ps -p 22256 -o pid, |
- | [root@centos7 ~]# mdadm --detail | + | PID COMMAND |
- | [root@centos7 ~]# cat /etc/mdadm.conf | + | 22256 sha1sum |
- | DEVICES | + | </code> |
- | ARRAY /dev/md1 metadata=1.2 name=centos7.fenestros.loc: | + | |
+ | Fixez maintenant la valeur de CPUShares pour ce service à 250 : | ||
+ | |||
+ | < | ||
+ | [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/ | ||
+ | 50-CPUShares.conf | ||
+ | [root@centos7 ~]# cat / | ||
+ | [Service] | ||
+ | CPUShares=250 | ||
+ | </ | ||
+ | |||
+ | <WRAP center round important> | ||
+ | **Important** : En utilisant l' | ||
+ | </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 | ||
+ | </ | ||
+ | |||
+ | Vérifiez maintenant que la limite a été appliquée : | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# cat / | ||
+ | 250 | ||
+ | [root@centos7 ~]# systemctl show -p MainPID foo.service | ||
+ | MainPID=27233 | ||
+ | [root@centos7 ~]# cat / | ||
+ | 4: | ||
+ | 1: | ||
+ | </ | ||
+ | |||
+ | Créez maintenant le service **bar** : | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# vi /etc/systemd/ | ||
+ | [root@centos7 ~]# cat /etc/systemd/ | ||
+ | [Unit] | ||
+ | Description=The bar service that does nothing useful | ||
+ | After=remote-fs.target nss-lookup.target | ||
+ | |||
+ | [Service] | ||
+ | ExecStart=/usr/bin/ | ||
+ | ExecStop=/ | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=multi-user.target | ||
+ | </ | ||
+ | |||
+ | Fixez maintenant la limite de CPUShares pour ce service à 2000 : | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# systemctl set-property bar.service CPUShares=2000 | ||
+ | Failed to set unit properties on bar.service: | ||
+ | [root@centos7 ~]# systemctl start bar.service | ||
+ | [root@centos7 ~]# systemctl enable bar.service | ||
+ | Created symlink from / | ||
+ | [root@centos7 ~]# systemctl set-property bar.service CPUShares=2000 | ||
+ | </ | ||
+ | |||
+ | Appliquez la limite : | ||
+ | |||
+ | < | ||
+ | [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 | ||
+ | | ||
+ | Drop-In: / | ||
+ | | ||
+ | | ||
+ | Main PID: 29515 (md5sum) | ||
+ | | ||
+ | | ||
+ | |||
+ | 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... | ||
+ | </ | ||
+ | |||
+ | Re-démarrer les services foo et bar : | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# systemctl restart foo.service | ||
+ | [root@centos7 ~]# systemctl status foo.service | ||
+ | ● foo.service - The foo service that does nothing useful | ||
+ | | ||
+ | Drop-In: / | ||
+ | | ||
+ | | ||
+ | Main PID: 652 (sha1sum) | ||
+ | | ||
+ | | ||
+ | |||
+ | Jun 15 13:50:08 centos7.fenestros.loc systemd[1]: Started The foo service that does nothing useful. | ||
+ | Jun 15 13: | ||
+ | [root@centos7 ~]# systemctl restart bar.service | ||
+ | [root@centos7 ~]# systemctl status bar.service | ||
+ | ● bar.service - The bar service that does nothing useful | ||
+ | | ||
+ | Drop-In: / | ||
+ | | ||
+ | | ||
+ | Main PID: 810 (md5sum) | ||
+ | | ||
+ | | ||
+ | |||
+ | 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... | ||
+ | </ | ||
+ | |||
+ | Utilisez ps pour voir le pourcentage du CPU utilisé par les deux services : | ||
+ | |||
+ | < | ||
+ | [root@centos7 ~]# ps -p 652,810 -o pid, | ||
+ | PID COMMAND | ||
+ | 652 sha1sum | ||
+ | 810 md5sum | ||
</ | </ | ||
----- | ----- | ||
- | < | + | |
- | <div align=" | + | Copyright © 2023 Hugh Norris. |
- | Copyright © 2020 Hugh Norris. | + | |
- | </ | + |