La Fibre
Datacenter et équipements réseaux => Équipements réseaux => Matériel informatique (réseaux domestiques) => Discussion démarrée par: vivien le 27 octobre 2016 à 09:24:10
-
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.
-
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 (https://lafibre.info/testdebit/scripts/info-pc/dell_latitude_e5450_lubuntu1604.txt) en intégralité.
-
Loll
Encore un geek qui ne sait pas quoi faire pour s'occuper ! loll
Mais bonne initiative quand même :)
Well done !
-
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.
-
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
-
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.
-
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 (https://lafibre.info/tester-son-debit/perf-degradees-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)
-
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 !
-
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...
-
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
-
Au niveau logiciel (haut niveau) le fait d'avoir un ou plusieurs sockets ne change absolument rien.
-
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 (http://wiki.webmproject.org/ffmpeg/vp9-encoding-guide), ils conseils de mettre thread=8 !
-
Ben, oui, c'est très étrange
Dans le code, je lis ça, qui semble lié:
/*!\brief The maximum number of work buffers used by libvpx.
* Support maximum 4 threads to decode video in parallel.
* Each thread will use one work buffer.
* TODO(hkuang): Add support to set number of worker threads dynamically.
*/
#define VPX_MAXIMUM_WORK_BUFFERS 8
M'enfin
-
Il y a deux choses indépendantes : encoder sur plusieurs thread et créer un fichier qui pourra être décodé sur plusieurs thread (le multi-threading lors de la lecture se décide lors de la compression).
-threads 4 : Encodage sur 4 threads en parallèle. Sans cette option, l'encodage n'utilise qu'un seul cœur et est malheureusement assez lent.
-tile-columns 6 -frame-parallel 1 : Permet de créer un ficher vidéo qui pourra être lu en multi-threaded (coté client). -tile-columns 6 -frame-parallel 1 sont les valeurs par défaut.