Apparence
Uubu.fr

Les systèmes Linux, l’open source, les réseaux, l’interopérabilité, etc.
« Il vaut mieux viser la perfection et la manquer que viser l’imperfection et l’atteindre. » (Bertrand Arthur William RUSSEL)
03 décembre 2016

htmlpdflatexmanmd




needrestart

needrestart

Vérifier les services qui doivent être redémarrés après une mise à jours de librairies

OPTIONS

-v mode verbeux
-q mode silencieux
-m ‹mode› Définis le mode de détail technique (e = easy, a = advanced)
-n  Réponse par défaut = no
-c ‹cfg› Spécifier le fichier de configuration
-r ‹mode› Définis le mode de redémarrage (l = list only, i = interactive restart, a = automatic restart)
-b Active le mode batch
-p Mode plugin nagios
-f ‹fe› frontend debconf
-u ‹ui› Utiliser le package UI préféré
-k Vérifie les kernels obsolètes
-l Vérifie les librairies obsolètes
^
14 août 2011

htmlpdflatexmanmd




nsswitch.conf

nsswitch.conf

Fichier de configuration pour la gestion des services de nom

   Les bases de données suivantes sont disponibles:

aliases alias de messagerie, utilisé par sendmail
ethers Numéros ethernet
group groupes d'utilisateurs, utilisé par getgrent(3)
hosts Noms d'hôtes et numéros, utilisé par gethostbyname(3) et similaires
netgroup liste d'hôtes et d'utilisateurs, utilisé pour les règles d'accès, NIS uniquement
networks noms réseaux et numéros, utilisés par getnetent(3)
passwd mots de passe utilisateurs, utilisé par getpwent(3)
protocols protocoles réseaux, utilisés par getprotoent(3)
publickey clés publiques et secret pour Secure_RPC utilisé par NFS et NIS+
rpc Noms et valeurs RPC, utilisé par getrpcbyname(3)
services services réseaux, utilisé par getservent(3)
shadow mots de passe utilisateurs, utilisés par getspnam(3)

Exemple de nsswitch.con par défaut:
passwd : compat
group : compat
shadow : compat
    
hosts : dns [!UNAVAIL=return] files
networks : nis [NOTFOUND=return] files
ethers : nis [NOTFOUND=return] files
protocols : nis [NOTFOUND=return] files
rpc : nis [NOTFOUND=return] files
services : nis [NOTFOUND=return] files

   La première colonne est la base de données. Le reste de la ligne spécifie le processus de recherche. Vous pouvez spécifier le fonctionnement pour chaque base de données. La configuration pour chaque base de données peut contenir 2 éléments différents: la spécification du service et la réaction de la recherche.

La syntaxe de la réaction de recherche est la suivante:
'[' ( ' !' ? STATUS '=' ACTION )+ ']'

STATUS = success | notfound | unavail | tryagain
ACTION = return | continue
success Aucune erreur ne s'est produit et l'entrée désirée est retournée (défaut : return)
notfound le processus de recherche fonctionne mais la valeur recherchée n'a pas été trouvée (défaut : continue)
unavail le service est indisponible de manière permanente. Cela peut être un fichier non disponible, ou pour DNS, le serveur non disponible ou une requête non permise. (Défaut : continue)
tryagain Le service est temporairement indisponible. Cela peut être un fichier bloqué ou un serveur saturé (défaut : continue)

Intéraction avec le mode compat

   libc5 sans NYS n'a pas de nss mais permet certains contrôles de stratégie. Dans /etc/passwd vous pouvez avoir des entrées sous la forme +user ou +@netgroup (inclut l'utilisateur spécifié depuis la map NIS passwd), -user ou -@netgroup (exclut l'utilisateur spécifié), et + (inclus tous les utilisateurs, excepté ceux exclus).

   Vous pouvez écraser certains champs passwd pour un utilisateur particulier depuis la map NIS passwd en utilisant la forme étendue +user :: :: :: dans /etc/passwd. Les champs non vides écrasent les informations dans la map NIS passwd. Vu que la plupart des personnes placent un + à la fin de /etc/passwd pour inclure tout le monde depuis NIS, le switch fournit une alternative plus rapide pour ce cas (passwd : files nis) qui ne requière pas le simple + dans /etc/passwd, /etc/group et /etc/shadow. Si ce n'est pas suffisant, le service compat fournit une sémantique +/- complète. Par défaut, la source nis est utilisée, mais peut être changé en spécifiant nisplus comme source pour la pseudo base de données passwd_compat, group_compat et shadow_compat. Ces pseudos bases de données sont uniquement disponibles dans la librairie GNU C.

Fichiers

   Un service nommé SERVICE est implémenté par une librairie d'objet partagée nommée libnss_SERVICE.so.X qui est dans /lib.

/etc/nsswitch.conf Fichier de configuration
/lib/libnss_compat.so.X implémente compat
/lib/libnss_db.so.X implémente db
/lib/libnss_dns.so.X implémente dns
/lib/libnss_files.so.X implémente files
/lib/libnss_hesiod.so.X implémente hesiod
/lib/libnss_nis.so.X implémente nis
/lib/libnss_nisplus.so.2 implémente nisplus

Notes

   Pour chaque processus utilisant nsswitch.conf, le fichier entier est lu une seule fois.
^
20 décembre 2015

htmlpdflatexmanmd




NUMA

NUMA

Système NUMA - introduction

   Les information relatives à numa peuvent être trouvées dans /sys/devices/system/node/

  /proc/‹pid›/numa_maps donne des informations sur la stratégie mémoire et l'allocation NUMA utilisée pour le processus. Chaque ligne contient des informations sur la plage mémoire utilisé par le processus.

   Le premier champ de chaque ligne montre l'adresse de début de la plage mémoire. Ce champ permet de corréler avec le contenu de /proc/‹pid›/maps, qui contient l'adresse de fin de la plage et d'autres informations, tel que les permissions d'accès et le partage

   Le second champ montre la stratégie mémoire actuellement effective pour la plage mémoire. Noter que la stratégie mémoire n'est pas nécessairement la stratégie installée par le processus pour cette plage mémoire. Spécifiquement, si le processus a installé une stratégie défaut pour cette plage, la stratégie effective pour cette plage sera la stratégie du processus, qui peut ou non être le défaut.

   Le reste de la ligne contient des informations sur les pages allouées dans la plage mémoire, comme suit:

N‹node›=‹nr_pages› le nombre de pages allouées dans le nœud. nr_pages inclus seulement les pages actuellement mappées par le processus. La migration de page et la réclamation de mémoire peut avoir des pages non mappées temporairement associées avec cette plage mémoire.
file=‹filename› le fichier concerné par la plage mémoire. Si le fichier est mappé comme privé, les accès d'écriture peuvent avoir généré des pages COW dans cette plage mémoire. Ces pages sont affichées comme pages anonymes.
heap plage mémoire utilisée pour le heap
stack plage mémoire utilisée pour la pile
huge plage de grandes mémoire
anon=‹pages› nombre de pages anonymes dans la plage
dirty=‹pages› nombre de dirty pages
mapped=‹pages› nombre total de pages mappées, si différent des pages dirty et anon
mapmax=‹count› mapcount maximum (nombre de processus mappant une seule page
swapcache=‹count› Nombre de pages qui ont une entrée associée dans le swap
active=‹pages› Nombre de pages dans la liste active. affiché seulement s'il est différent du nombre de pages dans cette plage. Cela signifie que des pages inactives existent dans la plage mémoire.
writeback=‹pages› Nombre de pages actuellement en cour d'écriture sur disque

^
20 décembre 2015

htmlpdflatexmanmd




numactl

numactl

Contrôle la stratégie NUMA pour les processus ou le partage mémoire

   numactl lance les processus avec une planification NUMA spécifique ou stratégie de placement mémoire. La stratégie est définis pour la commande héritée par tous ses enfants. De plus il peut définir une stratégie persistante pour les segments de mémoire partagée ou fichiers.

   Les nœuds peuvent être spécifié comme N,N,N ou N-N ou N,N-N ou N-N,N-N. Les nœuds relatifs peuvent être spécifiés comme +N,N,N ou +N-N ou +N,N-N. + indique que les numéros de nœuds sont relatifs au jeu de processus de nœud permis dans son cpuset actuel. !N-N indique l'inverse de N-N. Au lieu d'un numéro de nœud, un nœud peut également être:

netdev:DEV Le nœud connecté au périphérique réseau dev
file:PATH Le périphérique block PATH
ip:HOST le nœud du périphérique réseau de HOST
block:PATH le nœud du périphérique block PATH
pci:[seg:]bus:dev[:func] le nœud du périphérique PCI

   Noter que block résout les noms de périphériques block du kernel seulement pour les noms udev dans le fichier dans /dev.

  Les paramètres de stratégie sont:‹/br›

--all, -a reset le cpuset par défaut, afin qu'il soit possible d'utiliser tous les cpu/nœuds pour les paramètres de stratégie suivante.
--interleave=nodes, -i nodes Définie une stratégie d'entrelacement mémoire. La mémoire sera allouée en utilisant un round robin dans les nœuds. Plusieurs nœuds peuvent être spécifiés dans --interleave, --membind et --cpunodebind
--membind=nodes, -m nodes Alloue la mémoire uniquement dans les nœuds. L'allocation échoue s'il n'y a pas suffisamment de mémoire disponible dans ces nœuds.
--cpunodebind=nodes, -N nodes Execute le processus seulement sur les cpus spécifiés. Accepte les numéros de cpu comme affiché dans le champ processor de /proc/cpuinfo ou les cpus relatifs dans le cpuset courant. "all" est accepté, qui signifie tous les cpu du cpuset.
--localalloc, -l Alloue toujours dans le nœud courant
--preferred=node Alloue la mémoire de préférence dans le nœud spécifié, mais si la mémoire ne peut être allouée, utilise d'autres nœuds.
--show, -s Affiche les paramètre de stratéie numa du processus courant
--hardware, -H Affiche l'inventaire des nœuds disponible dans le système.

           numactl peut définir une stratégie pour un segment de mémoire partagée SYSV ou un fichier dans shmfs/hugetlbfs. Cette stratégie est persistante et sera toujours utilisée par tous les mappages de cette mémoire partagée. L'ordre des options a une signification ici. La spécification doit au moins inclure --shm, --shmid, --file pour spécifier le segment de mémoire partagée ou le fichie et une stratégie mémoire comme décrite plus haut ( --interleave, --localalloc, --preferred, --membind ).

--huge En créant un segment de mémoire partagée SYSV, utilise des grandes pages. Seulement valide avant --shmid ou --shm
--offset Spécifie l'offset dans le segment de mémoire partagé. défaut: 0. Les unités valides sont m (Mo), g(Go), k(Ko), sinon est spécifié en octets.
--strict Donne une erreur quand une page dans l'aire de stratégie dans le segment de mémoire partagée a déjà généré une faute avec un conflit de stratégie. par défaut, ignore silencieusement.
--shmmode shmmode seulement valide avant --shmid ou shm en créant un segment de mémoire partagé avec un mode numérique shmmode.
--length length Applique la stratégie à la longueur de plage du segment de mémoire partagée ou créé la longueur du segment. par défaut, utilise la longueur restante requise quand un segment de mémoire partagée est créé et spécifie la longueur du nouveau segment. Les unités de valeurs sont m, g, k ou en octet par défaut.
--shmid id Créé ou utilise un segment de mémoire partagé avec l'id numérique spécifié
--shm shmkeyfile Crée ou utilise un segment de mémoire partagé, avec l'id généré en utilisant fotk(3) depuis shmkeyfile.
--file tmpfsfile Définis la stratgie pour un fichier dans tmpfs ou hugetlbfs
--touch Touch les pages pour forcer la stratégie. Ne les touch pas par défaut, la stratégie est appliquée quand une application mappe et accède à une page.
--dump Dump la stratégie dans la plage spécifiée
--dump-nodes Dump tous les nœuds de la plage spécifique (très verbeux!)

   Les spécifieurs de nœud valides sont:

all tous les nœuds
number Numéro de nœud
number1{,number2} nœud number1 et nœud number2
number1-number2 plage de nœuds
! nodes Inverse la sélection

Exemples

Lance myapplic sur les cpu 0-4 et 8-12 du cpuset courant:
numactl --physcpubind=+0-4,8-12 myapplic arguments
Lance une grosse base avec sa mémoire entrelacée sur tous les CPU:
numactl --interleave=all bigdatabase arguments
Lance le process dans le nœud 0 avec la mémoire allouée dans les nœuds 0 et 1:
numactl --cpunodebind=0 --membind=0,1 process
Idem, mais avec une option (-l) qui peut être confondue avec une option numactl:
numactl --cpunodebind=0 --membind=0,1 -- process -l
Lance network-server dans le nœud de périphérique réseau eth0 avec sa mémoire également dans le même nœud:
numactl --cpunodebind=netdev:eth0 --membind=netdev:eth0 network-server
Définis le nœud 1 comme préféré et affiche l'état résultant:
numactl --preferred=1 numactl --show
Entrelace toute la région mémoire partagée sysv spécifiée par /tmp/shmkey sur tous les nœuds:
numactl --interleave=all --shm /tmp/shmkey
Place un fichier tmpfs dans 2 nœuds:
numactl --membind=2 dd if=/dev/zero of=/dev/shm/A bs=1M count=1024
numactl --membind=3 dd if=/dev/zero of=/dev/shm/A seek=1024 bs=1M count=1024
Réinitialise la stratégie pour le fichier de mémoire partagée file à la stratégie par défaut localalloc:
numactl --localalloc /dev/shm/file

Notes

   Les commande ne sont pas exécutée en utilisant un shell. Utiliser sh -c pour cela.

  Définir la stratégie pour un fichier hugetlbfs ne fonctionnement pas actuellement.

  Les segment de mémoire partagée plus grand que l'espace d'adressage ne peut pas être complètement sous stratégie.
^
20 décembre 2015

htmlpdflatexmanmd




numad

numad

Service en userspace qui fournis des conseils de placement et de gestion de processus pour utiliser efficacement les CPU et la mémoire dans le système avec une topologie NUMA

   numad est un service qui monitor la topologie NUMA et l'utilisation des ressources. Il tente de localiser les processus pour la localité NUMA, l'affinité, en ajustant dynamiquement pour changer les conditions système. numad fournis également un guide pour assister la gestion des applications avec une liaison manelle des ressources CPU et mémoire.

OPTIONS

-C 0|1 Cette option contrôle si numad traite le cache de fichier inactif comme mémoire disponible. Par défaut, il peut compter le cache de fichier inactif comme mémoire libre.
-d mode debug
-H ‹THP_scan_sleep_ms› Définis l'intervalle de scan transparent hugepage en milliseconde. /sys/kernel/mm/tranparent_hugepage/khugepaged/scan_sleep_millisecs est généralement de 10000ms par l'os. Le défaut est changé par numad à 1000ms vu que çà aide le service hugepage à être plus agressif quand il déplace la mémoire entre les nœuds. à 0, numad laisse la valeur du système. 100ms peut améliorer les performances des processus à forte charge qui utilisent de nombreuses transparent_hugepages.
-i ‹[min_interval:]max_interval› Interval de temps d'attente entre les scans système. Défaut: 5 (min) et 15 (max) secondes. max_interval à 0 cause le service à quitter. Une valeur plus grande diminue la charge de numad, mais diminue la réponse les charges changeantes.
-K 0|1 Cette options contrôle si numad conserve entrelacement de la propagation de mémoire au travers des nœuds NUMA, ou tente de fusionner la mémoire entrelacée dans les nœuds NUMA locaux. Le mode par défaut est de fusionner la mémoire entrelacée C'est approprié pour localiser les processus dans un sous-jeu des nœuds NUMA du système. Si vous lancez une grosse application simple instance que alloue de la mémoire entrelacée parce que la charge aura des motifs d'accès mémoire imprédictibles, les résultats seront meilleur avec -K 1 pour instruire numad de conserver la mémoire entrelacée distribuée.
-l ‹log_level› Définis le niveau de log. défaut: 5
-m ‹target_memory_locality› Définis le seuil de localité mémoire désiré pour stopper le déplacement de mémoire. numad peut arrêter de traiter la mémoire quand plus de ce pourcentage de mémoire du processus est déjà localisé dans le ou les nœuds cible. le défaut est 90%. numad localise fréquemment ce seuil mais ne le fait pas nécessairement. à 100%, numad tente en permanence de déplacer la mémoire que le kernel n'arrivera jamais à déplacer.
-p ‹PID› ajoute le pid à la liste d'inclusion des processus à considérer pour la gestion, si le processus utilise déjà des ressources significative. Peut être spécifié plusieurs fois au démarrage, mais une fois lancé, un seul pid peut être ajouté à la liste d'inclusion par invocation de numad. Utilisé avec -S pour contrôler précisemment le périmètre des processus que numad peut gérer. Noter que ce processus spécifié ne sera pas nécessairement géré activement sauf s'il rencontre le seuil de numad, qui est actuellement de 300Mo et 1/2 CPU.
-r ‹PID› Supprime le pid des liste d'inclusion et d'exclusion des processus. une foir le service démarré, seul un PID peut être supprimé par invocation de numad. Avec -S, -p et -x pour contrôler précisemment le périmètre des processus que numad peut gérer.
-R ‹CPU_LIST› Spécifie une liste de cpu que numad devrait considérer comme réservé pour une utilisation non numad. Aucun processus ne sera lié aux CPU spécifiés par numad. Cette option est seulement effective quand numad démarre.
-S 0|1 Cette option contrôle si numad scanne tous les processus système ou seulement les processus dans la liste d'inclusion PID. Scan tous les processus par défaut. -S 0 scanne seulement la liste d'inclusion PID . numad -S 0 -p ‹PID-1› -p ‹PID-2› -p ‹PID-3› limit le scan, et donc la gestion automatique NUMA, à seulement 3 processus.
-t ‹logical_CPU_percent› Spécifie la valeur de ressource des CPU logique. Les threads hardware partagent généralement pluse de ressources, et ces CPU logiques ajoutent seulement une fraction de puissance CPU. Par défaut numad considère les CPU logiques à seulement 20% d'un cœur hardware dédié.
-u ‹target_utilization› Définis le pourcentage de consommation d'un nœud. Défaut: 85%. Diminuer cette valeur pour maintenir plus de ressource disponible dans chaque nœud. à 100, les performances systèmes sont améliorée. Il est possible d'aller jusqu'à 130 pour surcharger les CPU dans les nœuds, mais l'utilisation mémoire est toujours plafonnée à 100%.
-v mode verbeux
-w ‹NCPUS[:MB]› demande à numad les meilleurs nœuds NUMA pour lier une entité qui nécessite ‹NCPUS›. La quantité de mémoire est optionnelle, mais devrait normallement être spécifiée pour que numad recommande les nœuds NUMA avec la capacité CPU disponible et la mémoire disponible. La sortie de cette option est une chaîne qui contient une liste de nœud NUMA. Cette liste devrait être placé dans une variable (ex:NODES), et utilisé comme paramètre dans numactl -m $NODES -N $MODES ...
-x ‹PID› Ajoute le PID à la liste d'exclusion de processus à blacklister de la gestion. Peut être spécifié plusieurs fois au démarrage, mais une seul fois ensuite par invocation de numad. avec -S permet de contrôle précisemment le périmètre des processus que numad peut gérer.

Exemples

numad peut être lancé comme service système:
/usr/bin/numad
les autres invocation de numad peuvent être utilisé pour changer dynamiquement les options à chaud:
/usr/bin/numad -i0
^
21 décembre 2015

htmlpdflatexmanmd




numastat

numastat

Affiche des statistiques mémoire par nœud numa pour les processus et l'os

   numastat sans options ou argument, affiche des statistiques par nœud numa avec les champs suivant:

numa_hit Mémoire allouée avec succès dans ce nœud comme prévu
numa_miss Mémoire allouée dans ce nœud en dépit des préférences de processus Chaque numa_miss a un numa_foreign dans un autre nœud
numa_foreign est la mémoire prévu pour ce nœud, mais actuellement allouée dans un nœud différent.
interleave_hit Mémoire entrelacée allouée avec succès dans ce nœud comme prévu
local_node mémoire allouée dans ce nœud alors qu'un processus fonctionnait dessus
other_node mémoire allouée dans ce nœud alors qu'un processus fonctionnait dans un autre nœud.

OPTIONS

-c Minimise la table affichée
-m Afiche les informations mémoire système type meminfo.
-p ‹PID› ou ‹pattern› Affiche les informations mémoire par nœud pour le pid ou motif spécifié.
-s[‹node›] Trie les données de la table dans l'ordre descendant.
-v Rapport plus verbeux
-z Enlève les données 0 de la table
^
21 décembre 2015

htmlpdflatexmanmd




numatop

numatop

Outil d'analyse pour l'accès mémoire

   Les système modernes utilisent un concept NUMA (Non-Uniform Memory Access) pour le multi-cpu. Dans les systèmes NUMA et les processeurs organisés de telle manière que certaines parties de la mémoire sont proches d'un processeur donné, alors que d'autres parties sont plus éloignées. Un processeur peut accéder à la mémoire proche de lui plus rapidement que la mémoire éloignée.

   numatop est un outil d'observation pour la caractérisation de localité mémoire en temps-réel et d'analyse de processus et threads tournant dans un système NUMA. Il aide l'utilisateur à caractériser le fonctionnement NUMA des processus et threads et d'identifier où les goulots d'étranglement se produisent en terme de performances. L'outil utilise la technologie de compteur de performance Intel et associe les données de performances avec les informations temps réel de Linux pour fournir une analyse temps-réel dans les systèmes de production. L'outil peut être utilisé pour:

- caractériser la localité de tous les processus et threads pour identifier ceux ayant la localité la plus pauvre dans le système.
- Identifier les aires de mémoire "hot", indiquer la latence mémoire moyenne, et fournir l'emplacement où la mémoire accédée est allouée. Une aire de mémoire "hot" est où les accès process/thread sont les plus fréquent. numatop a un métrique appelé "ACCESS%" qui spécifie le pourcentage d'accès mémoire attribuable à chaque aire mémoire. numatop n'enregistre que les accès mémoire qui ont des latences supérieures à ceux prédéfinis par le seuil (128 cycles cpu)
- Fournis les call-chain dans le code process/thread qui accède à une aire mémoire hot.
- Fournis call-chain quand le process/thread génère certains compteurs d'évènement (RMA/LMA/IR/CYCLE). Les call-chain aident à localiser le code source qui génèrent les évènements.

        RMA Remote Memory Access
        LMA Local Memory Access
        IR Instruction Retired
        CYCLE cycles CPU

- Fournir des statistiques par nœud pour l'utilisation mémoire et CPU. Un nœud est une région de mémoire dans laquelle tout octet a la même distance de chaque CPU.
- Affiche, en utilisant une interface user-friendly, la liste des process/thread triés par certaines métriques (par défaut, trié par l'utilisation CPU). Les utilisateur peuvent également utiliser les raccourcis pour retrier la sortie par ces métriques: RMA, LMA, RMA/LMA, CPI et CPU%.

        RMA/LMA ratio de RMA/LMA
        CPI cycle CPU par instruction
        CPU% utilisation CPU

   numatop est un outil GUI qui traque et analyse périodiquement l'activité NUMA des processus et threads et affiche des métriques utiles.

   Ci-dessous est une description détaillée des diverses affichages et les éléments de données qu'elles affichent.

WIN1 - Supervision des processus et threads

   Affiche la caractérisation de localité de tous les processus. C'est la première fenêtre affichée a démarrage. Cette fenêtre affiche une liste de processus, trié par % de CPU. Généralement, le processus intensifs en mémoire est également intensif en CPU. les touches 1,2,3,4, et 5 permettent de trier la sortie par RMA, LMA, RMA/LMA, CPI, et CPU%, respectivement.

        RAM(K) nombre de RMA (l'unité est 1000)
        LMA(K) nombre de LMA (l'unité est 1000)
        RMA/LMA ratio de RMA/LMA
        CPI cycles CPU par instruction
        CPU% utilisation CPU du système

        Q quitter l'application
        H Rafraîchir la fenêtre
        R Rafraîchis les données
        I Passer à WIN2
        N Passer à WIN11
        1 Trier par RMA
        2 Trier par LMA
        3 Trier par ratio RMA/LMA
        4 Trier par CPI
        5 Trier par CPU%

WIN2 - Supervision des processus et threads (normalisée)

   Affiche la caractérisation de localité normalisée de tous les processus

        RPI(K) RMA normalisé par 1000 instructions: RPI(K) = RMA/ (IR / 1000)
        LPI(K) LMA normalisé par 1000 instructions: RPI(K) = LMA/ (IR / 1000)
        Les autres métrique sont les mêmes.

        Q quitter l'application
        H Passer à WIN1
        B Retour à la précédent fenêtre
        R Rafraîchis les données
        N Passer à WIN11
        1 Trier par RPI
        2 Trier par LPI
        3 Trier par ratio RMA/LMA
        4 Trier par CPI
        5 Trier par CPU%

WIN3 - Supervision de processus

   Affiche la caractérisation de localité avec l'affinité de nœud d'un processus spécifié

        NODE L'id de nœud
        CPU% UTilisation CPU par nœud
        Les autres métriques restent les mêmes

        Q quitter l'application
        H Passer à WIN1
        B Retour à la précédent fenêtre
        R Rafraîchis les données
        N Passer à WIN11
        L Affiche les informations de latence
        C Affiche le call-chain

WIN4 - Supervision de tous les threads

   Affiche la caractérisation de localité de tous les threads dans un processus spécifié.

WIN6 - Supervision des aires mémoire

   Affiche l'utilisation d'aire mémoire avec la latence d'accès associée d'un process/thread

        ADDR Addresse de début de l'aire mémoire
        SIZE Taille de l'aire mémoire
        ACCESS% Pourcentage d'accès mémoire fait dans cette aire mémoire
        LAT(ns) La latence moyenne des accès mémoire
        DESC Description de l'aire mémoire

        Q quitter l'application
        H Passer à WIN1
        B Retour à la précédent fenêtre
        R Rafraîchis les données
        A Affiche la distribution de nœuds d'accès mémoire
        C Affiche le call-chain quand les process/thread accèdent à la mémoire.

WIN7 - vue générale de distribution de nœuds d'accès mémoire

   Affiche le pourcentage d'accès mémoire venant du process/thread de chaque nœud

        Q quitter l'application
        H Passer à WIN1
        B Retour à la précédent fenêtre
        R Rafraîchis les données

WIN8 - sépare l'aire mémoire dans la mémoire physique dans le nœud

   Sépare l'aire mémoire dans le mappage physique dans le nœud avec la latence d'accès associée d'un processus/thread.

WIN9 - Call-chain quand les process/threads génèrent l'evènement (RMA/LMA/CYCLE/IR)

   Détermire les call-chains du code qui génère RMA/LMA/CYCLE/IR

        Q quitter l'application
        H Passer à WIN1
        B Retour à la précédent fenêtre
        R Rafraîchis les données
        1 Localise le call-chain quand le processus/thread génère RMA
        2 Localise le call-chain quand le processus/thread génère LMA
        3 Localise le call-chain quand le processus/thread génère CYCLE
        4 Localise le call-chain quand le processus/thread génère IR

WIN10 - Call-chain quand le process/thread accède à l'aire mémoire

   Détermine les call-chains du code qui référence cette aire mémoire. La latence doit être supérieure au seuil de latence prédéfinis (128 cycles CPU)

WIN11 - Vue générale des nœuds

   Affiche les statistiques de base par nœud pour ce système

        MEM.ALL RAM utilisable totale (physique moins quelques octets réservés et le code du kernel)
        MEM.FREE Somme LowFree + HighFree
        CPU% UTilisation CPU par nœud

WIN12 - information de nœud

   Affiche l'utilisation et CPU pour le nœud sélectionné

        CPU Tableau de cpu logiques appartenant à ce nœud
        CPU% Utilisation de CPU par nœud
        MEM active quantité de mémoire utilisé la plus récemment et n'est pas réclamé
        MEM inactive Quantité de mémoire qui n'a pas été utilisé depuis un certain temps et est éligible au swap
        Dirty Quantité de mémoire attendant d'être écrite sur disque
        Writeback Quantité de mémoire activement écrite sur le disque
        Mapped Toutes les pages mappée dans un processus

OPTIONS

-s sampling_precision balance entre précision et charge(normal), précision(high), faible charge(low). défaut: normal.
-l log_level Spécifie le niveau de log dans le fichier de log. valeurs valides: 2
-f log_file spécifie le fichier de log
-d dump_file Spécifie le fichier de dump

Exemples

Lancer numatop à haute précision:
numatop -s high
Écrire tous les messages d'alerte dans /tmp/numatop.log:
numatop -l 2 -o /tmp/numatop.log
Dump les données de l'écrant dans /tmp/dump.log:
numatop -d /tmp/dump.log

Notes

   Il est nécessaire d'avoir les privilèges root pour lancer numatop, ou de définir /proc/sys/kernel/perf_event_paranoid à 1. numatop supporte les processeurs Intel Xeon.
^
12 février 2015

htmlpdflatexmanmd




watchdog

watchdog

service watchdog

Description

   Le noyau linux peut réinitialiser le système si des problèmes sérieux sont détectés. Cela peut être implémenté via le hardware spécial watchdog, ou via un watchdog logiciel légèrement moins fiable dans le kernel. Dans tous les cas, un service doit dire au kernel que tout va bien. Si le service ne le fait plus, le système est réinitialisé.

   Watchdog est un service qui ouvre /dev/watchdog, et maintient une écriture aussi souvent que possible pour empêcher le noyau de se réinitialiser, au moins une fois par minute. Chaque écriture retarde le temps de reboot d'une minute. Au bout d'une minute d'inactivité, le système est réinitialisé. Dans le cas d'un watchdog logiciel, la capacité de rebooter le système dépend de l'état de la machines et des interruptions.

   Le service watchdog peut être stoppé sant reboot si le périphérique /dev/watchdog est fermé correctement, sauf si le kernel a été compilé avec l'option CONFIG_WATCHDOG_NOWAYOUT.

Tests

   Le service Watchdog effectue de nombreux tests pour vérifier le status du système:

- Est-ce que la table des processus est pleine?
- Y'a t'il suffisamment de mémoire vive?
- Y'a t'il suffisamment de mémoire allouable?
- Est-ce que certains fichiers sont accessibles?
- Est-ce que certains fichiers ont changés dans l'intervalle de temps donné?
- Est-ce que la charqe système est trop élevée?
- Est-ce qu'un débordement de table de fichier se produit?
- Est-ce qu'un processus fonctionne (identifié par un fichier pid)?
- Est-ce qu'une adresse IP répond aux ping?
- Est-ce que les interfaces réseaux reçoivent du trafic?
- Est-ce que la température est trop élevée?
- Exécute une commande utilisateur pour effectuer des tests arbitraires.
- Exécute une commande de test/réparation.

   Si une de ces vérifications échouent, le système s'éteind. Si un de ces tests, excepté les commandes utilisateurs, dépassent une minute, la machine est redémarrée.

OPTIONS

-v, --verbose mode verbeux
-s, --sync tente de synchroniser le système de fichier à chaque fois que le processus et réveillé.
-b, --softboot soft boot le système si une erreur se produit durant la boucle principale. par ex, si un fichier n'est pas accessible via l'appel stat(). Ne s'applique pas à /dev/watchdog et /proc/loadavg.
-F, --foreground Ne passe pas en tâche de fond
-f, --force Force l'utilisation de l'intervalle donné ou la charge moyenne maximale dans la configuration.
-c config-file, --config-file config-file Spécifie le fichier de configuration au lieu du défaut /etc/watchdog.conf
-q, --no-action Ne reboot pas et n'arrête pas la machine.

Fonctions

   Une fois watchdog démarré, il se place en tâche de fond et tente toutes les vérifications spécifiées dans sa configuration. Entre chaque test il écris dans le périphérique kernel pour empêcher un reset. Une fois tous les tests terminés, watchdog s'endors un certain temps. Le périphérique kernel s'attend à une écriture par minute pour empêcher un reset. Par défaut, watchdog est lancé toutes les secondes pour gérer le périphérique le plus tôt possible.

   Sous de forte charges système, watchdog peut avoir été swappé et peut échouer à revenir à temps. Dans ce cas le kernel va réinitialiser la machine. l'option realtime s'assure qu'il ne sera jamais swappé. Sur les systèmes n'ayant plus de mémoire vive disponible, le kernel va tenter de libérer de la mémoire en tuant des processus. watchdog est exempt de ce système.

   Watchdog tente également périodiquement de se forker lui-même pour voir si la table des processus n'est pas pleine. Ce processus va laisser un processus zombie jusqu'à ce que watchdog de réveil, c'est un fonctionnement normal.

Soft reboot

   Un soft reboot (shutdown et reboot contrôlé) est initié pour toute erreur qui est trouvée. Vu qu'il peut ne plus y avoir d'autres processus disponible, watchdog fait tout par lui-même. Cela signifie:

1. Tuer tous les processus avec un SIGTERM
2. Tuer tous les processus restant avec un SIGKILL
3. Enregistre un shutdown dans wtmp
4. Sauve la valeur aléatoire de /dev/urandom si possible
5. Désactive l'accounting
6. Désactive les quota et le swap
7. Démonte toutes les partitions sauf /
8. Remonte root en lecture-seule
9. Éteins toutes les interfaces réseaux
10. Reboot

Binaire de vérification

   Si le code de retour du binaire de vérification n'est pas 0, watchdog assume une erreur et reboot le système. Les valeurs de retour suivants ont une signification particulière:

255 Reboot le système.
254 Réinitialise le système
253 Surcharge système
252 Température trop élevée
251 /proc/loadavg ne contient pas de données ( ou trop peu)
250 Le fichier donné n'a pas été changé dans l'intervalle donné
249 /proc/meminfo contient des données invalides
248 Processus enfant tué par un signal
247 Processus enfant n'a pas retourné dans le temps impartis
246 libre pour une utilisation spécifique
245 Réservé pour un résultat inconnu.

Binaire repair

   Le binaire repair est lancé avec un paramètre: le numéro d'erreur qui a causé watchdog d'initier le processus de boot. Après avoir tenté de réparer le système le binaire devrait quitter avec le code 0 si le système à été réparé avec succès, sinon watchdog reboot. Le code de retour devrait être le code d'erreur qui cause watchdog a rebooter.

Répertoire test

   Les exécutables dans le répertoire de test sont découverts par watchdog au démarrage et sont automatiquement exécutés. Ces exécutables sont appelé soit avec "test" comme premier argument ( si un test est effectué ), ou "repair" (si une réparation pour un test précédent doit être effectué). Si une opération de test échoue, le même exécutable est appelé avec l'argument repair avec le code de retour de l'opération précédente en tant que second argument.

Fichiers

/etc/watchdog.conf Fichier de configuration de watchdog
/etc/watchdog.d répertoire contenant les commandes test ou repair.
^
12 février 2015

htmlpdflatexmanmd




watchdog.conf

watchdog.conf

fichier de configuration pour le service watchdog

OPTIONS

interval = ‹interval› Définis l'interval le plus grand possible entre 2 écritures dans le périphériques watchdog. Le périphérique est piloté après chaque vérification sans regarder le temps qu'il a mis. Défaut: 1 seconde. Le pilote attend une écriture par minute, sinon le système est redémarré. Pour un intervalle supérieur à 1 minute, utiliser l'option -f
logtick = ‹logtick› Si les logs verbeux sont activés, un message est écris dans le syslog ou un fichier de log. Il n'est pas nécessaire d'avoir un message toutes les 10 secondes. logtick ajuste l'interval entre 2 messages.
max-load-1 = ‹load1› Définis la charge maximale permise pour 1 minute. Une fois cette charge atteinte le système est redémarré. Défaut: 0 (désactivé)
max-load-5 = ‹load5› Définis la charge maximale permise pour 5 minutes. Une fois cette charge atteinte le système est redémarré. Défaut: 3/4*max-load-1.
max-load-15 = ‹load15› Définis la charge maximale permise pour 15 minutes. Une fois cette charge atteinte le système est redémarré. Défaut: 1/2*max-load-1.
min-memory = ‹minpage› définis la quantité maximale de mémoire virtuelle qui doit rester libre, en pages. Défaut: 0
allocatable-memory = ‹minpage› Définis la quantité maximale de mémoire allouable libre dans le système, en pages. Défaut: 0
max-temperature = ‹temp› Température maximale permise. Défaut: 120. Watchdog emet une alerte une fois que la température atteins 90%, 95% et 98%.
watchdog-device = ‹device› Nom du périphérique watchdog.
watchdog-timeout = ‹timeout› timeout du périphérique watchdog au démarrage.
temperature-device = ‹temp-dev› Nom du périphérique de température.
file = ‹filename› Définis le nom du fichier pour le mode fichier. Peut être spécifié plusieurs fois.
change = ‹mtime› définis l'intervalle de temps de changement pour le mode fichier. Cette options appartient toujours au fichier actif. On ne peut pas spécifier de ligne change = avant une ligne file =.
pidfile = ‹pidfilename› fichier pid pour le mode de test serveur. Peut être spécifié plusieurs fois.
ping = ‹ip-addr› Adresse IP pour le mode ping. Peut être spécifié plusieurs fois
interface = ‹if-name› Interface réseaux pour le mode réseaux. Peut être spécifié plusieurs fois
test-binary = ‹testbin› Exécute le binaire donné pour certains tests utilisateurs
test-timeout = ‹timeout in seconds› timeout pour les tests utilisateurs
repair-binary = ‹repbin› Exécute le binaire en cas de problème au lieu d'éteindre le système
repair-timeout = ‹timeout in seconds› La commande repair peut seulement durer le temps spécifié (0 pour illimité)
admin = ‹mail-address› Adresse email pour envoyer un mail.
realtime = ‹yes|no› Block watchdog en ram, donc il n'est jamais swappé
priority = ‹schedule priority› priorité pour le mode temps réel
test-directory = ‹test directory› Définis le répertoire où lancer les scripts utilisateurs/repair. Défaut: /etc/watchdog.d.
log-dir = ‹log directory› Répertoire de log pour les binaire repair et test. Défaut: /var/log/watchdog.
^
12 février 2015

htmlpdflatexmanmd




wd_identify

wd_identify

Service watchdog logiciel simplifié

Description

   Cet utilitaire ouvre /dev/watchdog et récupère la chaîne identifiant du watchdog qui est affiché. Le périphérique est ensuite fermé. Cet utilitaire peut seulement être utilisé sans causer de reboot si le kernel est compilé avec CONFIG_WATCHDOG_NOWAYOUT.

OPTIONS

-c config-file, --config-file config-file Fichier de configuration
^
12 février 2015

htmlpdflatexmanmd




wd_keepalive

wd_keepalive

Service watchdog logiciel simplifié

Description

   Version simplifié de watchdog. Il est configuré pour qu'il ouvre simplement /dev/watchdog, et continue d'écrire dedans suffisamment souvent pour que le système ne redémarre pas. Sous de hautes charges, ce service peut être swappé et échouer à revenir à temps, s'assurer pour cela que la variable realtime est définie.

OPTIONS

-c config-file, --config-file config-file Fichier de configuration