Skip to content

Commit 17895bd

Browse files
authored
Merge pull request #7418 from ovh/YC-SK1733-BM-network-card-troubleshoot
[SK-1733] Proxmox + Broadcom BCM57502: explain how to fix slow downloads
2 parents 0f53e38 + 7fedc13 commit 17895bd

File tree

17 files changed

+2148
-0
lines changed

17 files changed

+2148
-0
lines changed
Lines changed: 143 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
---
2+
title: 'Network - Fixing slow downloads problems inside containers and VMs running on Proxmox VE servers with Broadcom BCM57502 NICs'
3+
excerpt: 'Find out how to fix slow downloads problems inside containers and virtual machines running on Proxmox VE servers with a Broadcom BCM57502 network interface controller by disabling the generic-receive-offload parameter'
4+
updated: 2025-01-16
5+
---
6+
7+
## Objective
8+
9+
Some Dedicated Servers equipped with Broadcom BCM57502 NICs may experience really slow (as low as 255 kb/s) download speeds inside VMs or containers running on Proxmox VE (Virtual Environment).
10+
11+
**Find out how to fix slow downloads problems inside containers and VMs running on Proxmox VE with a Broadcom BCM57502 network interface controller by disabling the `generic-receive-offload` parameter.**
12+
13+
## Requirements
14+
15+
The issue is known to occur on bare metal servers of the ADVANCE ranges running Proxmox VE.
16+
Only servers equipped with a Broadcom BCM57502 network interface controller are affected.
17+
18+
## Instructions
19+
20+
### Step 1 - Identifying your network interface controller
21+
22+
SSH into the server and run the following command which lists all PCI devices of class 200 (Ethernet controllers):
23+
24+
```sh
25+
lspci -nnd ::200
26+
```
27+
28+
If the output shows devices with PCI ID `14e4:1752`, your server is affected. Example output:
29+
30+
```text
31+
02:00.0 Ethernet controller [0200]: Broadcom Inc. and subsidiaries BCM57502 NetXtreme-E 10Gb/25Gb/40Gb/50Gb Ethernet [14e4:1752] (rev 12)
32+
02:00.1 Ethernet controller [0200]: Broadcom Inc. and subsidiaries BCM57502 NetXtreme-E 10Gb/25Gb/40Gb/50Gb Ethernet [14e4:1752] (rev 12)
33+
```
34+
35+
### Step 2 - Obtaining the network interface names
36+
37+
List network interfaces with:
38+
39+
```sh
40+
ip -brief link show
41+
```
42+
43+
Example output:
44+
45+
```text
46+
lo UNKNOWN 00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP>
47+
enp2s0f0np0 UP 9c:6b:00:12:34:56 <BROADCAST,MULTICAST,UP,LOWER_UP>
48+
enp2s0f1np1 DOWN 9c:6b:00:12:34:57 <BROADCAST,MULTICAST>
49+
vmbr0 UP 9c:6b:00:12:34:56 <BROADCAST,MULTICAST,UP,LOWER_UP>
50+
```
51+
52+
To find the interfaces that correspond to the Broadcom controllers shown by `lspci`, you can run:
53+
54+
```sh
55+
ethtool -i enp2s0f0np0
56+
```
57+
58+
Example output:
59+
60+
```txt
61+
driver: bnxt_en
62+
version: 6.8.12-5-pve
63+
firmware-version: 229.0.121.0/pkg N/A
64+
expansion-rom-version:
65+
bus-info: 0000:02:00.0
66+
supports-statistics: yes
67+
supports-test: yes
68+
supports-eeprom-access: yes
69+
supports-register-dump: yes
70+
supports-priv-flags: no
71+
```
72+
73+
The `bus-info` line matches the PCI address (`02:00.0` shown by `lspci`).
74+
75+
### Step 3 - Disabling the `generic-receive-offload` parameter
76+
77+
You can now check the status of the `generic-receive-offload` parameter with the following command:
78+
79+
```sh
80+
ethtool --show-offload enp2s0f0np0 | grep generic-receive-offload:
81+
```
82+
83+
Example output:
84+
85+
```text
86+
generic-receive-offload: on
87+
```
88+
89+
The slow downloads issue can be fixed by disabling `generic-receive-offload` with the following command:
90+
91+
```sh
92+
ethtool --offload enp2s0f0np0 generic-receive-offload off
93+
```
94+
95+
Example output:
96+
97+
```text
98+
Actual changes:
99+
rx-gro: off
100+
rx-gro-hw: off [not requested]
101+
```
102+
103+
### Step 4 - Persisting the change across reboots
104+
105+
In order to persist the change after the next reboot, the `ethtool` command may be added to the appropriate interfaces in `/etc/network/interfaces` as an `up` command.
106+
107+
For instance:
108+
109+
```text
110+
auto lo
111+
iface lo inet loopback
112+
113+
iface enp2s0f0np0 inet manual
114+
up ethtool --offload $IFACE generic-receive-offload off
115+
116+
auto vmbr0
117+
iface vmbr0 inet static
118+
address <IPV4>/32
119+
gateway 100.64.0.1
120+
bridge-ports enp2s0f0np0
121+
bridge-stp off
122+
bridge-fd 0
123+
hwaddress 9C:6B:00:12:34:56
124+
125+
iface vmbr0 inet6 static
126+
address <IPV6>/56
127+
gateway fe80::1
128+
```
129+
130+
> [!primary]
131+
> The `$IFACE` placeholder will be replaced by the interface name on execution. You do not need to replace it with the actual interface name.
132+
>
133+
> Setting the `generic-receive-offload` parameter on the `vmbr0` bridge has no effect, the change must be applied to the physical interfaces.
134+
135+
You can now restart the networking service to apply the configuration:
136+
137+
```sh
138+
systemctl restart networking.service
139+
```
140+
141+
## Go further
142+
143+
Join our [community of users](/links/community).
Lines changed: 143 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
---
2+
title: 'Network - Fixing slow downloads problems inside containers and VMs running on Proxmox VE servers with Broadcom BCM57502 NICs'
3+
excerpt: 'Find out how to fix slow downloads problems inside containers and virtual machines running on Proxmox VE servers with a Broadcom BCM57502 network interface controller by disabling the generic-receive-offload parameter'
4+
updated: 2025-01-16
5+
---
6+
7+
## Objective
8+
9+
Some Dedicated Servers equipped with Broadcom BCM57502 NICs may experience really slow (as low as 255 kb/s) download speeds inside VMs or containers running on Proxmox VE (Virtual Environment).
10+
11+
**Find out how to fix slow downloads problems inside containers and VMs running on Proxmox VE with a Broadcom BCM57502 network interface controller by disabling the `generic-receive-offload` parameter.**
12+
13+
## Requirements
14+
15+
The issue is known to occur on bare metal servers of the ADVANCE ranges running Proxmox VE.
16+
Only servers equipped with a Broadcom BCM57502 network interface controller are affected.
17+
18+
## Instructions
19+
20+
### Step 1 - Identifying your network interface controller
21+
22+
SSH into the server and run the following command which lists all PCI devices of class 200 (Ethernet controllers):
23+
24+
```sh
25+
lspci -nnd ::200
26+
```
27+
28+
If the output shows devices with PCI ID `14e4:1752`, your server is affected. Example output:
29+
30+
```text
31+
02:00.0 Ethernet controller [0200]: Broadcom Inc. and subsidiaries BCM57502 NetXtreme-E 10Gb/25Gb/40Gb/50Gb Ethernet [14e4:1752] (rev 12)
32+
02:00.1 Ethernet controller [0200]: Broadcom Inc. and subsidiaries BCM57502 NetXtreme-E 10Gb/25Gb/40Gb/50Gb Ethernet [14e4:1752] (rev 12)
33+
```
34+
35+
### Step 2 - Obtaining the network interface names
36+
37+
List network interfaces with:
38+
39+
```sh
40+
ip -brief link show
41+
```
42+
43+
Example output:
44+
45+
```text
46+
lo UNKNOWN 00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP>
47+
enp2s0f0np0 UP 9c:6b:00:12:34:56 <BROADCAST,MULTICAST,UP,LOWER_UP>
48+
enp2s0f1np1 DOWN 9c:6b:00:12:34:57 <BROADCAST,MULTICAST>
49+
vmbr0 UP 9c:6b:00:12:34:56 <BROADCAST,MULTICAST,UP,LOWER_UP>
50+
```
51+
52+
To find the interfaces that correspond to the Broadcom controllers shown by `lspci`, you can run:
53+
54+
```sh
55+
ethtool -i enp2s0f0np0
56+
```
57+
58+
Example output:
59+
60+
```txt
61+
driver: bnxt_en
62+
version: 6.8.12-5-pve
63+
firmware-version: 229.0.121.0/pkg N/A
64+
expansion-rom-version:
65+
bus-info: 0000:02:00.0
66+
supports-statistics: yes
67+
supports-test: yes
68+
supports-eeprom-access: yes
69+
supports-register-dump: yes
70+
supports-priv-flags: no
71+
```
72+
73+
The `bus-info` line matches the PCI address (`02:00.0` shown by `lspci`).
74+
75+
### Step 3 - Disabling the `generic-receive-offload` parameter
76+
77+
You can now check the status of the `generic-receive-offload` parameter with the following command:
78+
79+
```sh
80+
ethtool --show-offload enp2s0f0np0 | grep generic-receive-offload:
81+
```
82+
83+
Example output:
84+
85+
```text
86+
generic-receive-offload: on
87+
```
88+
89+
The slow downloads issue can be fixed by disabling `generic-receive-offload` with the following command:
90+
91+
```sh
92+
ethtool --offload enp2s0f0np0 generic-receive-offload off
93+
```
94+
95+
Example output:
96+
97+
```text
98+
Actual changes:
99+
rx-gro: off
100+
rx-gro-hw: off [not requested]
101+
```
102+
103+
### Step 4 - Persisting the change across reboots
104+
105+
In order to persist the change after the next reboot, the `ethtool` command may be added to the appropriate interfaces in `/etc/network/interfaces` as an `up` command.
106+
107+
For instance:
108+
109+
```text
110+
auto lo
111+
iface lo inet loopback
112+
113+
iface enp2s0f0np0 inet manual
114+
up ethtool --offload $IFACE generic-receive-offload off
115+
116+
auto vmbr0
117+
iface vmbr0 inet static
118+
address <IPV4>/32
119+
gateway 100.64.0.1
120+
bridge-ports enp2s0f0np0
121+
bridge-stp off
122+
bridge-fd 0
123+
hwaddress 9C:6B:00:12:34:56
124+
125+
iface vmbr0 inet6 static
126+
address <IPV6>/56
127+
gateway fe80::1
128+
```
129+
130+
> [!primary]
131+
> The `$IFACE` placeholder will be replaced by the interface name on execution. You do not need to replace it with the actual interface name.
132+
>
133+
> Setting the `generic-receive-offload` parameter on the `vmbr0` bridge has no effect, the change must be applied to the physical interfaces.
134+
135+
You can now restart the networking service to apply the configuration:
136+
137+
```sh
138+
systemctl restart networking.service
139+
```
140+
141+
## Go further
142+
143+
Join our [community of users](/links/community).

0 commit comments

Comments
 (0)