Résolution d'un problème de performance sur un réseau Unifi
Voici la résolution d'un problème dont la solution n'était pas la plus complexe, mais dont le cheminement et l'analyse pourraient servir à d'autres.
Depuis quelques jours, les copies à travers le réseau basé sur du matériel Ubiquiti, installé ici, étaient d'une lenteur épouvantable. La lecture depuis le NAS s'effectuait aussi sans problème particulier, mais l'écriture était poussive, voir extrêmement désagréable dès que les fichiers étaient un peu volumineux.
Après avoir brièvement accuser le NAS Synology et l'incapacité de macOS à gérer correctement SMB, habituellement fautifs dans ce genre de situation, nous nous sommes tournés vers d'autres potentiels responsables.
Dans le même temps, nous avons commencé à remarquer que la connexion internet avait un comportement bizarre. Lors des mises à jour de macOS pour tenter de corriger le soucis, le débit était pratiquement au maximum de ce que peut nous offrir le débit fibre Free Pro. A 100Mo/s, les mises a jour s'étaient téléchargées en quelques dizaines de secondes seulement. Cependant l'upload des sauvegardes, plus discrètes, ou le partage des données avec les clients semblaient prendre une éternité.
Pour confirmer cela, nous réalisons un petit test rapide. Depuis l'interface de l'UDM Pro, nous demandons un Speed Test dont le résultat 920 Mbps en téléchargement, et 935 Mbps en téléversement. Un résultat très satisfaisant, finalement assez proche des maximums annoncés par l'opérateur.
Pour comparer, je réalise le même temps à partir d'un Mac situé dans le réseau local. Nous avons obtenu 893 Mbps en téléchargement, un score très honorable, et peu symptomatique, tandis qu'en téléversement, le résultat fut bien moins glorieux, et preuve d'un problème, avec un pic à 15 Mbps.
Le soucis est désormais bien prouvé, il n'y a plus qu'à trouver l'élément fautif pour corriger. Le Speed Test étant un moyen efficace de trouver le problème, mais limité aux tests de bande passante internet, il nous trouver un moyen de réaliser les mêmes contrôles en local.
Pour cela, nous installons l'application iperf via Homebrew sur deux Mac du réseau, tout deux branchés sur le même switch Ubiquiti, lui même connecté à l'UDM Pro via un port SFP+.
------------------------------------------------------------
Client connecting to design.local, TCP port 5001
TCP window size: 128 KByte (default)
------------------------------------------------------------
[ 1] local 192.168.1.42 port 50055 connected with 192.168.1.47 port 5001
[ ID] Interval Transfer Bandwidth
[ 1] 0.00-10.01 sec 1.09 GBytes 933 Mbits/sec
Le résultat n'est pas celui attendu, puisqu'entre les deux Macs, donc un en envoi, et le second en réception, le débit est de 933 Mbits/sec.
Nous continuons notre investigation en installant iperf sur l'UDM Pro. C'est extrêmement pratique de pouvoir y accéder en root et de pouvoir installer ce que l'on veut, avec parcimonie, bien sur, puisque l'espace disque est restreint.
------------------------------------------------------------
Client connecting to udm, TCP port 5001
TCP window size: 128 KByte (default)
------------------------------------------------------------
[ 1] local 192.168.1.42 port 50098 connected with 192.168.1.254 port 5001
[ ID] Interval Transfer Bandwidth
[ 1] 0.00-10.01 sec 114 MBytes 95.4 Mbits/sec
Ici, nous voyons enfin un problème dans le réseau. Le score de 95.4 Mbits/sec est bien trop faible pour du réseau local.
Tous les indices nous mènent vers la connexion SFP+ entre les deux devices Ubiquiti, à savoir l'UDM Pro, et le switch. Ne pouvant déconnecter, virtuellement et à distance, le port en question, sur l'un ou sur l'autre, sans perdre la connexion depuis notre Mac, la solution est donc de redémarrer les appareils. Au redémarrage, notre Mac reviendrait dans le réseau automatiquement.
Nous commençons par redémarrer le Switch, car il s'agit de l'appareil le moins critique des deux. Et au reboot, nous relançons le test
------------------------------------------------------------
Client connecting to udm, TCP port 5001
TCP window size: 128 KByte (default)
------------------------------------------------------------
[ 1] local 192.168.1.42 port 50218 connected with 192.168.1.254 port 5001
[ ID] Interval Transfer Bandwidth
[ 1] 0.00-10.01 sec 1.07 GBytes 915 Mbits/sec
avec un résultat, tout à fait acceptable de nouveau. Inutile de redémarrer l'UDM Pro, évidemment.
Comme indiqué en introduction, la résolution du problème n'était pas très complexe, puisqu'il ne s'agissait que de redémarrer un appareil. Nous aurions pu résoudre le problème, par hasard, en redémarrant tous les appareils, mais sans jamais vraiment savoir ce qu'il s'était passé.
Et à propos de iperf, nous vous parlerons certainement un jour de cette petite application très utile, dans un article dédié.

