Auteur Sujet: info-pc : script pour récupérer des infos sur le hardware des PC / serveurs  (Lu 11882 fois)

0 Membres et 1 Invité sur ce sujet

vivien

  • Administrateur
  • *
  • Messages: 47 085
    • Twitter LaFibre.info
J'ai réalisé un petit script pour récupérer des informations matérielles sur un PC, via une clé de boot Linux

Je suis preneur de vos commentaires pour améliorer ce script.
Ce petit script est fait pour être lancé depuis une clé de Boot Ubuntu ou dérivé (je préfère Lubuntu qui consomme moins de ressources)

Le but est de récupérer des info systèmes et de tester la performance du CPU, avec des programmes de la vraie vie, pour comparer les performances autrement que par des données théoriques. Par exemple certains PC portables ont les performances qui s'écroulent quand ils sont sur batterie sans qu'il soit possible de récupérer les performances identique au secteur.

Il réalise :
- Un test de performance multi-thread :
compression d'un petit fichier vidéo H.264 de 29 Mo en VP9 avec ffmpeg
- Un test de performance mono-thread : compression d'un fichier de 29 Mo en .xz avec tar
- Il affiche de très nombreuses informations sur la machine en utilisant les commandes suivantes :

  • Informations sur le microprocesseur ====> lscpu
  • Distribution Linux ====> lsb_release -a
  • Noyau Linux ====> uname -a
  • Mémoire vive ====> free -m
  • Gestion de l’énergie ====> acpi -V
  • Résumé de la configuration matérielle ====> lshw -short
  • Pilote de la carte graphique ====> grep /drivers/ /var/log/Xorg.0.log
  • Liste des périphériques USB ====> lsusb
  • Liste des périphériques supportant une mise à jour du firmware ====> fwupdmgr get-devices
  • Liste des périphériques PCI ====> lspci
  • Détail de la configuration matérielle ====> lshw
  • Informations récupérées au démarrage du PC ====> dmesg
  • Informations IPMI MC (Management Controllers), sur un serveur ====> ipmitool mc info
  • Informations IPMI sur le châssis IPMI, sur un serveur ====> ipmitool chassis status
  • Informations sur les capteurs IPMI, sur un serveur ====> ipmitool sensor
  • Informations IPMI SDR (Sensor Data Record) ====> ipmitool sdr

Pour le récupérer et le lancer en une seule ligne :
wget lafibre.info/info-pc ; chmod +x info-pc ; ./info-pc

Le script va détecter si ffmpeg est installé et va proposer de l'installer (en ram si c'est sur un démarrage sur une clé usb) pour réaliser le test de performance.
Il va également proposer d'installer :
- acpi pour les informations ACI (donne par exemple la capacité max de la batterie lors de la dernière recharge complète et compare cette info aux données du fabriquant pour voir son usure)
- fwupd pour récupérer la liste des périphériques supportant une maj
- openipmi ipmitool pour les informations IPMI (sur un serveur)

Si c'est un PC portable ou PC fixe, je vous conseille de refuser l'installation openipmi / ipmitool pour sauter ce test : il n'y a de l'IPMI que sur des serveurs.

vivien

  • Administrateur
  • *
  • Messages: 47 085
    • Twitter LaFibre.info
info-pc : script pour récupérer des infos sur le hardware des PC / serveurs
« Réponse #1 le: 27 octobre 2016 à 09:26:19 »
Voici ce que cela donne sur un PC portable Latitude  E5450 :

======================================================================================
=================================== INFO-PC 1.0 ======================================

wget https://lafibre.info/testdebit/scripts/info-pc/info-pc.sh ; chmod +x info-pc.sh ; ./info-pc.sh
jeudi 27 octobre 2016, 06:01:59 (UTC+0000)

======================================================================================
Test de performance du microprocesseur

Test N°1 multi-thread: 92.31 secondes pour la compression d'une vidéo H.264 en VP9 avec ffmpeg
Test N°2 mono-thread : 10.19 secondes pour la compression d'un fichier en .xz avec tar

======================================================================================
Informations sur le microprocesseur ====> lscpu

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    2
Core(s) per socket:    2
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 61
Model name:            Intel(R) Core(TM) i5-5300U CPU @ 2.30GHz
Stepping:              4
CPU MHz:               2899.976
CPU max MHz:           2900,0000
CPU min MHz:           500,0000
BogoMIPS:              4589.00
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              3072K
NUMA node0 CPU(s):     0-3
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch epb intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm rdseed adx smap xsaveopt dtherm ida arat pln pts

======================================================================================
Distribution Linux ====> lsb_release -a

Distributor ID:   Ubuntu
Description:   Ubuntu 16.04.1 LTS
Release:   16.04
Codename:   xenial

======================================================================================
Noyau Linux ====> uname -a

Linux lubuntu 4.4.0-31-generic #50-Ubuntu SMP Wed Jul 13 00:07:12 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

======================================================================================
Mémoire vive ====> free -m

              total        used        free      shared  buff/cache   available
Mem:           7872         253        6351         277        1267        7071
Swap:         13223           0       13223

======================================================================================
Gestion de l’énergie ====> acpi -V

Battery 0: Full, 100%
Battery 0: design capacity 3400 mAh, last full capacity 2937 mAh = 86%
Adapter 0: on-line
Thermal 0: ok, 29.8 degrees C
Thermal 0: trip point 0 switches to mode critical at temperature 105.0 degrees C
Thermal 0: trip point 1 switches to mode passive at temperature 79.0 degrees C
Thermal 1: ok, 27.8 degrees C
Thermal 1: trip point 0 switches to mode critical at temperature 105.0 degrees C
Thermal 1: trip point 1 switches to mode active at temperature 71.0 degrees C
Thermal 1: trip point 2 switches to mode active at temperature 55.0 degrees C
Thermal 1: trip point 3 switches to mode active at temperature 50.0 degrees C
Thermal 1: trip point 4 switches to mode active at temperature 45.0 degrees C
Thermal 2: ok, 25.0 degrees C
Thermal 2: trip point 0 switches to mode critical at temperature 107.0 degrees C
Cooling 0: x86_pkg_temp no state information available
Cooling 1: NGFF no state information available
Cooling 2: TSKN no state information available
Cooling 3: INT3400 Thermal no state information available
Cooling 4: B0D4 no state information available
Cooling 5: TMEM no state information available
Cooling 6: intel_powerclamp no state information available
Cooling 7: Processor 0 of 3
Cooling 8: Processor 0 of 3
Cooling 9: Processor 0 of 3
Cooling 10: Processor 0 of 3
Cooling 11: Fan 0 of 1
Cooling 12: Fan 0 of 1
Cooling 13: Fan 0 of 1
Cooling 14: Fan 0 of 1
Cooling 15: Fan 0 of 1

======================================================================================
Résumé de la configuration matérielle ====> lshw -short

H/W path               Device     Class          Description
============================================================
                                  system         Latitude E5450 (062B)
/0                                bus            0DCPV1
/0/0                              memory         64KiB BIOS
/0/4d                             processor      Intel(R) Core(TM) i5-5300U CPU @ 2.30GHz
/0/4d/3e                          memory         32KiB L1 cache
/0/4d/43                          memory         256KiB L2 cache
/0/4d/48                          memory         3MiB L3 cache
/0/39                             memory         32KiB L1 cache
/0/52                             memory         8GiB System Memory
/0/52/0                           memory         8GiB SODIMM DDR3 Synchronous 1600 MHz (0,6 ns)
/0/52/1                           memory         DIMM [empty]
/0/100                            bridge         Broadwell-U Host Bridge -OPI
/0/100/2                          display        Broadwell-U Integrated Graphics
/0/100/3                          multimedia     Broadwell-U Audio Controller
/0/100/4                          generic        Broadwell-U Camarillo Device
/0/100/14                         bus            Wildcat Point-LP USB xHCI Controller
/0/100/14/0            usb3       bus            xHCI Host Controller
/0/100/14/1            usb2       bus            xHCI Host Controller
/0/100/14/1/2          scsi2      storage        USB DISK 2.0
/0/100/14/1/2/0.0.0    /dev/sdb   disk           2057MB SCSI Disk
/0/100/14/1/2/0.0.0/2  /dev/sdb2  volume         15EiB Windows FAT volume
/0/100/16                         communication  Wildcat Point-LP MEI Controller #1
/0/100/19              eno1       network        Ethernet Connection (3) I218-LM
/0/100/1b                         multimedia     Wildcat Point-LP High Definition Audio Controller
/0/100/1c                         bridge         Wildcat Point-LP PCI Express Root Port #1
/0/100/1c/0                       generic        SD/MMC Card Reader Controller
/0/100/1c.3                       bridge         Wildcat Point-LP PCI Express Root Port #4
/0/100/1c.3/0          wlp2s0     network        Wireless 7265
/0/100/1c.4                       bridge         Wildcat Point-LP PCI Express Root Port #5
/0/100/1d                         bus            Wildcat Point-LP USB EHCI Controller
/0/100/1d/1            usb1       bus            EHCI Host Controller
/0/100/1d/1/1                     bus            USB hub
/0/100/1d/1/1/3                   communication  Bluetooth wireless interface
/0/100/1d/1/1/6                   multimedia     Integrated_Webcam_HD
/0/100/1d/1/1/7                   generic        5880
/0/100/1f                         bridge         Wildcat Point-LP LPC Controller
/0/100/1f.2                       storage        82801 Mobile SATA Controller [RAID mode]
/0/100/1f.3                       bus            Wildcat Point-LP SMBus Controller
/0/1                   scsi1      storage       
/0/1/0.0.0             /dev/sda   disk           500GB TOSHIBA MQ01ACF0
/0/1/0.0.0/1           /dev/sda1  volume         350MiB Windows NTFS volume
/0/1/0.0.0/2           /dev/sda2  volume         242GiB Windows NTFS volume
/0/1/0.0.0/3           /dev/sda3  volume         27GiB EXT4 volume
/0/1/0.0.0/4           /dev/sda4  volume         195GiB Extended partition
/0/1/0.0.0/4/5         /dev/sda5  volume         9287MiB Linux swap / Solaris partition
/0/1/0.0.0/4/6         /dev/sda6  volume         186GiB Linux filesystem partition
/1                                power          DELL VY9NDD9

======================================================================================
Pilote de la carte graphique ====> grep /drivers/ /var/log/Xorg.0.log

[    19.077] (II) Loading /usr/lib/xorg/modules/drivers/intel_drv.so
[    19.139] (II) Loading /usr/lib/xorg/modules/drivers/modesetting_drv.so
[    19.140] (II) Loading /usr/lib/xorg/modules/drivers/fbdev_drv.so
[    19.140] (II) Loading /usr/lib/xorg/modules/drivers/vesa_drv.so

======================================================================================
Liste les périphériques USB ====> lsusb

Bus 001 Device 005: ID 0a5c:5800 Broadcom Corp. BCM5880 Secure Applications Processor
Bus 001 Device 004: ID 0c45:6709 Microdia
Bus 001 Device 003: ID 8087:0a2a Intel Corp.
Bus 001 Device 002: ID 8087:8001 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 002: ID 13fe:1e00 Kingston Technology Company Inc. Flash Drive 2 GB [ICIDU 2 GB]
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

======================================================================================
Liste des périphériques supportant une mise à jour du firmware ====> fwupdmgr get-devices

usb:00:01:07
  Guid:                 a3dacec5-e5fc-58f6-bfab-5f4238119d4e
  DisplayName:          5880
  Provider:             USB
  Flags:                none
  Version:              1.1
  Created:              2016-10-27
  Trusted:              none

usb:00:01:06
  Guid:                 ba31bf2d-1723-56dc-a4c9-275a9ea5d109
  DisplayName:          Integrated_Webcam_HD
  Provider:             USB
  Flags:                none
  Version:              72.6
  Created:              2016-10-27
  Trusted:              none

usb:00:02
  Guid:                 ad5af4e1-55d0-5b4e-805e-63841eb601b4
  DisplayName:          USB DISK 2.0
  Provider:             USB
  Flags:                none
  Version:              1.16
  Created:              2016-10-27
  Trusted:              none


======================================================================================
Liste les périphériques PCI ====> lspci

00:00.0 Host bridge: Intel Corporation Broadwell-U Host Bridge -OPI (rev 09)
00:02.0 VGA compatible controller: Intel Corporation Broadwell-U Integrated Graphics (rev 09)
00:03.0 Audio device: Intel Corporation Broadwell-U Audio Controller (rev 09)
00:04.0 Signal processing controller: Intel Corporation Broadwell-U Camarillo Device (rev 09)
00:14.0 USB controller: Intel Corporation Wildcat Point-LP USB xHCI Controller (rev 03)
00:16.0 Communication controller: Intel Corporation Wildcat Point-LP MEI Controller #1 (rev 03)
00:19.0 Ethernet controller: Intel Corporation Ethernet Connection (3) I218-LM (rev 03)
00:1b.0 Audio device: Intel Corporation Wildcat Point-LP High Definition Audio Controller (rev 03)
00:1c.0 PCI bridge: Intel Corporation Wildcat Point-LP PCI Express Root Port #1 (rev e3)
00:1c.3 PCI bridge: Intel Corporation Wildcat Point-LP PCI Express Root Port #4 (rev e3)
00:1c.4 PCI bridge: Intel Corporation Wildcat Point-LP PCI Express Root Port #5 (rev e3)
00:1d.0 USB controller: Intel Corporation Wildcat Point-LP USB EHCI Controller (rev 03)
00:1f.0 ISA bridge: Intel Corporation Wildcat Point-LP LPC Controller (rev 03)
00:1f.2 RAID bus controller: Intel Corporation 82801 Mobile SATA Controller [RAID mode] (rev 03)
00:1f.3 SMBus: Intel Corporation Wildcat Point-LP SMBus Controller (rev 03)
01:00.0 SD Host controller: O2 Micro, Inc. SD/MMC Card Reader Controller (rev 01)
02:00.0 Network controller: Intel Corporation Wireless 7265 (rev 59)

======================================================================================
Détail de la configuration matérielle ====> lshw

[...]


Le fichier dell_latitude_e5450_lubuntu1604.txt en intégralité.

Aerendil

  • Abonné Orange Fibre
  • *
  • Messages: 354
  • Cormeilles-en-Parisis 95
info-pc : script pour récupérer des infos sur le hardware des PC / serveurs
« Réponse #2 le: 28 octobre 2016 à 14:50:39 »
Loll
Encore un geek qui ne sait pas quoi faire pour s'occuper ! loll
Mais bonne initiative quand même :)
Well done !

Dam64

  • Pau Broadband Country (64)
  • Abonné FAI autre
  • *
  • Messages: 121
  • Pau 64
info-pc : script pour récupérer des infos sur le hardware des PC / serveurs
« Réponse #3 le: 28 octobre 2016 à 15:21:48 »
Merci vivien, good job ;)

Loll
Encore un geek qui ne sait pas quoi faire pour s'occuper ! loll
Mais bonne initiative quand même :)
Well done !

De ce que je vois tu ne sais pas quoi faire non plus vu que tu prends le temps de répondre.

K-L

  • Abonné SFR THD (câble)
  • *
  • Messages: 4 651
  • HFC 100 Mbs / FTTH 1Gbs sur Oullins (69)
    • Cable Rhone
info-pc : script pour récupérer des infos sur le hardware des PC / serveurs
« Réponse #4 le: 28 octobre 2016 à 17:30:04 »
Merci vivien, good job ;)

De ce que je vois tu ne sais pas quoi faire non plus vu que tu prends le temps de répondre.

Sois pas agressif, son commentaire était franchment tourné vers l'humour et je l'ai même trouvé sympathique :D

K-L

  • Abonné SFR THD (câble)
  • *
  • Messages: 4 651
  • HFC 100 Mbs / FTTH 1Gbs sur Oullins (69)
    • Cable Rhone
info-pc : script pour récupérer des infos sur le hardware des PC / serveurs
« Réponse #5 le: 28 octobre 2016 à 23:00:18 »
Sur une Mageia, j'ai arrêté le test : il ne trouve pas APT (bien installé), il ne fait pas le test en multithread (un seul core est à fond et ça ne fait pas chauffer le CPU).

Je pense que ce test n'est prévu que pour Ubuntu et il faut donc utiliser une clé bootable pour le réaliser.

vivien

  • Administrateur
  • *
  • Messages: 47 085
    • Twitter LaFibre.info
info-pc : script pour récupérer des infos sur le hardware des PC / serveurs
« Réponse #6 le: 29 octobre 2016 à 08:03:39 »
Oui, je n'ai testé qu'avec Ubuntu et ses dérivés (je conseille fortement une clé de boot Lubuntu pour des serveurs sans accélération graphique, sans quoi on perd en puissance). Cela devrait fonctionner avec un Debian récent.

Autre information : pour avoir la liste des périphériques qu'il est possible de mettre à jour le bios (commande fwupdmgr get-devices qu'on n'a pas besoin de démarrer avec les droits root pour seulement lister les périphériques), il faut une version récente. Pour Ubuntu, il faut Ubuntu 16.04 minimum.

Encore un geek qui ne sait pas quoi faire pour s'occuper ! loll
Mais bonne initiative quand même :)
En fait je ne suis pas fan de PC à haute performance, mais je suis fan de vieux PC et j'aime bien connaître un peu les performances et si j'aime bien https://www.cpubenchmark.net/ il est intéressant de voir la vraie vie, avec son système d’exploitation et des vrais outils.

Autre intérêt : vérifier les performances d'un PC portable sur secteur et sur batterie (et oui, cela peu changer, cf SpeedTest: Performances dégradées sur batterie)

Il est aussi intéressant pour ceux qui louent des serveurs VPS de voir quel performances ils ont en réalité afin de se comparer à un processeur connu.

Concrètement, je vais faire tourner ce script sur tous les PC qui me passent sous la main (famille / amis) via une clé de boot Lubuntu 16.04.1 64bits et partager ça. (en 32bits on a des perf un peu dégradées)

Aerendil

  • Abonné Orange Fibre
  • *
  • Messages: 354
  • Cormeilles-en-Parisis 95
info-pc : script pour récupérer des infos sur le hardware des PC / serveurs
« Réponse #7 le: 09 novembre 2016 à 15:35:11 »
Si tu l'as fait, j'ose espérer effectivement que c'est pour t'en servir ;)

Mais quand je vois ce que vous faites certains ici, sur du matos perso, ça me fait halluciner ( dans le bon sens du terme !)...
Je me pensais un peu doué, mais en fait, je suis un noob... enfin un noob par rapport à vous !
dire que je passe pour un geek auprès de mes connaissances, je suis un petit joueur :)

Et comme le dit K-L, c'était humoristique, voire admiratif ! et je ne cherchais absolument pas à dénigrer le travail de Vivien !




vivien

  • Administrateur
  • *
  • Messages: 47 085
    • Twitter LaFibre.info
info-pc : script pour récupérer des infos sur le hardware des PC / serveurs
« Réponse #8 le: 25 novembre 2016 à 19:14:47 »
J'ai lancé mon script sur des dizaines de portables, PC de bureau et serveurs et je suis satisfait des résultats (je vais publier un comparatif)

J'ai par contre un souci avec le test de performance sur une machine bi-socket (Dell PowerEdge 2950 équipée de 2x Xeon E5410).

J'utilise la commande /usr/bin/time -f "Test N°1 multi-thread: %e secondes pour la compression d'une vidéo H.264 en VP9 avec ffmpeg" ffmpeg -loglevel 16 -i 201606_test_mpeg-4_avc_aac.mp4 -c:v libvpx-vp9 -b:v 0 -crf 30 -threads 8 -speed 1 -tile-columns 6 -frame-parallel 1 -auto-alt-ref 1 -lag-in-frames 25 -c:a libopus -b:a 128k -f webm /dev/null -y 2

Or un seul socket va être utilisé (la compression prend le même temps que sur un autre serveur équipé du même CPU, en un seul exemplaireà
Savez-vous pourquoi ?

Voici le lscpu : il voit bien les 8 cœurs (4 par socket)
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                8
On-line CPU(s) list:   0-7
Thread(s) per core:    1
Core(s) per socket:    4
Socket(s):             2
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 23
Model name:            Intel(R) Xeon(R) CPU           E5410  @ 2.33GHz
Stepping:              6
CPU MHz:               2327.481
BogoMIPS:              4655.01
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              6144K
NUMA node0 CPU(s):     0-7
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 lahf_lm tpr_shadow vnmi flexpriority dtherm


Je penche plus sur une limitation de ffmpeg qui serait limité pour s’exécuter sur un seul socket.
Si vous avez des infos...

jack

  • Professionnel des télécoms
  • *
  • Messages: 1 674
  • La Madeleine (59)
info-pc : script pour récupérer des infos sur le hardware des PC / serveurs
« Réponse #9 le: 25 novembre 2016 à 20:33:50 »
C'est plutôt VP9 qui ne sait pas utiliser plus de 4 CPU par stream
Je viens de tester sur un 2*12 cores, et je n'ai pas plus de 4 CPU utilisés, avec ta commande
J'ai testé d'augmenter le nombre de thread, à 16 puis 24, sans changement
J'ai également retiré l'ensemble des options (sauf -threads), sans changement également

underground78

  • Expert
  • Abonné Free fibre
  • *
  • Messages: 7 434
  • Orsay (91)
    • FreePON : suivi géographique du déploiement fibre EPON chez Free
info-pc : script pour récupérer des infos sur le hardware des PC / serveurs
« Réponse #10 le: 25 novembre 2016 à 20:40:41 »
Au niveau logiciel (haut niveau) le fait d'avoir un ou plusieurs sockets ne change absolument rien.

vivien

  • Administrateur
  • *
  • Messages: 47 085
    • Twitter LaFibre.info
info-pc : script pour récupérer des infos sur le hardware des PC / serveurs
« Réponse #11 le: 25 novembre 2016 à 21:04:27 »
C'est plutôt VP9 qui ne sait pas utiliser plus de 4 CPU par stream
Je viens de tester sur un 2*12 cores, et je n'ai pas plus de 4 CPU utilisés, avec ta commande
J'ai testé d'augmenter le nombre de thread, à 16 puis 24, sans changement
J'ai également retiré l'ensemble des options (sauf -threads), sans changement également

J'avais noté ça sur un CPU 4 coeurs HT. Je me suis dit qu'il avait détecté que je n'avais pas 8 cœurs, mais seulement 4 en Hyper-Threading et donc qu'il limitait le nb de process

Étonnant que le maximum pour thread soir 4, car sur la page du projet, ils conseils de mettre thread=8 !