I have a laptop which is my primary work station, and an under desk server for running my z/OS system on top of the same Linux.
Running “apt update” on the laptop was always faster on the laptop compared to the server. Was this because all traffic for the server was going through my laptop? How do I tell?
The boxes are connected with an Ethernet cable, I had to purchase a wireless dongle for my server, my laptop has a built in wireless adapter.
The linux ifconfig or the ip command gives information about the configuration. For example ip a
eno1: flags=4163 mtu 1500 inet 10.1.0.3 netmask 255.255.255.0 broadcast 10.1.0.255 inet6 fe80::.... prefixlen 64 scopeid 0x20 ether 00:... txqueuelen 1000 (Ethernet) RX packets 5136 bytes 1445665 (1.4 MB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 4933 bytes 1692274 (1.6 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 device interrupt 17 memory 0xb1200000-b1220000 ... wlxd037450ab7ac: flags=4163 mtu 1500 inet 192.... netmask 255.255.255.0 broadcast 192.... inet6 2a00:... prefixlen 64 scopeid 0x0 inet6 fe80::... prefixlen 64 scopeid 0x20 inet6 2a00:... prefixlen 64 scopeid 0x0 ether d0:... txqueuelen 1000 (Ethernet) RX packets 42427 bytes 60919847 (60.9 MB) RX errors 0 dropped 1 overruns 0 frame 0 TX packets 25996 bytes 2397812 (2.3 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- The EtherNet connection eno1 has received 5136 packets and 1.4 MB of data
- The WireLess connection wlx037450ab7ac has received 42427 packets and 60.9 MB of data.
As I had just done an apt upgrade, the wireless had all of the traffic to download the files, so the traffic was not coming through my laptop.
Once the system was updated, the only traffic flowing was down the Ethernet cable as I used the server from my laptop.
A ping from each system gave a similar response time.
traceroute shows you the hops to the destination.
To specify the interface you need to run as a superuser.
sudo traceroute abc.xyz.com -i wlxd037450ab7ac
1 bthub.home (192....) 4.654 ms 38.438 ms 38.425 ms
2 * * *
3 * * *
4 18.104.22.168 (22.214.171.124) 75.897 ms 75.890 ms 75.861 ms
If you are not running as a superuser you will get:
setsockopt SO_BINDTODEVICE: Operation not permitted
What else is there to help me?
On z/OS the netstat command gives a lot of information about the session, for example the send window size, the receive windows size etc. This information tends not to be available on other platforms.
On linux there is the ss (Socket Statistics) command.
Example output from ss -t -i included
- ESTAB 0 0 192.168.1.223:58212 126.96.36.199:
- cubic the congestion algorithm name, the default congestion algorithm is “cubic”
- wscale:9,7 if window scale option is used, this field shows the send scale factor and receive scale factor
- ato:40 mss:1452
- cwnd:10 congestion window size
- send 4.0Mbps number of bits sent/time of send.
- lastsnd:376 how long time since the last packet sent, the unit is millisecond
- lastrcv:348 how long time since the last packet received, the unit is millisecond
- lastack:348 how long time since the last packet acknowledged, the unit is millisecond
- pacing_rate 7.9Mbps
- delivery_rate 2.6Mbps
- app_limited busy:3700ms
I did not find most of this information very useful. It is all to easy for a developer(I have done it myself) to provide statistics from information which is readily available, rather than ask what information would be useful to debug problems – then collect and publish that information.