Outils pour utilisateurs

Outils du site


issue114:tuto1

Différences

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

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
issue114:tuto1 [2016/11/14 18:45] – [5] auntieeissue114:tuto1 [2016/11/15 16:57] (Version actuelle) andre_domenech
Ligne 7: Ligne 7:
 I use an excellent GUI program called HandBrake for my transcoding – a Command Line version is also available. Because this is not a time-critical application (for me), I want to, somehow, suspend/resume it based on the temperature of the CPU. The motherboard and CPU contain a number of sensors of various kinds, which provide information to the Linux Kernel. However, this is of no help to me as I just need a simple, standard way to monitor the temperature.** I use an excellent GUI program called HandBrake for my transcoding – a Command Line version is also available. Because this is not a time-critical application (for me), I want to, somehow, suspend/resume it based on the temperature of the CPU. The motherboard and CPU contain a number of sensors of various kinds, which provide information to the Linux Kernel. However, this is of no help to me as I just need a simple, standard way to monitor the temperature.**
  
-En introduction, je dois dire que, pour presque tous les programmes, mon PC ne connait pas de problèmes de surchauffe. Cependant, je fais beaucoup de transcodage vidéo (en changeant le format du fichier audio-vidéo). Cela utilise le processeur de façon très intensive, se sert de 100 % de tous ses cœurs et tourne pendant de longues périodes. Par conséquent, mon processeur devient beaucoup trop chaud. Ainsi, je dois empêcher ce programmer de tuer mon CPU.+En introduction, je dois dire que, pour presque tous les programmes, mon PC ne connaît pas de problèmes de surchauffe. Cependant, je fais beaucoup de transcodage vidéo (en changeant le format du fichier audio-vidéo). Cela utilise le processeur de façon très intensive, se sert de 100 % de tous ses cœurs et tourne pendant de longues périodes. Par conséquent, mon processeur devient beaucoup trop chaud. Ainsi, je dois empêcher ce programme de tuer mon CPU.
  
-Il est vrai que le processeur surveille la température continuellement et que, quand une température critique est atteinte, il ferait le nécessaire (par exemple réduire de façon draconienne la vitesse de l'horloge pour pouvoir réduire la consommation d'électricité), jusqu'à ce que la température baisse pour atteindre un niveau inférieur au seuil critique. C'est bien en soit, car cela empêche la fusion complète du processeur, mais faire tourner des composants à de hautes températures continuellement, réduira sérieusement leur durée de vie.+Il est vrai que le processeur surveille la température continuellement et que, quand une température critique est atteinte, il ferait le nécessaire (par exemple réduire de façon draconienne la vitesse de l'horloge pour pouvoir réduire la consommation d'électricité), jusqu'à ce que la température baisse pour atteindre un niveau inférieur au seuil critique. C'est bien en soi, car cela empêche la fusion complète du processeur, mais faire tourner des composants à de hautes températurescontinuellement, réduira sérieusement leur durée de vie.
  
-Pour le transcodage, j'utilise un excellent programme à interface graphique, appelé HandBrake - une version en ligne de commande est disponible aussi. Puisque ce n'est pas une application où le temps est un facteur très important (pour moi), je veux pouvoir, d'une façon ou d'une autre, la suspendre/reprendre, selon la température du processeur. Il y a de nombreux capteurs de diverses sortes sur la carte-mère et dans le processeur qui fournissent des renseignements au Noyau Linux. Mais cela ne m'aide pas du tout, car je n'ai besoin que d'une façon simple et standard de surveiller la température.+Pour le transcodage, j'utilise un excellent programme à interface graphique, appelé HandBrake - une version en ligne de commande est disponible aussi. Puisque ce n'est pas une application où le temps est un facteur très important (pour moi), je veux pouvoir, d'une façon ou d'une autre, la suspendre/reprendre, selon la température du processeur. Il y a de nombreux capteurs de diverses sortes sur la carte mère et dans le processeur qui fournissent des renseignements au noyau Linux. Mais cela ne m'aide pas du tout, car je n'ai besoin que d'une façon simple et standard de surveiller la température.
 ===== 2 ===== ===== 2 =====
  
Ligne 32: Ligne 32:
 • Écrire un simple script qui maintiendra le CPU à une température acceptable. • Écrire un simple script qui maintiendra le CPU à une température acceptable.
  
-Il s'avère que la première étape est la plus intéressante. Pour la plupart des distributions, un ensemble de scripts donnant accès aux informations concernant le matériel, est maintenu depuis de nombreuses années. Par défaut, la plus récente Ubuntu (la 16.04) ne contient pas le paquet inxi du dépôt Universe (logiciels gratuits et Open Source maintenus par la communauté). Vous pourriez avoir besoin de sélectionner de dépôt, s'il n'est pas déjà sélectionné. Pour installer inxi, avec quelques dépendances, sans doute :+Il s'avère que la première étape est la plus intéressante. Pour la plupart des distributions, un ensemble de scripts donnant accès aux informations concernant le matériel, est maintenu depuis de nombreuses années. Par défaut, la plus récente Ubuntu (la 16.04) ne contient pas le paquet inxi du dépôt Universe (logiciels gratuits et Open Source maintenus par la communauté). Vous pourriez avoir besoin de sélectionner le dépôt, s'il n'est pas déjà sélectionné. Pour installer inxi, avec quelques dépendances, sans doute :
  
 sudo apt install inxi sudo apt install inxi
  
-Nous n'avons pas besoin de droits spéciaux pour exécuter la commande inxi dans un Terminal ; il comporte de très nombreuses options possibles. Par exemple, inxi, sans aucune option donne le résultat montré dans l'image en haut de cette page.+Nous n'avons pas besoin de droits spéciaux pour exécuter la commande inxi dans un terminal ; il comporte de très nombreuses options possibles. Par exemple, inxi, sans aucune optiondonne le résultat montré dans l'image en haut de cette page.
  
 ===== 3 ===== ===== 3 =====
Ligne 56: Ligne 56:
 CPU~Quad core AMD FX-4350 (-MCP-) clocked at 1400 Mhz Kernel~3.16.0-4-amd64 x86_64 Up~8:08 Mem~1564.9/7905.2MB HDD~2000.4GB(37.0% used) Procs~196 Client~Shell inxi~2.1.28 ** CPU~Quad core AMD FX-4350 (-MCP-) clocked at 1400 Mhz Kernel~3.16.0-4-amd64 x86_64 Up~8:08 Mem~1564.9/7905.2MB HDD~2000.4GB(37.0% used) Procs~196 Client~Shell inxi~2.1.28 **
  
-Ce qui semble prometteur, cependant, quand des caractères de couleur s'affichent sur le terminal, ce qui est fait en transmettant des caractères qui ne sont pas du text à l'écran. Dans un éditeur de texte, cela ressemble à ceci :+Ce qui semble prometteur, cependant, quand des caractères de couleur s'affichent sur le terminal, ce qui est fait en transmettant des caractères qui ne sont pas du texte à l'écran. Dans un éditeur de texte, ça ressemble à ceci :
  
 #[1;34mCPU#[0;37m~Dual core Intel Core i3-3110M (-HT-MCP-)#[1;34mspeed/max#[0;37m~1239/2400 MHz.... #[1;34mCPU#[0;37m~Dual core Intel Core i3-3110M (-HT-MCP-)#[1;34mspeed/max#[0;37m~1239/2400 MHz....
Ligne 64: Ligne 64:
 Une bonne façon de préparer un court descriptif de votre ordinateur à envoyer ailleurs, serait de lancer : Une bonne façon de préparer un court descriptif de votre ordinateur à envoyer ailleurs, serait de lancer :
  
-inxi -c0 > summary-file (l'option -c spécifie une sortie composée uniquement de text).+inxi -c0 > summary-file (l'option -c spécifie une sortie composée uniquement de texte).
  
 et puis d'envoyer ce fichier-résumé par mail. et puis d'envoyer ce fichier-résumé par mail.
  
-Le fichier-résumé ressemble à +Le fichier-résumé ressemble à :
  
 CPU~Quad core AMD FX-4350 (-MCP-) clocked at 1400 Mhz Kernel~3.16.0-4-amd64 x86_64 Up~8:08 Mem~1564.9/7905.2MB HDD~2000.4GB(37.0% used) Procs~196 Client~Shell inxi~2.1.28 CPU~Quad core AMD FX-4350 (-MCP-) clocked at 1400 Mhz Kernel~3.16.0-4-amd64 x86_64 Up~8:08 Mem~1564.9/7905.2MB HDD~2000.4GB(37.0% used) Procs~196 Client~Shell inxi~2.1.28
Ligne 88: Ligne 88:
 Deux choses : Deux choses :
 • Vous aurez peut-être remarqué que j'ai changé de machine (pour la commodité) et que la sortie est maintenant un fichier texte ordinaire, bien qu'il ne soit pas aussi facile à lire que la version formatée et en couleur. • Vous aurez peut-être remarqué que j'ai changé de machine (pour la commodité) et que la sortie est maintenant un fichier texte ordinaire, bien qu'il ne soit pas aussi facile à lire que la version formatée et en couleur.
-• Je ne vais pas présenter toutes les options, puisque la documentation complète peut être vu avec la commande man inxi.+• Je ne vais pas présenter toutes les options, puisque la documentation complète peut être vue avec la commande man inxi.
  
 Nous nous intéresserons principalement à la commande inxi -s, puisqu'elle montre l'état des capteurs (sensors en anglais). Cela devrait fonctionner sur tous les ordinateurs portables, mais pourrait nécessiter un peu de travail sur certains ordinateurs de bureau plus âgés. Si inxi -s ne montre aucune température du CPU, il faudrait envisager l'exécution des procédures détaillées sur https://help.ubuntu.com/community/SensorInstallHowto Nous nous intéresserons principalement à la commande inxi -s, puisqu'elle montre l'état des capteurs (sensors en anglais). Cela devrait fonctionner sur tous les ordinateurs portables, mais pourrait nécessiter un peu de travail sur certains ordinateurs de bureau plus âgés. Si inxi -s ne montre aucune température du CPU, il faudrait envisager l'exécution des procédures détaillées sur https://help.ubuntu.com/community/SensorInstallHowto
Ligne 94: Ligne 94:
 Mon inxi -s ressemble à ceci, mais la quantité d'informations retournées dépend de votre PC. Mon inxi -s ressemble à ceci, mais la quantité d'informations retournées dépend de votre PC.
  
-Je ne vais pas m'occuper de la présence des caractères non textuelles, car je veux tout simplement récupérer les deux premiers chiffres du premier nombre sur la première ligne. Il s'agit d'un format fixe ; ainsi, nous pouvons mettre deux programmes standards ensemble :+Je ne vais pas m'occuper de la présence des caractères non textuels, car je veux tout simplement récupérer les deux premiers chiffres du premier nombre sur la première ligne. Il s'agit d'un format fixe ; ainsi, nous pouvons mettre deux programmes standards ensemble :
  
 inxi -s | grep 'System Temperatures' | cut -b 66-67 inxi -s | grep 'System Temperatures' | cut -b 66-67
Ligne 114: Ligne 114:
 L'argument grep sort toutes les lignes qui contiennent « System Temperatures » (uniquement la première ligne). Cette ligne est ensuite envoyée à une commande cut (couper) où nous précisons que nous ne voulons que les octets 66 et 67 de la ligne. Ainsi, si vous lancez cette même commande, la sortie devrait être 33. Notez que d'autres outils, tels que « sed », pourraient faire le même boulot, mais avec davantage de flexibilité. L'argument grep sort toutes les lignes qui contiennent « System Temperatures » (uniquement la première ligne). Cette ligne est ensuite envoyée à une commande cut (couper) où nous précisons que nous ne voulons que les octets 66 et 67 de la ligne. Ainsi, si vous lancez cette même commande, la sortie devrait être 33. Notez que d'autres outils, tels que « sed », pourraient faire le même boulot, mais avec davantage de flexibilité.
  
-Quand nous passons au problème de la suspension/reprise des processus actives, il s'avère être d'une facilité ridicule ! Si on saisissait une commande « normale » killall 'nom de programme', les processus correspondants reçoivent un signal TERM et se terminent. Toutefois, nou pouvons envoyer des signaux moins destructeurs.+Quand nous passons au problème de la suspension/reprise des processus actifs, il s'avère être d'une facilité ridicule ! Si on saisit une commande « normale » killall 'nom de programme', les processus correspondants reçoivent un signal TERM et se terminent. Toutefois, nous pouvons envoyer des signaux moins destructeurs.
  
 killall -s STOP 'nom de programme' killall -s STOP 'nom de programme'
-entrainera la suspension des processus concernés.+entraînera la suspension des processus concernés.
  
 killall -s CONT 'nom de programme' killall -s CONT 'nom de programme'
-entrainera la reprise des processus concernés.+entraînera la reprise des processus concernés.
  
-J'ai écrit un court script de surveillance (appelé schedule.sh) qui peut être lancer à partir d'une fenêtre du Terminal. Il contient une boucle infinie, ce qui fait que, quand il n'est plus nécessaire, il faut le terminer avec CTRL+C. Normalement, je l'utilise pour HandBrake qui exécute un programme appelé « ghb », mais on pourrait s'en servir pour tout programme dévoreur de CPU. Aussi ./schedule.sh 'nom de programme' devrait fonctionner pour tout programme.+J'ai écrit un court script de surveillance (appelé schedule.sh) qui peut être lancé à partir d'une fenêtre du terminal. Il contient une boucle infinie, ce qui fait que, quand il n'est plus nécessaire, il faut le terminer avec CTRL+C. Normalement, je l'utilise pour HandBrake qui exécute un programme appelé « ghb », mais on pourrait s'en servir pour tout programme dévoreur de CPU. Aussi ./schedule.sh 'nom de programme' devrait fonctionner pour tout programme.
  
  
Ligne 140: Ligne 140:
  
 As an example of what inxi is capable of, I'll round off with a quick way of obtaining a display of some quite detailed information about my graphics card, using the -G parameter and adding a 'xx' parameter asks for extra, extra details.** As an example of what inxi is capable of, I'll round off with a quick way of obtaining a display of some quite detailed information about my graphics card, using the -G parameter and adding a 'xx' parameter asks for extra, extra details.**
 +
 +Lorsque j'ai choisi des valeurs codée en dur pour la température, 59 °C était vraiment le maximum pour moi, mais 45 °C fut choisi comme limite inférieure parce que la vitesse de refroidissement est proportionnelle à la différence entre la température de l'objet chaud et la température de son environnement. Ainsi, cela ne sert à rien de cibler une température beaucoup plus basse. La plage de 45 ° - 59 ° donne encore quelques minutes d'exécution entre les pauses, surtout parce que les méthodes habituelles de refroidissement enlèvent continuellement une partie de la chaleur pendant la phase d'exécution.
 +
 +Si je lance tout autre programme en même temps, il n'est pas affecté ; tout usage excessif du CPU entraînerait tout simplement la suspension un peu plus fréquente du programme surveillé. Je ne prétends pas que c'est autre chose qu'une solution d'urgence à mon problème. Toutefois, j'ai ainsi découvert de nouvelles fonctionnalités utiles dans inxi et killall.
 +
 +J'inclus un script Bash pour schedule.sh qui n'est sans doute pas très beau, mais qui fonctionne. Vous le trouverez également sur http://pastebin.com/yiDfJ4iF
 +
 +Ainsi, pour exécuter le programme lourd de transcodage protégé contre les hautes températures :
 +• Lancez ./schedule.sh dans une fenêtre du terminal et laissez-le tourner.
 +• Exécutez HandBrake dans une fenêtre de l'interface graphique.
 +• Allez faire autre chose.
 +
 +Pour vous montrer ce qu'inxi peut faire, je terminerai avec une façon rapide d'obtenir l'affichage de quelques informations très détaillées sur ma carte graphique, avec le paramètre -G et en ajoutant un paramètre « xx », encore plus de détails supplémentaires.
 +
 +
 +
  
  
issue114/tuto1.1479145547.txt.gz · Dernière modification : 2016/11/14 18:45 de auntiee