FastNetMon

Saturday, 12 December 2009

Athlon 64 X2 работает на низкой частота

Вот обратился клиент с проблемой, что его сервер на процессоре "AMD Athlon(tm) 64 X2 Dual Core Processor 5600+" работает на частоте 1000Mhz, что подтверждает выдача:


cat /proc/cpuinfo | grep MHz
cpu MHz : 1000.000
cpu MHz : 1000.000


Процессор работает на частоте намного ниже заявленной (которая порядка 3 GHz), т.к. нагрузка на процессор была мала и он снизил обороты. За это отвечает механизм "cpu frequency scaling".

У ядра есть ряд переменных, в которых можно узнать чуть больше о работе этого механизма:

# cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq # текущая частота кристалла
1000000
# cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq # максимальная частота кристалла
2800000
# cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq # минимальная частота кристалла
1000000


А теперь немного протестируем механизм, нагрузив процессор:

perl -e 'while(1){}' &


И вот сразу же частота стала нормальной:

cat /proc/cpuinfo | grep MHz
cpu MHz : 2800.000
cpu MHz : 2800.000


Убиваем тестовый процесс:

killall -9 -r perl


И частота снова стала низкой:

cat /proc/cpuinfo | grep MHz
cpu MHz : 1000.000
cpu MHz : 1000.000


Для управления этим механизмом используется утилита cpufreq:

yum -y install cpufreq-utils


Рекомендуемым механизмом управления частотй (их несколько: ondemand, userspace, performance) для серверов является "ondemand", для его насильного выбора настраиваем систему так:

vi /etc/rc.local
добавляем следующее:

cpufreq-set -g ondemand >> /dev/null


Ну вот и все :)

No comments :

Post a Comment

Note: only a member of this blog may post a comment.