Optimiser la consommation CPU et mémoire de votre RaspBerry Pi

raspberrypi

Aujourd’hui j’ai cherché plusieurs façons d’optimiser la consommation de mon RaspBerry Pi.

En effet, votre rpi ne possède pas de ressources illimités, c’est pourquoi il faut absolument gérer sa consommation (mémoire et CPU).

Au fil des pages, j’ai trouvé plusieurs astuces que je regroupe ici.

J’espère que cela vous sera pratique.

Remplacer OpenSSH avec DropBear

Le simple fait de remplacer OpenSSH avec DropBear vous permettra de gagner environ 10Mb de mémoire. Il faut tout de même savoir que cette manipulation supprime le logging SSH ainsi que le port forwarding.

Tout d’abord, on installe le client openssh et DropBear puis on arrête le service SSH

apt-get install dropbear openssh-client
/etc/init.d/ssh stop

Puis on lance DropBear au démarrage du RaspBerryPi

sed -i 's/NO_START=1/NO_START=0/g' /etc/default/dropbear

Optionnel: prevenir des connections root

sed -i 's/DROPBEAR_EXTRA_ARGS=/DROPBEAR_EXTRA_ARGS="-w"/g' /etc/default/dropbear

Optionnel: prévenir des connections et des mots de passe root

sed -i 's/DROPBEAR_EXTRA_ARGS=/DROPBEAR_EXTRA_ARGS="-w -s"/g' /etc/default/dropbear

Optionnel: changer le port d’écoute

sed -i 's/DROPBEAR_PORT=22/DROPBEAR_PORT=2222/g' /etc/default/dropbear

Ensuite il suffit de démarrer DropBear et de supprimer OpenSSH Server

/etc/init.d/dropbear start
apt-get purge openssh-server

Supprimer extra tty / getty

Cette manipulation va désactiver tty2-tty6, vous laissant uniquement tty1 et vous fera gagner environ 4Mb de RAM.

sed -i '/[2-6]:23:respawn:\/sbin\/getty 38400 tty[2-6]/s%^%#%g' /etc/inittab

Optionnel: vous pouvez également désinstaller getty

sed -i '/T0:23:respawn:\/sbin\/getty -L ttyAMA0 115200 vt100/s%^%#%g' /etc/inittab

Remplacer Bash Shell avec Dash Shell

Le fait de remplacer votre shell Bash par le Dash va améliorer les performances de votre machine et vous faire gagner environ 1Mb de mémoire.

De plus, votre RaspBerry démarrera plus rapidement et votre utiliserez moins d’espace disque.

dpkg-reconfigure dash
 
Use dash as the default system shell (/bin/sh)? Yes

Utiliser 512Mb de Swap

Plusieurs tests ont révélés que votre RaspBerry Pi est le plus performant lorsqu’il utilise 512 Mb de swap.

echo "CONF_SWAPSIZE=512" > /etc/dphys-swapfile

Ensuite il suffit de l’initialiser et de l’activer:

dphys-swapfile setup
dphys-swapfile swapon

Optionnel: vous pouvez améliorer les performances de votre swap grâce à la commande suivante:

sed -i 's/sortstrategy = 3/sortstrategy = 0/g'  /etc/preload.conf

Optimiser le montage du système

Pour optimiser le temps de montage du système installé sur votre RaspBerry Pi, vous pouvez utiliser la commande suivante:

sed -i 's/defaults,noatime/defaults,noatime,nodiratime/g' /etc/fstab

Désactiver IPv6

Si vous n’utilisez pas les fonctionnalités d’IPv6, vous pouvez le désactiver ce qui économisera les ressources de votre RaspBerry Pi et qui améliorera ses vitesses de connection.

echo "net.ipv6.conf.all.disable_ipv6=1" > /etc/sysctl.d/disableipv6.conf
echo 'blacklist ipv6' >> /etc/modprobe.d/blacklist 
sed -i '/::/s%^%#%g' /etc/hosts

Pensez à redémarrer votre RaspBerry:

shutdown -r now

Remplacer le Deadline Scheduler avec le NOOP Scheduler

Le plannificateur NOOP est plus approprié lorsque l’on utilise un disque SSD ou une carte Flash pour stocker le système d’exploitation:

sed -i 's/deadline/noop/g' /boot/cmdline.txt
shutdown -r now

Remplacer rsyslogd par inetutils-syslogd

Le remplacement de rsyslogd par inetutils-syslogd et la suppression des logs inutiles permet la consommation mémoire et l’utilisation cpu.

apt-get -y remove --purge rsyslog
apt-get -y install inetutils-syslogd 
service inetutils-syslogd stop

Vous pouvez supprimer les fichiers de logs obsolètes:

for file in /var/log/*.log /var/log/mail.* /var/log/debug /var/log/syslog; do [ -f "$file" ] && rm -f "$file"; done
for dir in fsck news; do [ -d "/var/log/$dir" ] && rm -rf "/var/log/$dir"; done

Il faut ensuite créer une fichier de configuration puis de démarrer le service:

echo -e "*.*;mail.none;cron.none\t -/var/log/messages\ncron.*\t -/var/log/cron\nmail.*\t -/var/log/mail" > /etc/syslog.conf
 
mkdir -p /etc/logrotate.d
echo -e "/var/log/cron\n/var/log/mail\n/var/log/messages {\n\trotate 4\n\tweekly\n\tmissingok\n\tnotifempty\n\tcompress\n\tsharedscripts\n\tpostrotate\n\t/etc/init.d/inetutils-syslogd reload >/dev/null\n\tendscript\n}" > /etc/logrotate.d/inetutils-syslogd
service inetutils-syslogd start

Passer en IP Fixe et supprime le DHCP-Client

Passer en IP Fixe réduira votre consommation mémoire et cpu.

Tout d’abord créez un fichier de backup:

cp -f /etc/network/interfaces /etc/network/interfaces.dhcp-backup

Ensuite éditez le fichier /etc/network/interfaces et remplacez:

iface eth0 inet dhcp

par:

iface eth0 inet static
#set your static IP below
address 192.168.1.107
#set your default gateway IP here
gateway 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255

Pour que les changements soient effectifs, il suffit de redémarrer votre RaspBerry Pi:

shutdown -r now

4 Responses to Optimiser la consommation CPU et mémoire de votre RaspBerry Pi

  1. BRODAR says:

    Hi,

    I’v got an error message about this :

    for file in /var/log/*.log /var/log/mail.* /var/log/debug /var/log/syslog; do [ -f “$file” ] && rm -f “$file”; done

    Message : “do” synthax error

    Can you tell me what do you think of it ?

    Thanks.

  2. fpp says:

    Collection très utile, efficace et dans un format super pratique à utiliser, merci !

    Il me semble avoir vu ailleurs qu’on peut gagner un peu de temps au démarrage avec une autre console que la version colorée par défaut, qui serait lente, est-ce vrai ?…

Leave a Reply

Your email address will not be published. Required fields are marked *