This file just contains some intel about the environment in use and what has been done to get it into that state.
- Hetzner AX161, Dedicated Hosted Hardware
- CPU: AMD EPYC 7502P 32 cores / 64 threads @ 2.5 GHz
- Memory: 128 GB ECC DDR4 RAM
- 2x SAMSUNG MZQL2960HCJR-00A07, 1 TB, Software RAID-1
- CentOS 9, Linux 5.14.0-378.el9.x86_64
- SMT off
- Turbo Boost Off
- Filesystem EXT4
$ cat /proc/cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 23
model : 49
model name : AMD EPYC 7502P 32-Core Processor
stepping : 0
microcode : 0x8301055
cpu MHz : 2500.000
cache size : 512 KB
physical id : 0
siblings : 32
core id : 0
cpu cores : 32
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 16
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba ibrs ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local clzero irperf xsaveerptr rdpru wbnoinvd arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif v_spec_ctrl umip rdpid overflow_recov succor smca sme sev sev_es
bugs : sysret_ss_attrs spectre_v1 spectre_v2 spec_store_bypass retbleed smt_rsb
bogomips : 4990.70
TLB size : 3072 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 43 bits physical, 48 bits virtual
power management: ts ttp tm hwpstate cpb eff_freq_ro [13] [14]
... more for all other cores
Disable during boot via boot-param, able to switch it on later again, if needed.
Add nosmt
to grub boot config in /etc/default/grub
# Added nosmt to command line
GRUB_CMDLINE_LINUX="biosdevname=0 crashkernel=auto rd.auto=1 consoleblank=0 nosmt"
Update boot config:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Using the legacy /etc/rc.local
concept to change things during boot:
# Turn SMT off via software as well, already got nosmt in grub
echo off > /sys/devices/system/cpu/smt/control
# Turn off turbo boost
echo 0 |tee /sys/devices/system/cpu/cpufreq/boost
Reduce from default 60 to 10% memory pressure by adding vm.swappiness = 10
to /etc/sysctl.conf
.
Check after boot if all settings have been applied. Can also be used to control these during runtime.
- SMT off:
cat /sys/devices/system/cpu/smt/active
must be 0 - SWAP:
cat /proc/sys/vm/swappiness
must be 10 - Turbo off:
cat /sys/devices/system/cpu/cpufreq/boost
must be 0