Voir
Outils :
Notions :
Params Kernel :
Nombre de threads
grep ^processor /proc/cpuinfo
Nous avons une valeurs par thread. C'est donc la derniere valeur +1 qui donne le nombre de threads (si un seul CPU physique)
Nombre de cores
grep '^cpu cores' /proc/cpuinfo
Toutes les valeurs sont identiques si un seul CPU physique
Voir aussi : intel_p-state
Gérer la fréquence cpu
service cpufrequtils stop
#!/bin/sh -e # # rc.local echo "conservative" >/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor echo "conservative" >/sys/devices/system/cpu/cpu1/cpufreq/scaling_governor echo "conservative" >/sys/devices/system/cpu/cpu2/cpufreq/scaling_governor #echo "conservative" >/sys/devices/system/cpu/cpu3/cpufreq/scaling_governor # echo "performance" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor exit 0
Fichier à exécuter en root pour changer le gouverneur. Choix possible selon la configuration du noyau : conservative, ondemand, powersave, performance.
Avec cpufrequtils : (en root)
cp /usr/share/doc/cpufrequtils/examples/cpufrequtils.sample /etc/default/cpufrequtils cpufreq-set -c 0 -d 2100000 -u 3300000 service cpufrequtils reload
Voir :
grep MHz /proc/cpuinfo
apt-get install linux-cpupower
cpupower
$ cpupower frequency-info -g
analyzing CPU 0:
available cpufreq governors: Not Available
$ cpupower frequency-info
analyzing CPU 0:
no or unknown cpufreq driver is active on this CPU
CPUs which run at the same hardware frequency: Not Available
CPUs which need to have their frequency coordinated by software: Not Available
maximum transition latency: Cannot determine or is not supported.
hardware limits: Not Available
available cpufreq governors: Not Available
Unable to determine current Policy
current CPU frequency: Unable to call hardware
current CPU frequency: Unable to call to kernel
boost state support:
Supported: yes
Active: yes
If you have Turbo Boost enabled in the UEFI/BIOS, you can turn boost on (1) or off (0) by running
echo 1 > /sys/devices/system/cpu/cpufreq/boost
Limite d'utilisation du CPU en %
# cat /sys/devices/system/cpu/intel_pstate/max_perf_pct 100
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
Exemble de “gorvernors” possible
cpufreq-set -r -u 2.24Ghz #cpufreq-set --cpu 0 --governor conservative cpufreq-set -r -g performance cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors echo "performance" |tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor #echo "3900000" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
/etc/default/grub
CMDLINE_LINUX_DEFAULT="quiet splash intel_pstate=disable processor.ignore_ppc=1"
update-grub
Pour remplacer intel_pstate par acpi-cpufreq
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_driver
La liste des drivers ici :
ls -1 /lib/modules/`uname -r`/kernel/drivers/cpufreq/
Source : https://wiki.archlinux.org/index.php/CPU_frequency_scaling
cat /sys/devices/system/cpu/cpu0/cpufreq/bios_limit
For trying this temporarily change the value in /sys/module/processor/parameters/ignore_ppc from 0 to 1.
echo 1 > /sys/module/processor/parameters/ignore_ppc
For setting it permanent refer to Kernel modules or just read on. Add processor.ignore_ppc=1 to your kernel boot line or create
/etc/modprobe.d/ignore_ppc.conf
# If the frequency of your machine gets wrongly limited by BIOS, this should help options processor ignore_ppc=1
Avec cpulimit
sudo apt-get install cpulimit
http://www.linuxscrew.com/2012/07/03/limit-cpu-usage-of-linux-process/
perf
apt-get install linux-base linux-tools
Voir :
# Disable SMP echo off > /sys/devices/system/cpu/smt/control # Disable THP echo "never" > /sys/kernel/mm/transparent_hugepage/enabled # Disable turbo boost echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo
Voir :
/usr/bin/nproc (coreutils)
getconf _NPROCESSORS_ONLN
service cpufrequtils stop
echo “performance” > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
noatime
Swap config
Blacklist module
/proc/interrupts cat /proc/irq/3/smp_affinity
cpupower
http://www.linux-kvm.org/page/CPUHotPlug
cpu_set <n+1> onlineReal-time kernel ?
http://www.tldp.org/LDP/solrhe/Securing-Optimizing-Linux-RH-Edition-v1.3/chap7sec80.html
https://wiki.archlinux.org/index.php/maximizing_performance
https://tweaked.io/guide/kernel/
http://www.brendangregg.com/blog/2015-03-03/performance-tuning-linux-instances-on-ec2.html
https://oracle-base.com/articles/linux/configuring-huge-pages-for-oracle-on-linux-64
root# dmidecode|grep HTT HTT (Hyper-Threading Technology) HTT (Hyper-Threading Technology) root# egrep 'siblings|cpu cores' /proc/cpuinfo | head -2 siblings : 2 cpu cores : 1 root# grep '^flags\b' /proc/cpuinfo | tail -1 flags : fpu de tsc msr pae mce cx8 apic sep mca cmov pat clflush acpi mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc rep_good nopl nonstop_tsc pni pclmulqdq est ssse3 cx16 sse4_1 sse4_2 popcnt aes f16c rdrand hypervisor lahf_lm ida arat epb pln pts dts fsgsbase erms root# dmidecode |grep Count # tests that HTT is available *and* enabled Core Count: 1 Thread Count: 2 Core Count: 1 Thread Count: 2
Source : https://www.oracle.com/docs/tech/ovm-performance.pdf