Le Deal du moment : -35%
KARCHER : promo sur nettoyeur haute pression K5 ...
Voir le deal
241.99 €

[TUTO] Optimiser - RaspberryPi - Cartes SD - wifi

Aller en bas

[TUTO] Optimiser - RaspberryPi - Cartes SD - wifi Empty [TUTO] Optimiser - RaspberryPi - Cartes SD - wifi

Message  YaYaLanD le Mar 14 Jan 2020 - 21:49

Salut !

Je lis de tout et de rien et beaucoup d'idée préconçues sur le RaspberryPi et l'émulation dessus.
Surtout en ce qui concerne les cartes SD, le système de fichier ou d'autres...
Ce topic est là pour donner des astuces pour optimiser le système, ou des astuces tout court.
Je vais compléter au fur et à mesure que les idées me viennent.

Allez on démarre avec un sujet récurrent : Ma carte SD est morte.

Pourquoi ? Parce que une carte SD a un nombre de lecture/écriture limité (I/O pour input/output).
Pour optimiser la durée de vie de la carte, et bien il faut écrire moins vu qu'on lira toujours presque autant...


Donc tuto : Ecrire moins sur une carte SD mrgreen
1) I/O Scheduler (temporisateur d'I/O) pour améliorer les performances de la carte SD

Code:
sudo nano /boot/cmdline.txt

il faut changer 'elevator=deadline' en 'elevator=noop' (il faut être attentif à ne pas détruire la ligne en rajoutant des caractères bidons ou des sauts de linge, la ligne doit rester une seule et même ligne)

CTRL o pour écrire et CTRL x pour quitter (CTRL o to write Out the file, CTRL x to eXit the file) et oui, il faut être anglophone pour l'informatique Wink

2) Pour aller plus loin dans l'amélioration de la durée de vie de la carte et pour réduire la consommation électrique (si si), on va changer le swapinees à 1 ; cela va permettre de n'écrire la mémoire virtuelle que quand la RAM est pleine, nous n'avons pas besoin de désactiver la mémoire virtuelle car certains services en arrière plan ne peuvent tourner que grâce à elle.

Code:
sudo nano /etc/sysctl.conf

Rajouter cette ligne à la fin du fichier

Code:
vm.swappiness = 1

CTRL o pour écrire et CTRL x pour quitter (CTRL o to write Out the file, CTRL x to eXit the file) et oui, il faut être anglophone pour l'informatique Wink

3) On va définir le noatime pour la partition FAT. Cela va permettre au système d'arrêter d'écrire la date de dernier accès au fichier et donc économiser des I/O. La contrepartie, c'est la sécurité. En effet, dans un système protégé (comme un serveur) pour savoir qui a fait planter le serveur ou un fichier, on peut croiser les dates et heures de connections des utilisateurs avec les dates et heures des accès aux fichiers, mais nous on s'en branle de tout ca ! On veut juste jouer mrgreen
En plus, comme on écrit moins, on économise de l’énergie (si si)

Code:
sudo nano /etc/fstab

Rajouter 'noatime' à /boot'
Exemple de mon fichier
Code:
proc            /proc           proc    defaults          0       0
PARTUUID=3d24ca30-01  /boot           vfat    defaults,noatime,nodiratime       0       2
PARTUUID=3d24ca30-02  /               ext4    defaults,noatime,nodiratime  0       1
# a swapfile is not a swap partition, no line here
#   use  dphys-swapfile swap[on|off]  for that

CTRL o pour écrire et CTRL x pour quitter (CTRL o to write Out the file, CTRL x to eXit the file) et oui, il faut être anglophone pour l'informatique Wink

4) On doit s'arranger pour que les fichiers de journaux et les fichiers temporaires soient chargés et écris en RAM afin d'arrêter d'écrire sur la carte SD (en anglais logs et tmp)

Code:
sudo nano /etc/fstab

rajouter ces lignes à la fin du fichier

Code:
tmpfs /var/log tmpfs defaults,size=20m,noatime,nodev,nosuid,mode=1777 0 0
tmpfs /tmp tmpfs defaults,size=10m,noatime,nodev,nosuid,mode=1777 0 0

CTRL o pour écrire et CTRL x pour quitter (CTRL o to write Out the file, CTRL x to eXit the file) et oui, il faut être anglophone pour l'informatique Wink

5) Quand on enregistre les journaux en RAM, on doit s'arranger pour créer des dossiers virtuels dont certains services d'arrière plans ont besoin sinon ca ne tournera pas comme il faut ou ne tournera pas du tout mrgreen En gros, on va leur faire croire que les dossiers qu'ils cherchent existent, mais en réalité, ils sont virtuels et renvois vers la RAM
(tiré de cet article à lire, attention, technique profonde, anglais, http://raspberrypi.stackexchange.com/a/14094 )

Code:
sudo nano /etc/init.d/prepare-dirs

Copier et coller ceci

Code:
#!/bin/bash
#
### BEGIN INIT INFO
# Provides: prepare-dirs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Required-Start:
# Required-Stop:
# Short-Description: Create needed directories on /var/log/ for tmpfs at startup
# Description: Create needed directories on /var/log/ for tmpfs at startup
### END INIT INFO
# needed Dirs
DIR[0]=/var/log/apt
DIR[1]=/var/log/ConsoleKit
DIR[2]=/var/log/fsck
DIR[3]=/var/log/ntpstats
DIR[4]=/var/log/lastlog
DIR[5]=/var/log/watchdog
DIR[6]=/var/log/proftpd
case "${1:-''}" in
  start)
  typeset -i i=0 max=${#DIR[*]}
  while (( i < max ))
  do
  mkdir ${DIR[$i]}
  chmod 755 ${DIR[$i]}
  i=i+1
  done
  # set rights
  chown www-data.www-data ${DIR[0]}
  ;;
  stop)
  ;;
  restart)
  ;;
  reload|force-reload)
  ;;
  status)
  ;;
  *)
  echo "Usage: $SELF start"
  exit 1
  ;;
esac
[*]

CTRL o pour écrire et CTRL x pour quitter (CTRL o to write Out the file, CTRL x to eXit the file) et oui, il faut être anglophone pour l'informatique Wink

On doit activer le script pour qu'il tourne tout seul au boot et qu'il démarre bien avant les autres services

Code:
sudo chmod 755 /etc/init.d/prepare-dirs
sudo update-rc.d prepare-dirs defaults 01 99

Ceux qui sont curieux de comprendre le script, en gros on dit au système de fichier de mettre les logs et les tmp en RAM (étape d'avant) et juste après on lance ce script qui va créer automatiquement de manière récursive les dossiers qui normalement sont sur le disque mais en RAM

6) On va affiner l'optimisation des I/O et on va optimiser le système de cache

Largement inspiré de https://lonesysadmin.net/2013/12/22/better-linux-disk-caching-performance-vm-dirty_ratio/ (je vous recommande vraiment de lire mais attention, c'est du haut niveau technique et bien sûr en anglais)

Ce tuning va optimiser les écritures du cache sur la carte SD mais attention, ceci n'est pas sécurisé du tout pour les données qui sont en cache. Dans notre usage très particulier (jouer mrgreen), on s'en fiche un peu des données en cache susceptibles d'être perdues, on veut juste rallonger la durée de vie de notre carte SD. Cela peut être dangereux dans des applications bancaires, sur un serveur web etc, ou un crash du système et du cache peut engendrer la perte de grandes quantités de données (un panier, une transaction bancaire etc.)

Que peut-il arriver de pire ? Les données en cache sont perdues par exemple à cause d'une coupure électrique mais on perd quoi ? Les logs ? On s'en fout en les jette en RAM pour les perdre de toute manière ? On perd les fichiers ouverts ? on s'en fiche, on n'ouvre que des ROMS pour jouer et les fichiers restent sur le disque quoi qu'il advienne. Nos machines ne sont pas des stations de travail, ce sont des consoles Wink
On ne fait que jouer donc on s'en fiche de tout ca. On ne perd rien de critique. Une fois installé, le système est autonome et exécute tout le temps les mêmes tâches : lancer des émulateurs qui chargent des ROMS. Vous pouvez y aller avec cette optimisation sans soucis, cela fait 3 ans que je tourne dans cette config sur tous mes Pis qui me servent à jouer.

Code:
sudo nano /etc/sysctl.conf

ajoutez ces lignes à la fin du fichier

Code:
##########################
#### FINE TUNE CACHING  ########
##########################
vm.dirty_background_ratio=20
vm.dirty_ratio=40
vm.dirty_writeback_centisecs=12000
vm.dirty_expire_centisecs=12000

CTRL o pour écrire et CTRL x pour quitter (CTRL o to write Out the file, CTRL x to eXit the file) et oui, il faut être anglophone pour l'informatique Wink

vm.dirty_background_ratio est le pourcentage de  mémoire système qui peut-être remplie avec des pages mémoires dites 'dirty' (sales) - des pages mémoires qui ont besoin d'être écrites sur le disque - avant que les processus de fond pdflush/flush/kdmflush ne donnent l'ordre d’écrire sur le disque. Exemple avec 10% : ma machine a 1Giga de mémoire, c'est 100Mega de données qui peuvent dormir en RAM avant de les balancer sur le disque.

vm.dirty_ratio est la valeur maximum et absolue de mémoire système qui peut-être remplie de pages mémoires 'dirty' (sales) avant que tout ne soit balancé obligatoirement sur le disque. Quand le système en arrive à ce stade, toutes les pages mémoires sont écrites sur le disque le temps que la purge se fasse depuis la RAM. Ceci est souvent la cause de grosse pause d'I/O (plus rien ne se passe) mais c'est un garde fou contre le remplissage permanent du cache avec les pages mémoires.
Typiquement, sur un Raspberry Pi Zero, de temps en temps (ca dépend de la valeur fixée en fait) le système se fige carrément pendant presque 1 seconde pour vider la mémoire (donc si tu joue, le jeu se bloque) et hop ca repart hihi mais le pi zéro a moins de mémoire qu'un Pi3b+ et sur le Pi3 cela ne m'est jamais arrivé Wink

vm.dirty_writeback_centisecs c'est la fréquence de réveil des processus pdflush/flush/kdmflush pour vérifier si quelque chose doit être fait. En mode : réveil toi bouffons et regardes si tu dois pas bosser Smile

vm.dirty_expire_centisecs est le temps pendant lequel quelque chose en cache peut rester en cache avant d'être écris sur le disque. Quand les processus pdflush/flush/kdmflush se réveillent, ils vont vérifier depuis combien de temps les pages mémoires les plus vieilles sont en mémoire, si certaines sont plus vieilles que XX secondes, les pages concernées vont être écrite de manière asynchrone sur le disque (pour ne pas faire de gel comme la grosse purge massive) Comme garder les pages mémoires en RAM est peu sécuritaire, c'est également un garde fou pour ne pas planter le système.

Dans mes paramètres, je pousse les limites à l'extrême pour VRAIMENT économiser des I/O donc je mets 20% de RAM, de manière ultime 40%, et j'écris toutes les 2 minutes et je vérifie toutes les 2 minutes si il n'y a pas quelque chose à faire mrgreen


Dernière édition par YaYaLanD le Mar 14 Jan 2020 - 22:22, édité 4 fois
YaYaLanD
YaYaLanD
1000 Mega Shock
1000 Mega Shock

Système(s) : MVS MV-1
Messages : 3158
Date d'inscription : 10/10/2019
Age : 43
Localisation : Dijon

Revenir en haut Aller en bas

[TUTO] Optimiser - RaspberryPi - Cartes SD - wifi Empty Re: [TUTO] Optimiser - RaspberryPi - Cartes SD - wifi

Message  YaYaLanD le Mar 14 Jan 2020 - 21:49

Pour ceux qui galèrent à mettre en place le wifi sur leur PI voici comment on fait sans se prendre la tête.
Ceci est également valable pour ceux qui se demandent où ou comment on tape les lignes de codes que j'ai citées plus haut


1) Brancher votre carte SD dans windows (bien sûr la carte est déjà flashée avec recalbox ou retropie ou autre base RaspBian)
2) Sur la partition boot qui apparait, créez un fichier qui s'appelle ssh sans extension, sans rien mettre dedans (clic droit, nouveau, document texte, renommer le document)
3) créez un autre fichier appelé wpa_supplicant.conf.txt
4) éditez le fichier wpa_supplicant.conf.txt (par un double clic dessus) et collez ca dedans


Code:
network={
 ssid="tonNomdeRéseau"
 psk="TonMotdePassedeRéseau"
 key_mgmt=WPA-PSK
}

par exemple
Code:
network={
 ssid="Livebox-C50"
 psk="azetrgdre1250"
 key_mgmt=WPA-PSK
}

5) enregistrez le fichier et quittez
6) faites un clic droit sur le fichier puis renommer (ou F2 quand il est seléctionné) et renommez le en wpa_supplicant.conf (on vire le .txt, on confirme le changement d'extension de fichier)
6) éjectez la carte sd
7) mettez la carte SD dans le pi
Cool allumez
9) allez sur votre l'interface de votre box (en général via 192.168.1.1 sur un navigateur) pour chopper l'adresse Ip de votre Raspberry (par défaut un retopie s'appelle retropie sur le réseau)

Maintenant depuis votre ordinateur :
10) allez sur https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html et téléchargez la dernière version de Putty
11) lancez putty
12) tapez l'adresse ip du Raspberry Pi dans le champ hostname
13) laissez le port sur 22 (port ssh de base)
14) tapez un nom dans le champ saved sessions pour enregistrer cette session afin de se reconnecter plus facilement la prochaine fois (par exemple : mon recalbox du salon)
15) cliquez save
16) cliquez load
17) tapez le login (par défaut c'est pi si vous n'avez rien changé)
18) tapez le mot de passe (par défait c'est raspberry si vous n'avez rien changé)
19) voilà

Maintenant vous avez accès à votre pi depuis le wifi sur une console pour taper de la ligne de commande, dépanner le pi, scrapper, le mettre à jour...


Dernière édition par YaYaLanD le Mar 14 Jan 2020 - 22:16, édité 3 fois
YaYaLanD
YaYaLanD
1000 Mega Shock
1000 Mega Shock

Système(s) : MVS MV-1
Messages : 3158
Date d'inscription : 10/10/2019
Age : 43
Localisation : Dijon

Revenir en haut Aller en bas

[TUTO] Optimiser - RaspberryPi - Cartes SD - wifi Empty Re: [TUTO] Optimiser - RaspberryPi - Cartes SD - wifi

Message  YaYaLanD le Mar 14 Jan 2020 - 21:49

réservé
YaYaLanD
YaYaLanD
1000 Mega Shock
1000 Mega Shock

Système(s) : MVS MV-1
Messages : 3158
Date d'inscription : 10/10/2019
Age : 43
Localisation : Dijon

Revenir en haut Aller en bas

[TUTO] Optimiser - RaspberryPi - Cartes SD - wifi Empty Re: [TUTO] Optimiser - RaspberryPi - Cartes SD - wifi

Message  YaYaLanD le Mar 14 Jan 2020 - 21:50

réservé
YaYaLanD
YaYaLanD
1000 Mega Shock
1000 Mega Shock

Système(s) : MVS MV-1
Messages : 3158
Date d'inscription : 10/10/2019
Age : 43
Localisation : Dijon

Revenir en haut Aller en bas

[TUTO] Optimiser - RaspberryPi - Cartes SD - wifi Empty Re: [TUTO] Optimiser - RaspberryPi - Cartes SD - wifi

Message  YaYaLanD le Mar 14 Jan 2020 - 21:50

réservé
YaYaLanD
YaYaLanD
1000 Mega Shock
1000 Mega Shock

Système(s) : MVS MV-1
Messages : 3158
Date d'inscription : 10/10/2019
Age : 43
Localisation : Dijon

Revenir en haut Aller en bas

[TUTO] Optimiser - RaspberryPi - Cartes SD - wifi Empty Re: [TUTO] Optimiser - RaspberryPi - Cartes SD - wifi

Message  onels4 le Mar 14 Jan 2020 - 22:12

super super super super super
beer

(je déplacerai mon post si besoin de réserver un autre emplacement, bien sûr)
onels4
onels4
1000 Mega Shock
1000 Mega Shock

Système(s) : AES
Messages : 2899
Date d'inscription : 27/06/2017
Age : 39
Localisation : Paris

Revenir en haut Aller en bas

[TUTO] Optimiser - RaspberryPi - Cartes SD - wifi Empty Re: [TUTO] Optimiser - RaspberryPi - Cartes SD - wifi

Message  YaYaLanD le Mar 14 Jan 2020 - 22:17

Nan ca devrait aller, je n’ai pas vocation à créer une encyclopédie pour le pi hihi
YaYaLanD
YaYaLanD
1000 Mega Shock
1000 Mega Shock

Système(s) : MVS MV-1
Messages : 3158
Date d'inscription : 10/10/2019
Age : 43
Localisation : Dijon

Revenir en haut Aller en bas

[TUTO] Optimiser - RaspberryPi - Cartes SD - wifi Empty Re: [TUTO] Optimiser - RaspberryPi - Cartes SD - wifi

Message  Dum3r1K le Mer 15 Jan 2020 - 9:12

Merci YaYaLanD, très intéressant...

Quelques bidouilles qui permettent de mieux contrôler son environnement :-)

Dum3r1K
Visiteur confirmé
Visiteur confirmé

Messages : 62
Date d'inscription : 05/02/2018
Age : 40
Localisation : Liège

Revenir en haut Aller en bas

[TUTO] Optimiser - RaspberryPi - Cartes SD - wifi Empty Re: [TUTO] Optimiser - RaspberryPi - Cartes SD - wifi

Message  SHIN NIHON KIKAKU 1973 le Mer 15 Jan 2020 - 9:34

Félicitations pour t' est programmation
Tu est vachement caller en codage.

Je connais rien


j'ai une question si ta carte sd par exemple de 32 gigot si tu la charge au maximum. De données

Ou tu laisse 2 gigas vide part exemple

C'est quoi le mieux pour la carte sd

d'avoir une carte plein à rebord ou il faut toujours laisser peut de gigas
En rab ???

SHIN NIHON KIKAKU 1973
SHIN NIHON KIKAKU 1973
1000 Mega Shock
1000 Mega Shock

Système(s) : neogeo aes , sega saturn , dre
Messages : 8218
Date d'inscription : 09/10/2015
Localisation : ici et ailleurs

Revenir en haut Aller en bas

[TUTO] Optimiser - RaspberryPi - Cartes SD - wifi Empty Re: [TUTO] Optimiser - RaspberryPi - Cartes SD - wifi

Message  YaYaLanD le Mer 15 Jan 2020 - 12:20

SNK, il vaut toujours mieux laisser environ 20% de place de dispo ainsi le système peut travailler a l?aise et surtout si des blocs commencent à montrer de la faiblesse, le noyau du système peut délocaliser ses clusters dans un endroit sain et éviter de cramer l?intégralité du système de fichier.

De toute façon vu le prix de la sd de nos jours, faut pas se faire c... tu prends au dessus de ton besoin. Tu veux mettre 32Gigot d?agneau ? Prends une marmite de 64 Wink
YaYaLanD
YaYaLanD
1000 Mega Shock
1000 Mega Shock

Système(s) : MVS MV-1
Messages : 3158
Date d'inscription : 10/10/2019
Age : 43
Localisation : Dijon

Revenir en haut Aller en bas

[TUTO] Optimiser - RaspberryPi - Cartes SD - wifi Empty Re: [TUTO] Optimiser - RaspberryPi - Cartes SD - wifi

Message  kazki le Mer 15 Jan 2020 - 13:03

Salut yaya beau boulot

Petite question existe-t’il un GUI sous raspbian pour gérer un mode routeur sur Rpi ? L’idee est de bridger un liaison wifi d’une chambre d’hotel et de partager en wifi l’accès Internet via un dongle wifi supplémentaire

Souvent les points d’accès des hotels, tu te connectes en wifi et ensuite faut s’identifier via une interface web, merci à toi
kazki
kazki
1000 Mega Shock
1000 Mega Shock

Système(s) : AES MVS PCE SFC MD SWITCH PGM
Messages : 3448
Date d'inscription : 22/10/2018

Revenir en haut Aller en bas

[TUTO] Optimiser - RaspberryPi - Cartes SD - wifi Empty Re: [TUTO] Optimiser - RaspberryPi - Cartes SD - wifi

Message  william95170 le Mer 15 Jan 2020 - 13:27

Super tuto ça peut servir
J'ai un PI3 et une image de 400go ça bouge pas, je le grave qu'une fois, le plus chiant c'est quand tu passes au PI4 faut tout refaire
En même temps le mieux c'est l'odroid, plus puissant que le PI mais moins d'images ou de compatibilités
william95170
william95170
Combo maker
Combo maker

Système(s) : AES 3.6 Vectrex PS3 PS4 Switch
Messages : 682
Date d'inscription : 14/09/2018
Age : 49
Localisation : Val d'Oise (95)

Revenir en haut Aller en bas

[TUTO] Optimiser - RaspberryPi - Cartes SD - wifi Empty Re: [TUTO] Optimiser - RaspberryPi - Cartes SD - wifi

Message  SHIN NIHON KIKAKU 1973 le Mer 15 Jan 2020 - 16:44

YaYaLanD a écrit:SNK, il vaut toujours mieux laisser environ 20% de place de dispo ainsi le système peut travailler a l?aise et surtout si des blocs commencent à montrer de la faiblesse, le noyau du système peut délocaliser ses clusters dans un endroit sain et éviter de cramer l?intégralité du système de fichier.

De toute façon vu le prix de la sd de nos jours, faut pas se faire c... tu prends au dessus de ton besoin. Tu veux mettre 32Gigot d?agneau ? Prends une marmite de 64 Wink


Merci de ton retour Je suis quasiment à bloc sur ma sd 32 go je vais allégé un peut merci Wink
SHIN NIHON KIKAKU 1973
SHIN NIHON KIKAKU 1973
1000 Mega Shock
1000 Mega Shock

Système(s) : neogeo aes , sega saturn , dre
Messages : 8218
Date d'inscription : 09/10/2015
Localisation : ici et ailleurs

Revenir en haut Aller en bas

[TUTO] Optimiser - RaspberryPi - Cartes SD - wifi Empty Re: [TUTO] Optimiser - RaspberryPi - Cartes SD - wifi

Message  YaYaLanD le Mer 15 Jan 2020 - 17:00

Je vais compléter le tuto ce soir avec d’autres optimisations et puis une petite surprise...
Si vous appliquez toutes les astuces ci-haut + celles que je vais rajouter ce soir, vous consommez 17% d’energie en moins et oui.
Dans mes applications de raspberrypi zero en mode consoles portables, avec des batteries de 4800mAh, je tiens à l’aise 7h30 de jeux avec des écrans DPI de 3.5”.

Même si vous ne tournez pas sur batterie, ce sont des gestes pour la planète et j’aime me dire que mon Pi ne fait rien de superflue. Vous veerez dans le tuto ce soir
YaYaLanD
YaYaLanD
1000 Mega Shock
1000 Mega Shock

Système(s) : MVS MV-1
Messages : 3158
Date d'inscription : 10/10/2019
Age : 43
Localisation : Dijon

Revenir en haut Aller en bas

[TUTO] Optimiser - RaspberryPi - Cartes SD - wifi Empty Re: [TUTO] Optimiser - RaspberryPi - Cartes SD - wifi

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum