Come Ottimizzare l’Utilizzo della CPU su Linux

In molti casi ci si accorge che nonostante il server Linux abbia una super-cpu, il sistema operativo ed i software non stanno girando a “tutta potenza”.
Per verificare a quale velocità stanno andando le CPU basta eseguire questo comando
grep -E ‘^model name|^cpu MHz’ /proc/cpuinfo

ed otterrete una risposta come la seguente:
model name : Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz
cpu MHz : 1600.000

In questo caso la CPU viene utilizzato al 60% delle sue potenzialità! Sebbene questa sia una caratteristica ottima per una workstation (per risparmiare energia ed abbassare la velocità delle ventole), nel caso di server può essere utile avere sempre la massima velocità.
Questa funzionalità, gestita direttamente dal kernel, è possibile modificarne il comportamento come segue

controllare che il software ‘kondemand’ sia in esecuzione tramite il seguente comando: “pgrep -lf ondemand”
[root@boston07 ~]# uname -a
Linux boston07 2.6.18-164.6.1.el5 #1 SMP Tue Nov 3 16:18:27 EST 2009 i686 i686 i386 GNU/Linux
[root@boston07 ~]# pgrep -lf ondemand
1444 kondemand/0
1445 kondemand/1

Controllare che le CPU stiano in esecuzione ad una velocità inferiore a quella di picco:
[root@boston07 ~]# grep -E ‘^model name|^cpu MHz’ /proc/cpuinfo
model name : Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz
cpu MHz : 1596.000
model name : Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz
cpu MHz : 1596.000

Cambia l’algoritmo di gestione delle CPU da ‘ondemand’ a ‘performance’ per ogni CPU:
for CPUFREQ in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do [ -f $CPUFREQ ] || continue; echo -n performance > $CPUFREQ; done

Verifica nuovamente che le CPU stiano effettivamente andando al massimo della velocità:
[root@boston07 ~]# grep -E ‘^model name|^cpu MHz’ /proc/cpuinfo
model name : Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz
cpu MHz : 2394.000
model name : Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz
cpu MHz : 2394.000

se sono attivi i servizi ‘cpuspeed’, ‘cpufreqd’, ‘powerd’ , stoppali per evitare che controllino la velocità della CPU
# service cpuspeed stop