Pourquoi vaut-il la peine d'installer un système d'exploitation 64 bits sur le Raspberry Pi4

image

L'un des avantages de travailler pour une société de logiciels est que vous avez souvent la possibilité de tester de nouveaux prototypes de matériel. Cependant, pas dans ce cas - j'ai acheté un Raspberry Pi4 car il est très bon marché!

Le Raspberry Pi4 possède un ARM Cortex A72 quadricœur, jusqu'à 4 Go de mémoire et un port Ethernet gigabit - le tout pour seulement 35 $.

Sur Raspberry Pi4 ont OS Raspbian (basé sur Debian), et la bibliothèque de produits finis, donc je l'ai mis dans la carte SD pour démarrer plus rapidement. J'ai recherché syslog et j'ai remarqué que le noyau et tous les programmes utilisateur étaient compilés en armv7 - c'est-à-dire pour la mémoire 32 bits.

Je sais que Raspberry Pi4 prend en charge 64 bits, donc je ne voulais pas y exécuter de système d'exploitation 32 bits. J'ai pris une autre carte mémoire et j'ai mis Debian dessus. Debian, ne contenant rien de superflu, compilé en aarch64 - ce qui signifie de la mémoire 64 bits.

Après avoir téléchargé le système d'exploitation 64 bits, je me suis intéressé à la façon dont il fonctionne mieux en 32 bits, j'ai donc effectué plusieurs tests.

Tests de vitesse synthétiques


La première chose qui m'est venue à l'esprit était l'ancien test de la dhrystone, qui existe depuis la nuit des temps. Ce programme a été écrit en 1988, et il traite des calculs mathématiques. Il est peu probable qu'il soit capable de simuler la charge actuelle, et nous ne pouvons l'utiliser que pour maintenir une sorte de connectivité avec les anciens matériels et programmes.



Une application de résumé moderne est mieux simulée par le calcul des hachages, j'ai donc voulu exécuter un test avec SHA1. Malheureusement, l'utilitaire sha1sum a été compilé sans prise en charge des fonctions libssl ou du noyau cryptographique, j'ai donc dû le compiler à partir de la source.

Pour éviter les goulots d'étranglement dans les E / S, je calcule un hachage d'un fichier de 2 Go avec l'option truncate -s 2 Go, il n'y a donc pas d'entrée ou de sortie de la carte:



SHA1 est un test plus réaliste que la dhrystone, car cet algorithme est utilisé dans un grand nombre d'applications - torrents, git, etc.

RAM


Un système 64 bits donne accès à une mémoire de 8 octets par lecture / écriture. J'ai écrit un programme simple qui place un grand tampon - elle l'écrit, puis le lit. Pour garantir une réelle allocation de mémoire, j'ai utilisé mlock (). Dans ce test, le volume de la mémoire tampon est de 2 Go: la mémoire tampon de 3 Go a fonctionné en mode 64 bits et en mode 32 bits, elle a généré une erreur de «mémoire insuffisante».



Encodage audio


J'ai remarqué que de nombreux utilisateurs de Raspberry Pi4 utilisent un ordinateur comme centre multimédia, j'ai donc commencé la tâche d'encodage audio avec les deux codecs les plus populaires.

J'ai encodé la composition "Echoes" de Pink Floyd car c'est une piste assez longue et vous pouvez en obtenir des valeurs mesurées. Pour éviter les retards d'E / S, les fichiers source et de destination ont été stockés sur ramfs:





Mesures de vitesse du réseau


Une autre option pour utiliser Raspberry Pi4 est comme VPN ou pare-feu. Je ne recommande pas d'utiliser de tels systèmes à de telles fins, mais beaucoup de gens ont toujours une connexion Internet lente (moins de 100 Mo), donc ils peuvent ne pas prêter attention au fonctionnement lent du Raspberry Pi4.

Première question: combien de trafic le Raspberry Pi4 peut-il gérer? Nous devons mesurer la puissance réseau nette de l'ordinateur, sans les limitations des interfaces physiques, j'ai donc commencé la session iperf3 entre les deux conteneurs. Cependant, les conteneurs échangent des données via une paire de veths, et veth accélère le trafic via de faux déchargements.

Le déchargement du calcul de la somme de contrôle IP se fait simplement en refusant de le compter, et le déchargement de la segmentation TCP en refusant de segmenter et de réassembler le trafic: un gros morceau de données de 64K est simplement transféré en mémoire tel quel.

Pour éviter de tels moments, j'ai interdit le déchargement avec la commande

ethtool -K veth0 tx off rx off tso off gro off gso off



Pare-feu


L'équipement réseau le plus rapide est capable de - supprimer une partie du trafic, et le moyen le plus rapide de le faire est de passer par la règle TC. Afin de ne pas atteindre la vitesse maximale possible, j'ai utilisé la taille de trame Ethernet minimale, 64b.



Bien que les deux systèmes n'aient pas atteint la vitesse de transfert maximale (1,5 Mb / s), le cœur 64 bits a montré une vitesse légèrement supérieure à celle du 32 bits. Si vous souhaitez utiliser Raspberry Pi4 comme pare-feu, assurez-vous d'utiliser le noyau 64 bits.

VPN


Un autre cas d'utilisation courant pour Raspberry Pi4 est un serveur VPN, ou plutôt OpenVPN. Je préfère WireGuard, j'ai donc vérifié les deux programmes car ils sont tous les deux faciles à installer:



comme prévu, OpenVPN est 10 fois plus lent que WireGuard. Ce qui n'était pas attendu, c'est qu'OpenVPN fonctionne à la même vitesse à 32 et 64 bps. WireGuard sature presque le port gigabit dans les deux cas - nous avons peut-être atteint la limite NIC.

Pour savoir si WireGuard pouvait fonctionner encore plus rapidement, j'ai effectué un autre test avec deux conteneurs qui n'utilisaient pas Ethernet physique. Le seul problème était que le client et le serveur iperf3 fonctionnaient sur le Raspberry Pi4, chargeant deux cœurs.



Comme prévu, OpenVPN et WireGuard 32 bits, limités par le processeur, ont fait moins bien et WireGuard 64 bits a fait mieux.

Conclusions


Je lis souvent des déclarations comme «ça n'en vaut pas la peine», «vous gagnerez quelques millisecondes», etc., tout simplement parce que le Raspberry Pi4 n'est pas un ordinateur très puissant. Ce n'est pas vrai! Comme toute personne impliquée dans l'équipement embarqué le sait, l'optimisation logicielle du matériel lent est encore plus importante que du matériel rapide.

Je savais déjà qu'un système d'exploitation 64 bits fonctionnerait mieux sur le Raspberry Pi4, mais je ne savais pas combien mieux. J'ai donc fait tous ces tests. J'espère que tu as aimé!

All Articles