Is it possible to test the performance of a WiFi via the terminal?
Basically, I want to check how good WiFi is in some spaces of my home to figure out where to place a access points.
Can the terminal help me with that in any way?
Is it possible to test the performance of a WiFi via the terminal?
Basically, I want to check how good WiFi is in some spaces of my home to figure out where to place a access points.
Can the terminal help me with that in any way?
You can use the built in airport utility to measure SNR (Signal to Noise Ratio). It's found in
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport
What I do is make a symlink to a directory in my path so I can call it without having to remember that long path:
ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport /usr/local/bin/airport
Assuming that you are connected to a WiFi network, issue the command:
airport -I
to print out information of your current connection.
$ airport -I
agrCtlRSSI: -65
agrExtRSSI: 0
agrCtlNoise: -90
agrExtNoise: 0
state: running
op mode: station
lastTxRate: 243
maxRate: 300
lastAssocStatus: 0
802.11 auth: open
link auth: wpa2-psk
BSSID: 82:2a:a9:45:f3:25
SSID: StackExchange WiFi Demo
MCS: 14
channel: 157,1
To calculate SNR, you take the RSSI value and subtract the Noise value. In this case, I have an RSSI of -65dB and a Noise value of -90dB. Calculated, that gives me 25dB. Which is a very good signal (just barely but I am behind a reinforced concrete wall away from my AP; not bad actually considering.
SNR Guidelines
That said..it's not all down to what your SNR is in a given location, you should also consider things like:
If you have too many WiFi networks competing for the same bandwidth or a combination of too many users or too many bandwidth hogs (everyone watching Netflix 4K on their tablets), this will greatly affect performance beyond what your SNR can tell you.
What I prefer to do is to deploy multiple APs around the house and turn down the transmit power so they don't go very far outside the room I am trying to cover. I personally use these PoE Access Points from Ubiquiti to cover several areas of my home with great success.
airport -I | grep agrCtlRSSI | cut -d ':' -f 2 to get the RSSI value. do the same for the Noise value then subtract. The script isn't too hard, and I encourage you to give it a go...there's nothing like having a small challenge to help you learn to use the Terminal. :-)
– Allan
May 22 '17 at 21:30