Ubuntu 18.04 vs 17.10, re: ChuckPA's speed tests

server-linux

#1

As per https://forums.plex.tv/discussion/319235/ubuntu-18-04-lts-initial-issues-warning#latest

Apparently plexmediaserver on Ubuntu 18.04 experiences slower transmit speeds vs plexmediaserver on Ubuntu 16.04.

However, my plexmediaserver is currently running on Ubuntu 17.10. I'm wondering if the same problem exists on 17.10, and I just didn't realize it? Does anybody know?

Does anybody know how those iperf3 tests were done? I'd be interested in replicating them on my hardware...


#2

On the serving machine: iperf3 -s -p port_number -B adapter-ip-to-bind-to-if-multiple-adapters
On the client (test) machine: iperf3 -c ip.addr.of.server -p port_number -t number_of_samples

The -R option is added to the second pass to test the reverse direction


#3

OK. So I did those tests, with and without the -R option, between two machines, one running Ubuntu 17.10, and one running Ubuntu 18.04, and I got bandwidth results hovering around 935 Mbits/sec both ways, regardless of which was the serving machine for the iperf3 test.

As I understand it, iperf3 is a raw bandwidth test, unrelated to plex. One would also use it with one’s router and everything turned off, to test ISP performance, for example.

So the results you got for 16.04 vs 18.04 would seem to indicate to me, based on my own results, that when you did the test on 18.04, some driver or something else was interfering with the network speed.

At least for me, on my hardware, with these tests, it would suggest that if I upgrade the 17.10 plex server to 18.04, I should expect to continue to see bandwidth results in the 935Mbits/sec range.


#4

If you don’t use the -R option, you’re missing half the results.

The results posted are those obtained by another Ninja and myself. We did not make the post until having considered all avenues. I will also add, he’s an extremely competent engineer and knows networking far better than I ever could.


#5

I used -R. I trust other people’s knowledge and experience to a degree, and also I have to trust my results (which is with a lot of other normal operation going on):

Ubuntu 18.04 machine as iperf3 server

ip 172.22.1.20

adam@troughton:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 18.04 LTS
Release:	18.04
Codename:	bionic
adam@troughton:~$ uname -a
Linux troughton 4.15.0-20-generic #21-Ubuntu SMP Tue Apr 24 06:16:15 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
adam@troughton:~$ iperf3 -s -p 15432 -B 172.22.1.20
-----------------------------------------------------------
Server listening on 15432
-----------------------------------------------------------
Accepted connection from 172.22.1.10, port 45828
[  5] local 172.22.1.20 port 15432 connected to 172.22.1.10 port 45830
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  5]   0.00-1.00   sec   109 MBytes   918 Mbits/sec    0    526 KBytes       
[  5]   1.00-2.00   sec   111 MBytes   933 Mbits/sec    0    526 KBytes       
[  5]   2.00-3.00   sec   111 MBytes   933 Mbits/sec    0    551 KBytes       
[  5]   3.00-4.00   sec   111 MBytes   930 Mbits/sec    0    551 KBytes       
[  5]   4.00-5.00   sec   112 MBytes   936 Mbits/sec    0    580 KBytes       
[  5]   5.00-6.00   sec   111 MBytes   933 Mbits/sec    0    580 KBytes       
[  5]   6.00-7.00   sec   111 MBytes   931 Mbits/sec    0    580 KBytes       
[  5]   7.00-8.00   sec   112 MBytes   942 Mbits/sec    0    580 KBytes       
[  5]   8.00-9.00   sec   111 MBytes   930 Mbits/sec    0    580 KBytes       
[  5]   9.00-10.00  sec   111 MBytes   934 Mbits/sec    0    580 KBytes       
[  5]  10.00-10.04  sec  4.72 MBytes   903 Mbits/sec    0    580 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  5]   0.00-10.04  sec  1.09 GBytes   932 Mbits/sec    0             sender
[  5]   0.00-10.04  sec  0.00 Bytes  0.00 bits/sec                  receiver
-----------------------------------------------------------

Ubuntu 17.10 machine as iperf3 client

adam@hartnell:~$ iperf3 -c 172.22.1.20 -p 15432 -t 10 -R
Connecting to host 172.22.1.20, port 15432
Reverse mode, remote host 172.22.1.20 is sending
[  4] local 172.22.1.10 port 45830 connected to 172.22.1.20 port 15432
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.00   sec   111 MBytes   934 Mbits/sec                  
[  4]   1.00-2.00   sec   111 MBytes   934 Mbits/sec                  
[  4]   2.00-3.00   sec   111 MBytes   934 Mbits/sec                  
[  4]   3.00-4.00   sec   111 MBytes   928 Mbits/sec                  
[  4]   4.00-5.00   sec   111 MBytes   935 Mbits/sec                  
[  4]   5.00-6.00   sec   111 MBytes   934 Mbits/sec                  
[  4]   6.00-7.00   sec   111 MBytes   934 Mbits/sec                  
[  4]   7.00-8.00   sec   111 MBytes   934 Mbits/sec                  
[  4]   8.00-9.00   sec   111 MBytes   934 Mbits/sec                  
[  4]   9.00-10.00  sec   111 MBytes   934 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  1.09 GBytes   936 Mbits/sec    0             sender
[  4]   0.00-10.00  sec  1.09 GBytes   934 Mbits/sec                  receiver

iperf Done.

Ubuntu 17.10 machine as iperf3 server

ip 172.22.1.10

adam@hartnell:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 17.10
Release:	17.10
Codename:	artful
adam@hartnell:~$ uname -a
Linux hartnell 4.13.0-41-generic #46-Ubuntu SMP Wed May 2 13:38:30 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
adam@hartnell:~$ iperf3 -s -p 15432 -B 172.22.1.10
-----------------------------------------------------------
Server listening on 15432
-----------------------------------------------------------
Accepted connection from 172.22.1.20, port 34554
[  5] local 172.22.1.10 port 15432 connected to 172.22.1.20 port 34556
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  5]   0.00-1.00   sec   108 MBytes   905 Mbits/sec    0    389 KBytes       
[  5]   1.00-2.00   sec   110 MBytes   922 Mbits/sec    0    389 KBytes       
[  5]   2.00-3.00   sec   106 MBytes   888 Mbits/sec    0    389 KBytes       
[  5]   3.00-4.00   sec   107 MBytes   901 Mbits/sec    0    389 KBytes       
[  5]   4.00-5.00   sec   100 MBytes   839 Mbits/sec    0    410 KBytes       
[  5]   5.00-6.00   sec   109 MBytes   912 Mbits/sec    0    437 KBytes       
[  5]   6.00-7.00   sec   108 MBytes   905 Mbits/sec   27    352 KBytes       
[  5]   7.00-8.00   sec   106 MBytes   890 Mbits/sec    0    382 KBytes       
[  5]   8.00-9.00   sec   109 MBytes   911 Mbits/sec    0    433 KBytes       
[  5]   9.00-10.00  sec   110 MBytes   920 Mbits/sec    0    433 KBytes       
[  5]  10.00-10.04  sec  3.54 MBytes   808 Mbits/sec    0    433 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  5]   0.00-10.04  sec  1.05 GBytes   899 Mbits/sec   27             sender
[  5]   0.00-10.04  sec  0.00 Bytes  0.00 bits/sec                  receiver
-----------------------------------------------------------

Ubuntu 18.04 machine as iperf3 client

adam@troughton:~$ iperf3 -c 172.22.1.10 -p 15432 -t 10 -R
Connecting to host 172.22.1.10, port 15432
Reverse mode, remote host 172.22.1.10 is sending
[  4] local 172.22.1.20 port 34556 connected to 172.22.1.10 port 15432
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.00   sec   110 MBytes   923 Mbits/sec                  
[  4]   1.00-2.00   sec   110 MBytes   922 Mbits/sec                  
[  4]   2.00-3.00   sec   106 MBytes   891 Mbits/sec                  
[  4]   3.00-4.00   sec   107 MBytes   896 Mbits/sec                  
[  4]   4.00-5.00   sec  99.8 MBytes   837 Mbits/sec                  
[  4]   5.00-6.00   sec   109 MBytes   913 Mbits/sec                  
[  4]   6.00-7.00   sec   108 MBytes   905 Mbits/sec                  
[  4]   7.00-8.00   sec   106 MBytes   892 Mbits/sec                  
[  4]   8.00-9.00   sec   109 MBytes   914 Mbits/sec                  
[  4]   9.00-10.00  sec   109 MBytes   914 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  1.05 GBytes   902 Mbits/sec   27             sender
[  4]   0.00-10.00  sec  1.05 GBytes   901 Mbits/sec                  receiver

iperf Done.

shrug … maybe Ubuntu updated something since you did your tests.


#6

Very possible. I’ve asked for better eyes than mine to jump in. We will get to the bottom of it. It might be something as stupid as hardware and a faulty driver somewhere <shrug> but he’ll know better.


#7

Problems are seen with the following controller on 18.04 LTS but not 16.04.4 LTS:

Ethernet controller: Intel Corporation Ethernet Connection (2) I219-LM (rev 31)

Its a regression for the time being with the kernel drivers. 18.04 LTS with the following controller is perfectly fine.

Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)

#8

@piontek What Ethernet controller are your running?


#9

I don’t see anything troubling…?

Win10 has a Gigabyte H270m mainboard with KabyLake and onboard Intel NIC.
18.04LTS has a Gigabyte H370m mainboard with CoffeeLake and onboard Intel NIC.

Server: 18.04LTS PlexServer

##Client: Win10 using Ubuntu for Windows 18.04 bash linux binary as client:
iperf3 -c 192.168.1.155 -t 10
Connecting to host 192.168.1.155, port 5201
[ 4] local 192.168.1.136 port 64590 connected to 192.168.1.155 port 5201
iperf3: getsockopt - Protocol not available
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.00 sec 110 MBytes 924 Mbits/sec 1296506930 0.00 Bytes
iperf3: getsockopt - Protocol not available
[ 4] 1.00-2.00 sec 111 MBytes 928 Mbits/sec 0 0.00 Bytes
iperf3: getsockopt - Protocol not available
[ 4] 2.00-3.00 sec 112 MBytes 944 Mbits/sec 0 0.00 Bytes
iperf3: getsockopt - Protocol not available
[ 4] 3.00-4.00 sec 110 MBytes 919 Mbits/sec 0 0.00 Bytes
iperf3: getsockopt - Protocol not available
[ 4] 4.00-5.00 sec 111 MBytes 930 Mbits/sec 0 0.00 Bytes
iperf3: getsockopt - Protocol not available
[ 4] 5.00-6.00 sec 113 MBytes 944 Mbits/sec 0 0.00 Bytes
iperf3: getsockopt - Protocol not available
[ 4] 6.00-7.00 sec 109 MBytes 914 Mbits/sec 0 0.00 Bytes
iperf3: getsockopt - Protocol not available
[ 4] 7.00-8.00 sec 111 MBytes 928 Mbits/sec 0 0.00 Bytes
iperf3: getsockopt - Protocol not available
[ 4] 8.00-9.00 sec 112 MBytes 941 Mbits/sec 0 0.00 Bytes
iperf3: getsockopt - Protocol not available
[ 4] 9.00-10.00 sec 110 MBytes 927 Mbits/sec 2998460366 0.00 Bytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.00 sec 1.08 GBytes 930 Mbits/sec 0 sender
[ 4] 0.00-10.00 sec 1.08 GBytes 930 Mbits/sec receiver

iperf3 -c 192.168.1.155 -t 10 -R
Connecting to host 192.168.1.155, port 5201
Reverse mode, remote host 192.168.1.155 is sending
[  4] local 192.168.1.136 port 64587 connected to 192.168.1.155 port 5201
iperf3: getsockopt - Protocol not available
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.00   sec   112 MBytes   943 Mbits/sec
iperf3: getsockopt - Protocol not available
[  4]   1.00-2.00   sec   112 MBytes   940 Mbits/sec
iperf3: getsockopt - Protocol not available
[  4]   2.00-3.00   sec   112 MBytes   940 Mbits/sec
iperf3: getsockopt - Protocol not available
[  4]   3.00-4.00   sec   112 MBytes   940 Mbits/sec
iperf3: getsockopt - Protocol not available
[  4]   4.00-5.00   sec   112 MBytes   941 Mbits/sec
iperf3: getsockopt - Protocol not available
[  4]   5.00-6.00   sec   112 MBytes   940 Mbits/sec
iperf3: getsockopt - Protocol not available
[  4]   6.00-7.00   sec   112 MBytes   941 Mbits/sec
iperf3: getsockopt - Protocol not available
[  4]   7.00-8.00   sec   112 MBytes   941 Mbits/sec
iperf3: getsockopt - Protocol not available
[  4]   8.00-9.00   sec   112 MBytes   941 Mbits/sec
iperf3: getsockopt - Protocol not available
[  4]   9.00-10.00  sec   112 MBytes   939 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  1.10 GBytes   942 Mbits/sec    0             sender
[  4]   0.00-10.00  sec  1.10 GBytes   941 Mbits/sec                  receiver

Server: 18.04LTS PlexServer

Client: Windows10 cmd prompt / Win10 binary as client:

iperf3 -c 192.168.1.155 -t 10
Connecting to host 192.168.1.155, port 5201
[  4] local 192.168.1.136 port 64632 connected to 192.168.1.155 port 5201
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.00   sec   112 MBytes   939 Mbits/sec
[  4]   1.00-2.00   sec   111 MBytes   931 Mbits/sec
[  4]   2.00-3.00   sec   113 MBytes   944 Mbits/sec
[  4]   3.00-4.00   sec   112 MBytes   944 Mbits/sec
[  4]   4.00-5.00   sec   112 MBytes   944 Mbits/sec
[  4]   5.00-6.00   sec   112 MBytes   943 Mbits/sec
[  4]   6.00-7.00   sec   112 MBytes   942 Mbits/sec
[  4]   7.00-8.00   sec   112 MBytes   937 Mbits/sec
[  4]   8.00-9.00   sec   112 MBytes   943 Mbits/sec
[  4]   9.00-10.00  sec   112 MBytes   938 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-10.00  sec  1.09 GBytes   940 Mbits/sec                  sender
[  4]   0.00-10.00  sec  1.09 GBytes   940 Mbits/sec                  receiver

iperf3 -c 192.168.1.155 -t 10 -R
Connecting to host 192.168.1.155, port 5201
Reverse mode, remote host 192.168.1.155 is sending
[  4] local 192.168.1.136 port 64644 connected to 192.168.1.155 port 5201
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.00   sec   112 MBytes   943 Mbits/sec
[  4]   1.00-2.00   sec   112 MBytes   941 Mbits/sec
[  4]   2.00-3.00   sec   112 MBytes   940 Mbits/sec
[  4]   3.00-4.00   sec   112 MBytes   941 Mbits/sec
[  4]   4.00-5.00   sec   112 MBytes   940 Mbits/sec
[  4]   5.00-6.00   sec   112 MBytes   941 Mbits/sec
[  4]   6.00-7.00   sec   112 MBytes   940 Mbits/sec
[  4]   7.00-8.00   sec   112 MBytes   942 Mbits/sec
[  4]   8.00-9.00   sec   112 MBytes   942 Mbits/sec
[  4]   9.00-10.00  sec   112 MBytes   937 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  1.10 GBytes   942 Mbits/sec    0             sender
[  4]   0.00-10.00  sec  1.10 GBytes   941 Mbits/sec                  receiver

#10

@Curun I’m no expert on Windows’ linux abilities, but I think if the issue is a kernel driver in Ubuntu 18.04, you wouldn’t see the problem on Windows as it’s really using the Windows kernel & drivers behind the scenes?

@Achilles thanks, that’s helpful. I’m doing link bonding & bridging on both machines, but the underlying network adapters are:

Ubuntu 18.04 machine

00:19.0 Ethernet controller: Intel Corporation Ethernet Connection I217-V (rev 05)
	Subsystem: ASUSTeK Computer Inc. Ethernet Connection I217-V
	Kernel driver in use: e1000e
	Kernel modules: e1000e
02:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection
	Subsystem: Intel Corporation Gigabit CT Desktop Adapter
	Kernel driver in use: e1000e
	Kernel modules: e1000e

Ubuntu 17.10 machine

00:19.0 Ethernet controller: Intel Corporation Ethernet Connection I217-LM (rev 05)
	Subsystem: Tyan Computer Ethernet Connection I217-LM
	Kernel driver in use: e1000e
	Kernel modules: e1000e
02:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)
	Kernel driver in use: igb
	Kernel modules: igb

Are there any bug reports out there about this regression issue re: the I219-LM controller? I can’t find them. I’m hoping my plex server won’t be affected if I upgrade to 18.04 since it’s I217, and so’s my other, already-upgraded server. But since the not-yet-upgraded server is also “-LM” I wonder if that’s the relevant part…


#11

@apiontek said:
just tweaked my post for clarity?
Using 18.04LTS as my server… I thought that was supposed issue, 18.04LTS as server?


#12

@Curun – my bad, I misread your post. Per Achilles, the problem originally noted by ChuckPA at https://forums.plex.tv/discussion/319235/ubuntu-18-04-lts-initial-issues-warning seems to be tied to a specific ethernet controller – what controller is in your 18.04LTS PlexServer? (I got mine with lspci | awk '/[Nn]et/ {print $1}' | xargs -i% lspci -ks %)


#13

I have updated the forum announcement to reflect Achilles’ detailed information.

If anyone see’s an update come out, please let us know and we’ll update as well here


#14

@apiontek said:
@Curun – my bad, I misread your post. Per Achilles, the problem originally noted by ChuckPA at https://forums.plex.tv/discussion/319235/ubuntu-18-04-lts-initial-issues-warning seems to be tied to a specific ethernet controller – what controller is in your 18.04LTS PlexServer? (I got mine with lspci | awk '/[Nn]et/ {print $1}' | xargs -i% lspci -ks %)
attached

    lspci | awk '/[Nn]et/ {print $1}' | xargs -i% lspci -ks %
    00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (7) I219-V (rev 10)
    	Subsystem: Gigabyte Technology Co., Ltd Ethernet Connection (7) I219-V
    	Kernel driver in use: e1000e
    	Kernel modules: e1000e

#15

There is something going on within the Skull Canyon NUC. Trying different USB 3.0 ethernet adapters yields the same results.


#16

Fascinating! OK, something specific to that NUC. From my results & @Curun 's results, seems like I’m safe to upgrade. Can’t do it ASAP but when I do I’ll re-test & update if I do enounter any problems.

Thanks for the further research & input!


#17

Found the culprit.
https://www.spinics.net/lists/stable/msg200942.html
On a Skull Canyon with a I219-LM starting with 4.14 kernel, TCP performance can be impacted.


#18

I dropped the kernel to 4.13.16 on 18.04 LTS and the poor transmit performance was no longer observed. In order to use the current kernel 4.15.0 in 18.04 LTS, I had to issue these two commands to restore TCP performance with 18.04 LTS:

sudo ethtool -K eno1 tso off
sudo ethtool -K eno1 gso off