Uwaga! Informacje w poniższym poście mogą być przydatne (w szczególności kwestia podrasowywania zarządcy, ale narzędziem do sterowania zarządcami/prędkościami lepszym jest cpufreqd.
Sugeruję conservative governor [źródło]. W skrócie, jest to tryb podobny do ondemand, z tym, że, gdy ondemand wykryje przekroczenie obciążenia procesora (o tym później), ustawia go na maksymalną częstotliwość. Conservative robi to spokojniej. Po przekroczeniu ustawia procesor na częstotliwość 'o krok wyżej'. Aby ustanowić conservative jako domyślne ustawienie trzeba zainteresować się plikiem /etc/init.d/ondemand. Skrypt ten po około minucie od uruchomienia systemu zmienia zarządcę na ondemand [źródło]. Aby go całkowicie wyłączyć wystarczy:
Sugeruję conservative governor [źródło]. W skrócie, jest to tryb podobny do ondemand, z tym, że, gdy ondemand wykryje przekroczenie obciążenia procesora (o tym później), ustawia go na maksymalną częstotliwość. Conservative robi to spokojniej. Po przekroczeniu ustawia procesor na częstotliwość 'o krok wyżej'. Aby ustanowić conservative jako domyślne ustawienie trzeba zainteresować się plikiem /etc/init.d/ondemand. Skrypt ten po około minucie od uruchomienia systemu zmienia zarządcę na ondemand [źródło]. Aby go całkowicie wyłączyć wystarczy:
sudo update-rc.d -f ondemand removePrzyda nam się on jeszcze do jednej rzeczy - aby utworzyć skrypt conservative. Ja sam skopiowałem skrypt ondemand do conservative:
sudo cp /etc/init.d/ondemand /etc/init.d/conservativeOraz zamieniłem odpowiednie wpisy ondemand na conservative, w wyniku czego otrzymałem taki skrypt:
#! /bin/shAby zmusić skrypt do działania zamiast ondemand, należy jeszcze wykonać poniższe komendy [źródło]:
### BEGIN INIT INFO
# Provides: ondemand
# Required-Start: $remote_fs $all
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop:
# Short-Description: Set the CPU Frequency Scaling governor to "conservative"
### END INIT INFO
# Don't run if we're going to start an Android LXC container:
[ ! -f /etc/init/lxc-android-config.conf ] || exit 0
PATH=/sbin:/usr/sbin:/bin:/usr/bin
. /lib/init/vars.sh
. /lib/lsb/init-functions
AVAILABLE="/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors"
case "$1" in
start)
start-stop-daemon --start --background --exec /etc/init.d/conservative -- background
;;
background)
sleep 60 # probably enough time for desktop login
[ -f $AVAILABLE ] || exit 0
read governors < $AVAILABLE
case $governors in
*interactive*)
GOVERNOR="interactive"
break
;;
*conservative*)
GOVERNOR="conservative"
break
;;
*)
exit 0
;;
esac
for CPUFREQ in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
do
[ -f $CPUFREQ ] || continue
echo -n $GOVERNOR > $CPUFREQ
done
;;
restart|reload|force-reload)
echo "Error: argument '$1' not supported" >&2
exit 3
;;
stop)
;;
*)
echo "Usage: $0 start|stop" >&2
exit 3
;;
esac
sudo chmod +x /etc/init.d/conservativeIdąc dalej, można 'dopieścić' skrypt aby ustawiał wymarzone przez nas progi i parametry trybu conservative. W tym celu warto przyjrzeć się plikom znajdującym się w /sys/devices/system/cpu/cpufreq/conservative/ [źródło]:
sudo update-rc.d conservative start 99 2 3 4 5 .
down_threshold - obciążenie procesora poniżej którego zmniejszana jest częstotliwość (domyślnie: 20%)
freq_step - krok zwiększania/zmniejszania częstotliwości (domyślnie: 5%)
ignore_nice_load - wliczanie lub niewliczanie procesów 'nice', tj. "nie ważne jak długo robisz" do udziału w obciążeniu (domyślnie: 0)
sampling_down_factor - wpływa na wydajność podczas pełnego obciążenia. Zapobiega zmianom częstotliwości (góra/dół) przy pełnym obciążeniu (domyślnie: 1)
sampling_rate - co jaki czas system ma sprawdzać obciążenie procesora
W pliku przytoczonym jako źródło zaleca się:
echo $(($(cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_transition_latency)*750/1000))W moim wypadku komenda zwraca 3000 co jest mniej niż minimum (domyślnie: 80000).
sampling_rate_min:
echo $(($(cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_transition_latency)*100))Tutaj 400000 (domyślnie: 8000).
up_threshold - obciążenie po przekroczeniu którego częstotliwość jest zwiększana (domyślnie: 80%)
aby trochę podrasować powyższe parametry wystarczy zapisać do danych plików konkretne parametry (jako root):
echo -n 30 > /sys/devices/system/cpu/cpufreq/conservative/down_thresholdA to można wrzucić do pliku /etc/init.d/conservative, za pętlą CPUFREQ.
echo -n 1 > /sys/devices/system/cpu/cpufreq/conservative/ignore_nice_load
echo -n 70 > /sys/devices/system/cpu/cpufreq/conservative/up_threshold
Brak komentarzy:
Prześlij komentarz