Mechaick
Posts: 10
Joined: Thu Jun 18, 2020 9:17 am

Optimiser l'OS de la PI

Thu Jun 24, 2021 1:22 pm

Bonjour,

Je travaille actuellement sur une raspberry pi dans un robot.
J'ai quelques questions vis à vis de l'OS rasbian.
En effet je cherche à optimiser au mieux les performances de la carte.
Pour cela je vois plusieurs solutions :

1) Installer un autre OS plus légers et n'installer que les paquets dont j'ai besoin

2) Optimiser au mieux RasBian en enlevant tout les paquets inutiles.

Auriez vous une solution à me proposer vis à vis de cela ?

Merci d'avance

dbrion06
Posts: 478
Joined: Tue May 28, 2019 11:57 am

Re: Optimiser l'OS de la PI

Thu Jun 24, 2021 1:41 pm

Bon, a priori
un paquet dont vous n'avez pas besoin (sauf si c'est un service) ne mangera pas de cycles CPU (il squattera une carte SD, mais ça ne consomme rien).
en phase de développement, vous pouvez être très heureux d'avoir un système aussi confortable que RPiOS.
donc, je ne me caserais pas la tête, je laisserais les choses telles quelles et me concentrerais sur le robot, quitte à monitorer dans une phase intermédiaire entre le developpement et la mise en marche de votre robot et éliminer les services inutiles les uns après les autres -en restant sûr de ne rien casser- (mais, si vous avez un quadricore, cette phase d'élimination est elle justifiée?)
Edité: en passant avant d'optimiser un os, il se peut que, pour certaines configurations, python -qui est très à la mode- vous mange pas mal de cycles (pas en traitement/reconnassance d'image qui fait un usage massif de bibliothèques C, C++ et Fortran -je confirme, fortran...-; mais certains codes sans modules /bibliothèques peuvent être gourmands en cycles. Avez vous les moyens de faire un état de votre code?

totoharibo
Posts: 4549
Joined: Thu Jan 24, 2013 8:43 am

Re: Optimiser l'OS de la PI

Thu Jun 24, 2021 2:52 pm

+1 avec dbrion06
il faut arrêter les services inutiles : X, bluetooth, et autres.
Voir avec la commande systemctl status.
et "desabler" les services inutiles

Et pour avoir plus de puissance utiliser plutôt C que python.

Mechaick
Posts: 10
Joined: Thu Jun 18, 2020 9:17 am

Re: Optimiser l'OS de la PI

Fri Jun 25, 2021 9:14 am

Bonjour,

Merci pour vos conseil,

Justement le projet est dans une phase assez avancée et utilise beaucoup de python pour certaines fonctions importantes.
Je ne peut pas tout refaire en C.

Qu'entendez vous par "faire un état de mon code" ?

Merci encore

User avatar
DougieLawson
Posts: 41431
Joined: Sun Jun 16, 2013 11:19 pm
Location: A small cave in deepest darkest Basingstoke, UK
Contact: Website Twitter

Re: Optimiser l'OS de la PI

Fri Jun 25, 2021 9:28 am

Mechaick wrote:
Fri Jun 25, 2021 9:14 am

Qu'entendez vous par "faire un état de mon code" ?
Cela a été traduit par Google et transformé en ordure.

Publiez un exemple de votre code.
Any language using left-hand whitespace for syntax is ridiculous

Any DMs sent on Twitter will be answered next month.
Fake doctors - are all on my foes list.

Any requirement to use a crystal ball or mind reading will result in me ignoring your question.

dbrion06
Posts: 478
Joined: Tue May 28, 2019 11:57 am

Re: Optimiser l'OS de la PI

Fri Jun 25, 2021 9:55 am

etat du code?

est il lisible par d'autres personnes que vous? par vous, si vous avez une bug indetectée dans trois mois?
(du bon sens, aidé éventuellement par pylint ou -incl flake08-, peut vous aider)
A ce stade, vous pourrez le publier... comme Doughie Lawson le recommande

Est il assez rapide?
si oui, la question de la réecriture ne se pose pas.
si non, keski coinche?
ipython3 (et sans doute son descendant macronien, Jupyter) a des fonctions de profilage ("%timeit) -https://stackoverflow.com/questions/582 ... hon-script en donne d'autres .
Très souvent, un seul bout de code coince (vous pouvez donc le publier, en demandant au wilde ouaibe de l'accélérer).

A la difference de totoharibo, je ne conseille pas de retirer X(si vous voulez dépanner dans 2-6 mois, vous pouvez être heureux qu'il soit encore là -doit on vraiment joindre un inconfort certain à une panne?- ; x /xfce mangent peu de ressources et peuvent être bien pratiques). BT, je suis d'accord (s'il gène vraiment...)
edited : typos

totoharibo
Posts: 4549
Joined: Thu Jan 24, 2013 8:43 am

Re: Optimiser l'OS de la PI

Fri Jun 25, 2021 4:09 pm

@dbrion06
je n'ai pas dit de supprimer X mais de le désactiver.
X consomme pas mal de ressources.
raspi-config suivre le menu :
interface console boot option > Desktop/CLI>B2 console autologin

pour les autres services inutilisés c'est pareil : il y a toujours un truc qui tourne en tâche de fond.

dbrion06
Posts: 478
Joined: Tue May 28, 2019 11:57 am

Re: Optimiser l'OS de la PI

Sat Jun 26, 2021 2:16 pm

@totoharibo:
Je demarre aussi en mode "console", au cas où X(fce) serait cassé par un upgrade malencontreux. (startx donne le bureau tout beau... jusqu'à présent).

Même en entraînant des DNNs (peuvent bouffer de la RAM et des CPUs), je préfère avoir X activé pour des raisons de confort... (je peux aussi travailler/programmer à distance sans X pour des raisons de bande passante: c'est une question de choix personnel, que je ne peux recommander).

Pour info, X fonctionnait plutôt bien dans les années 90 avec 16 M (megas) de RAM et un seul CP.. Si on est confortable avec, pourquoi s'en priver?

Il est primordial de commencer par determiner, dans les conditions les plus confortables possibles -X en fait partie pour moi- quels sont les points bloquants d'un programme (s'il y en a) avant de se mettre à ronger l'OS (do real men tune OSes?). Et si l'OS a des defauts, on peut attendre la prochaine version ou (incl.) acheter plus rapide et moins cher comme matériel..

Mechaick
Posts: 10
Joined: Thu Jun 18, 2020 9:17 am

Re: Optimiser l'OS de la PI

Mon Jun 28, 2021 1:20 pm

Bonjour,

Dans les faits mes programmes marchent plutôt bien. la phase la plus longue est la phase de démarrage et le chargement des librairies python.
Aussi je préférais enlever le plus de processus dans le but d'éviter des bugs dont je ne serais pas la source.

J'ai déjà effectué le profilage de mon code et il tourne assez vite.

Merci pour vos suggestions et conseils

totoharibo
Posts: 4549
Joined: Thu Jan 24, 2013 8:43 am

Re: Optimiser l'OS de la PI

Mon Jun 28, 2021 2:10 pm

" enlever le plus de processus" dont X :lol:

dbrion06
Posts: 478
Joined: Tue May 28, 2019 11:57 am

Re: Optimiser l'OS de la PI

Tue Jun 29, 2021 6:51 am

Une solution nihiliste consisterait ... à desosser complètement la bête (pas de processus, donc pas de risques de bugs/blocages).
Micropython et la carte (invertebrée mais très bien documentée) pico-pi peuvent se prêter admirablement à cette opération, les avantages étant nombreux: la carte est plus petite (et adafruit la miniaturise encore plus), consomme peu (20 mA au lieu de 0.2 A) et coûte pas cher (de plus, elle est en 3v ... comme les RPi). Micropython permet, dans une certaine mesure (son port n'est pas tout à fait fini, me semble-t-il, pour la pico-pi qui est jeune) , de conserver une partie des codes...
Sinon, contrôler l'activation de X au démarrage est trivial : rpi-config le fait à merveille. A noter que monitorer la consommation de x avec top a un biais (l'ecran se rafraichit souvent avec top, d'où action de X: on en déduit que X consomme plus que nécessaire)

Enfin, la probabilité que des services, utilisés par des milliers de personnes aient une bug (je pense davantage à des blocages temporaires -fsync général-) est plus faible que la probabilité de bug de l'oeuvre d'une personne (on ne peut pas tout tester). On peut se protéger, de façon triviale de l'arrivée de nouvelles versions (si l'ancienne donne satisfaction, pourquoi
a) s'en priver et
b) risquer des défauts de jeunesse) en ne mettant jamais à jour....
Mais la solution nihiliste (hors robot très sophistiqué: si on veut aller jusqu'à la reconnaissance d'image, autant investir dans une NVIDIA jetson; le Rpi a du mal ...et pas de marge) reste celle que je préfèrerais...

illydone
Posts: 52
Joined: Fri Jun 26, 2020 6:38 am
Location: Near Strasbourg

Re: Optimiser l'OS de la PI

Thu Jul 08, 2021 7:07 am

La présence d'un paquet installé ou non ne change pas grand chose, comme déjà évoqué, faut surtout virer les process inutiles. Cela étant, faire un système minimal, ce n'est pas si facile et plutôt que désinstaller un OS complet (car raspbian même en version light comporte pas mal de paquets), je partirais de quelque chose de plus dépouillé à la base (dietpi?, arch linux?, ubuntu core?, autre?)... tout en ne perdant pas de vue ce qui a déjà été dit, à savoir que le gain en performances risque de ne pas être énorme.

Return to “Français”