Столкнулся с тем на Ubuntu 18.04 с ядром 5.0 у райзенов не работает boost частоты в однопоточной нагрузке и «неправильно» отображаются частоты ядер (в atop, например).
Собственно, решил первую из этих проблем так:
Проверяем, что boost у нас включен
cat /sys/devices/system/cpu/cpufreq/boost
echo 1 > /sys/devices/system/cpu/cpufreq/boost
На этом этапе можно замерять производительность любой однопоточной нагрузкой. Я замерял через команду:
openssl speed
Получаем нечто подобное (после md4 можно прервать исполнение, прирост и так будет виден):
Doing md4 for 3s on 16 size blocks: 8956867 md4's in 2.99s
Doing md4 for 3s on 64 size blocks: 7390952 md4's in 2.99s
Doing md4 for 3s on 256 size blocks: 4698093 md4's in 3.00s
Doing md4 for 3s on 1024 size blocks: 1935372 md4's in 2.99s
Doing md4 for 3s on 8192 size blocks: 306878 md4's in 3.00s
Doing md4 for 3s on 16384 size blocks: 168429 md4's in 2.99s
Сохраняем цифры, чтобы сравнить со значениями после фикса
Сам фикс:
Включаем раннюю подгрузку микрокода
echo "AMD64UCODE_INITRAMFS=early" | sudo tee -a /etc/default/amd64-microcode
Обновляем initrd
update-initramfs -k all -u
Проверяем производительность
Doing md4 for 3s on 16 size blocks: 17599671 md4's in 2.99s
Doing md4 for 3s on 64 size blocks: 13476871 md4's in 2.99s
Doing md4 for 3s on 256 size blocks: 7940896 md4's in 3.00s
Doing md4 for 3s on 1024 size blocks: 3047957 md4's in 2.99s
Doing md4 for 3s on 8192 size blocks: 436247 md4's in 3.00s
Doing md4 for 3s on 16384 size blocks: 224848 md4's in 2.99s
Видим прирост производительности от 33% до почти 100%
P.S. Частота в atop показывается всё ещё неправильная, но если собрать новую версию из исходников, то появляется графа «cycl» которая вполне точно отображает условную частоту процессора.