您当前的位置:首页 > 电脑百科 > 站长技术 > 服务器

修复Ubuntu中Realtek RTL8156B 2.5GbE USB适配器的性能问题

时间:2022-03-04 10:39:02  来源:  作者:CNXSoftware中文站

不久前,我在 Ubuntu 20.04 中评测了一款基于 Realtek RTL8156B 芯片USB 3.0 转 2.5 Gbps 的以太网适配器。测评时,我对这款适配器的可靠性和性能并没有多印象的深刻。当时也有很多朋友给了建议,例如更换网线、MTU 尺寸等。

但更换网线并没有什么帮助,我看到评论有人提到可能是 cdc_ncm 驱动程序的问题,我还看到另一条评论说更新到 linux 内核 5.14有应该能正确地安装r8152 驱动程序。所以我就这样做了,如下所示:

修复Ubuntu中Realtek RTL8156B 2.5GbE USB适配器的性能问题

前往“CNX Software中文站”官网,查看完整信息

将 Linux 5.13(Ubuntu 20.04 + HWE 附带)升级到了 Linux 5.14,但不幸的是该系统仍然继续使用了带有半双工链接的 cdc_ncm 驱动程序:

修复Ubuntu中Realtek RTL8156B 2.5GbE USB适配器的性能问题

前往“CNX Software中文站”官网,查看完整信息

后来我想,有可能必须要使用 udev 规则来防止加载 cdc_ncm 驱动程序了。而 r8152 驱动程序中确实有50-usb-realtek.NET.rules能够帮助做到这一点。所以我就将文件复制到了/etc/udev/rules.d/文件夹中。由于不想重新启动,所以我卸载了不需要的模块,然后重新启动了 udev 试一试:

修复Ubuntu中Realtek RTL8156B 2.5GbE USB适配器的性能问题

前往“CNX Software中文站”官网,查看完整信息

我们来看看结果怎么样,如下所示:

修复Ubuntu中Realtek RTL8156B 2.5GbE USB适配器的性能问题

前往“CNX Software中文站”官网,查看完整信息

很好!它现在可以使用 r8152 驱动程序了,并且我们还有一个全双工连接。

我们再次来对所有测试的结果来进行一下比较。

iperf2

上传:

修复Ubuntu中Realtek RTL8156B 2.5GbE USB适配器的性能问题

前往“CNX Software中文站”官网,查看完整信息

下载:

修复Ubuntu中Realtek RTL8156B 2.5GbE USB适配器的性能问题

前往“CNX Software中文站”官网,查看完整信息

这样做之后,下载速度有所提高了,之前使用 cdc_ncm 驱动程序时速度是 600 Mbps,但仍然没有接近 2.3 Gbps。

现在我们来体验下全双工:

修复Ubuntu中Realtek RTL8156B 2.5GbE USB适配器的性能问题

前往“CNX Software中文站”官网,查看完整信息

这其实还不算太糟糕了。

iperf3

上传:

修复Ubuntu中Realtek RTL8156B 2.5GbE USB适配器的性能问题

前往“CNX Software中文站”官网,查看完整信息

下载:

修复Ubuntu中Realtek RTL8156B 2.5GbE USB适配器的性能问题

前往“CNX Software中文站”官网,查看完整信息

和iperf2是差不多的。其实 iperf3 多年来一直都不支持全双工,但它们这次的 3.7 版重新引入了该功能。所以我们来试试看:

修复Ubuntu中Realtek RTL8156B 2.5GbE USB适配器的性能问题

前往“CNX Software中文站”官网,查看完整信息

哎呀!发生了什么呢?内核日志中似乎也有一些错误消息。

修复Ubuntu中Realtek RTL8156B 2.5GbE USB适配器的性能问题

前往“CNX Software中文站”官网,查看完整信息

我其实不是唯一遇到这个问题的人了,所以我只能说这是 r8156 驱动程序 Github repo 中一个未解决问题。以下是开发者的回答,仅供参考:

我怀疑是以太网适配器方面存在了问题,因为有很多报告称它与 DS918+ 是一起工作。比如:如电源线设计、过热等等。你们可以点击下面链接查看详情:
https://github.com/bb-qq/r8152/wiki/Compatibility

或者你们也可以试试其他供应商的以太网适配器,使用带有外部电源的 USB 集线器有可能可以改善这种情况。

此时,以太网根本不工作,所以我不得不拔下并重新插入 USB 适配器。这次终于成功“工作”了。

修复Ubuntu中Realtek RTL8156B 2.5GbE USB适配器的性能问题

前往“CNX Software中文站”官网,查看完整信息

Rx 侧仍然有重传,这其实也帮助解释了为什么速度会如此低。

SAMBA

我将一台带有 RTL8156B 适配器和 SATA SSD 的笔记本电脑连接到了一个带有 2.5GbE 的端口上,并配备了480GB SSD和MINIX USB-C 扩展坞的UP Xtreme i11迷你 PC 。

修复Ubuntu中Realtek RTL8156B 2.5GbE USB适配器的性能问题

SAMBA r8152驱动程序笔记本电脑传输到到迷你电脑的速度

r8152 驱动程序的传输速度大约是 930 Mbps,而 cdc_ncm 驱动程序的传速度大约是 750 Mbps。

现在我从迷你 PC 传输数据到笔记本电脑这个传输也可以称其为“下载”。

修复Ubuntu中Realtek RTL8156B 2.5GbE USB适配器的性能问题

SAMBA r8152驱动程序迷你电脑传输数据到笔记本电脑

不出意料,此时的速度比较慢,只有837 Mbps,但仍然比我使用 cdc_ncm 驱动程序时的速度要好,使用 cdc_ncm 时只有不到500 Mbps。

scp

笔记本电脑到迷你电脑:

修复Ubuntu中Realtek RTL8156B 2.5GbE USB适配器的性能问题

前往“CNX Software中文站”官网,查看完整信息

迷你电脑到笔记本电脑:

修复Ubuntu中Realtek RTL8156B 2.5GbE USB适配器的性能问题

前往“CNX Software中文站”官网,查看完整信息

使用 scp 下载和上传的速度几乎是相同的,这一点很奇怪。这里的遇到的瓶颈似乎是因为我的 SATA SSD:

修复Ubuntu中Realtek RTL8156B 2.5GbE USB适配器的性能问题

前往“CNX Software中文站”官网,查看完整信息

可以看到其读取速度限制在 145 MB/s 左右,写入速度则限制在了 140 MB/s 左右。

对比来看,MINIX NEO Storage Plus USB-C 扩展坞中使用的SSD 速度要更快了。我上次测试时,其顺序读取速度是 379MB/s,顺序写入速度为 240+ MB/s。

现在我们将数据放到 /dev/null上,看看现在的速度是怎么样的。

下载到笔记本电脑:

修复Ubuntu中Realtek RTL8156B 2.5GbE USB适配器的性能问题

前往“CNX Software中文站”官网,查看完整信息

从笔记本电脑上传:

修复Ubuntu中Realtek RTL8156B 2.5GbE USB适配器的性能问题

前往“CNX Software中文站”官网,查看完整信息

由上可以看到,至少对于上传而言,速度已经基本可以了。我觉得下载速度还是有一些问题,但是使用 r8152 驱动后其性能确实是有了很大的提升。

修复Ubuntu中Realtek RTL8156B 2.5GbE USB适配器的性能问题

cdc_ncm和r8152 drivers ubuntu

使用NanoPi R4S进行测试

虽然上面的测试结果比之前的测试结果要好多了,但仍然不是最佳的。因为我有一个带2个 USB 3.0 端口的 NanoPi R4S 路由器,所以我首先使用最新的 OpenWrt (FriendlyWrt) 21.02 镜像和 Linux 5.15来尝试一下,如下所示:

修复Ubuntu中Realtek RTL8156B 2.5GbE USB适配器的性能问题

前往“CNX Software中文站”官网,查看完整信息

这真的很惨,两边都有很多是重传的。

修复Ubuntu中Realtek RTL8156B 2.5GbE USB适配器的性能问题

前往“CNX Software中文站”官网,查看完整信息

查看内核日志,我们的 RTL8156B USB 适配器再次使用该 CDC NCM 驱动程序,就像在 Ubuntu 中一样……也有一个 r8152 驱动程序,但无论我在 /etc/modules.d 中删除什么模块,要么加载 CDC NCM,要么加载 eth2界面根本不显示。所以我切换到基于 Ubuntu 20.04 的 FriendlyCore 操作系统,它也是Linux 5.15,这将更接近我笔记本电脑上的设置。

正如人们所预料的那样,RTL8156B 适配器在 Ubuntu 中默认使用的是 CDC NCM 驱动程序。

修复Ubuntu中Realtek RTL8156B 2.5GbE USB适配器的性能问题

前往“CNX Software中文站”官网,查看完整信息

eth1 没有出现在 ifconfig 中,所以为了使用 r8152 驱动程序我还是继续更改 udev 规则。

修复Ubuntu中Realtek RTL8156B 2.5GbE USB适配器的性能问题

前往“CNX Software中文站”官网,查看完整信息

这个测试越来越令人沮丧了,我们先来更新一下系统看看。

修复Ubuntu中Realtek RTL8156B 2.5GbE USB适配器的性能问题

前往“CNX Software中文站”官网,查看完整信息

虽然我遵循了所有的步骤,但因为 FriendlyCore 镜像依赖的是中国的服务器,这与我的服务器相比就非常慢(只是运行 apt update 就可能需要 15 分钟)。因此虽然理论上更新其实是很快的,但它仍然还是需要几个小时!具体你们可以参考“从命令行更改 Ubuntu Apt 镜像”。

更新系统对固件的问题其实没有什么帮助。因此,我搜索了rtl_nic/rtl8156b-2.fw文件。它应该是位于 firmware--realtek Debian 软件包和linux-firmware Ubuntu Impish 软件包中。

我下载了后者,并提取了 rtl8156b-2.fw ,然后将其复制到 /etc/firmware/rtl_nic。现在终于可以成功工作了,如下所示:

修复Ubuntu中Realtek RTL8156B 2.5GbE USB适配器的性能问题

前往“CNX Software中文站”官网,查看完整信息

不知道什么原因,其接口仍然未启动,我只好手动将其添加到了 /etc/network/interfaces.d,但似乎不起什么作用。

回到带有rtl8156b-2.fw固件的Ubuntu笔记本电脑

因为没什么作用,所以我又回到了笔记本电脑上,并将固件文件复制到了/lib/firmware/rtl_nic目录下。结果与 NanoPi R4S 中的结果是一样的,如下所示:

修复Ubuntu中Realtek RTL8156B 2.5GbE USB适配器的性能问题

前往“CNX Software中文站”官网,查看完整信息

我们试试iperf3上传:

修复Ubuntu中Realtek RTL8156B 2.5GbE USB适配器的性能问题

前往“CNX Software中文站”官网,查看完整信息

和以前一样,还是没有回到之前的状态。现在我使用iperf3测试下载:

修复Ubuntu中Realtek RTL8156B 2.5GbE USB适配器的性能问题

前往“CNX Software中文站”官网,查看完整信息

情况好转了一点,但还是没有达到最理想的结果,而且重发数量真的好多!我现在真的好累,如果你们有什么其他想法好方法,请留言告诉我。



Tags:Ubuntu   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
Linux发行版 Ubuntu 迎更新 界面设计灵感来自 Windows 11
近日,一位第三方开发者推出了一款名为“Wubuntu”的特殊Linux发行版。这款系统源自主流的Ubuntu版本,但在界面设计上却借鉴了微软最新的Windows 11风格,甚至在其中融入了微软标...【详细内容】
2024-02-27  Search: Ubuntu  点击:(51)  评论:(0)  加入收藏
Win + Ubuntu 缝合怪:第三方开发者推出“Wubuntu”Linux 发行版
IT之家 2 月 26 日消息,一位第三方开发者推出了一款名为“Wubuntu”的缝合怪 Linux 发行版,系统本身基于 Ubuntu,但界面为微软 Windows 11 风格,甚至存在微软 Windows 徽标。据...【详细内容】
2024-02-27  Search: Ubuntu  点击:(53)  评论:(0)  加入收藏
Ubuntu 23.04 今日结束支持,用户应升级 23.10 等版本
IT之家 1 月 25 日消息,Ubuntu 23.04“Lunar Lobster”在去年 4 月发布,这是一个“短期支持版本”,拥有 9 个月支持周期,目前该发行版的官方支持已经正式结束。官方表示,用户应尽...【详细内容】
2024-01-25  Search: Ubuntu  点击:(80)  评论:(0)  加入收藏
如何在 Ubuntu 上安装 Docker
使用 Docker 意味着开启一个新的计算领域,但如果你刚刚开始使用 Docker,安装可能看起来是一项艰巨的任务。在 Ubuntu 上安装 Docker 有两种推荐的方法: 从 Ubuntu 的仓库安装 D...【详细内容】
2024-01-04  Search: Ubuntu  点击:(126)  评论:(0)  加入收藏
Ubuntu 20和Ubuntu 22的网络配置指南
Ubuntu系统是一款广泛使用的操作系统,而Ubuntu 20和Ubuntu 22是目前这个系列中最受关注的版本。无论是新手还是有经验的用户,配置网络对于使用Ubuntu系统来说都是至关重要的。...【详细内容】
2023-08-23  Search: Ubuntu  点击:(282)  评论:(0)  加入收藏
Ubuntu系统安装Java11
在数字化时代,Java仍然是一门备受青睐的编程语言,它不仅在Web开发、移动应用开发、大数据和人工智能等领域有着广泛的应用,而且也成为了许多教育机构和企业的首选编程语言。随...【详细内容】
2023-08-13  Search: Ubuntu  点击:(316)  评论:(0)  加入收藏
最详细的ubuntu 安装 docker教程
Docker是一种流行的容器化平台,它能够简化应用程序的部署和管理。本文将介绍在Ubuntu操作系统上安装Docker的步骤,以便我们可以开始使用Docker来构建和运行容器化应用程序。获...【详细内容】
2023-08-02  Search: Ubuntu  点击:(337)  评论:(0)  加入收藏
两个新漏洞可能影响 40% 的 Ubuntu 云工作负载
云安全公司 Wiz 的研究人员在 Ubuntu 的 OverlayFS 模块中发现了两个易于利用的权限提升漏洞,影响了 40% 的 Ubuntu 云工作负载。OverlayFS 是一种联合文件系统,允许一个文件...【详细内容】
2023-07-28  Search: Ubuntu  点击:(226)  评论:(0)  加入收藏
几款比Ubuntu都要好的Linux发行版,你真的不想知道吗?
Ubuntu是最受欢迎的Linux发行版之一,无论是个人还是企业都广泛使用它。然而,你可能不知道,在Linux世界中还有一些比Ubuntu更加优秀和令人惊喜的发行版。这些发行版提供了独特的...【详细内容】
2023-07-20  Search: Ubuntu  点击:(260)  评论:(0)  加入收藏
Ubuntu Linux的4个非常不错的应用坞
Ubuntu Linux是一款备受欢迎的开源操作系统,以其简洁、易用和优质的功能而受到广大使用者的喜爱。作为一个高度可定制的系统,Ubuntu为使用者提供了多种方式来组织和访问应用程...【详细内容】
2023-07-14  Search: Ubuntu  点击:(288)  评论:(0)  加入收藏
▌简易百科推荐
为什么Nginx被称为“反向”代理呢?
Nginx(发音为"engine-x")是一款高性能、轻量级的开源Web服务器软件,也可用作反向代理服务器、负载均衡器和HTTP缓存。Nginx之所以有被称为“反向”代理,是因为它充当客户端设备...【详细内容】
2024-02-01  coderidea  微信公众号  Tags:Nginx   点击:(61)  评论:(0)  加入收藏
哪种服务器操作系统更好呢?
在当今的IT世界中,服务器操作系统扮演着至关重要的角色。它们是确保服务器能够高效、安全地运行的关键因素。然而,对于许多人来说,服务器操作系统的种类和特点可能是一个复杂的...【详细内容】
2024-01-30    简易百科  Tags:操作系统   点击:(80)  评论:(0)  加入收藏
什么是VPS服务器
VPS服务器是一种虚拟化技术,它将一台物理服务器划分为多个虚拟的独立服务器,每个虚拟服务器都可以拥有自己的操作系统、运行环境、应用程序等。这种技术使得每个虚拟服务器可...【详细内容】
2024-01-30    简易百科  Tags:VPS服务器   点击:(73)  评论:(0)  加入收藏
VPS服务器下载速度慢?这五招帮你提速
VPS服务器下载速度慢可能会让用户感到沮丧,尤其是对于需要大量下载和上传数据的用户。幸运的是,有一些方法可以帮助您提高VPS服务器的下载速度,使您的在线体验更加顺畅。在本文...【详细内容】
2024-01-30  IDC行业观察者    Tags:VPS服务器   点击:(60)  评论:(0)  加入收藏
美国VPS和英国VPS:地理位置对服务器性能的影响
在今天的数字时代,VPS已成为在线业务和网站托管的关键组成部分。然而,选择合适的VPS主机服务时,地理位置通常被忽视,尽管它对服务器性能有着重要的影响。本文将探讨美国VPS和英...【详细内容】
2024-01-26  IDC行业观察者    Tags:服务器   点击:(56)  评论:(0)  加入收藏
如何判断服务器所需带宽:基于业务需求和流量模式的关键考量
在选择服务器时,带宽是一个重要的考虑因素。带宽的大小直接影响到网站的加载速度和用户的访问体验。那么,如何判断服务器需要多大的带宽呢?本文将为你揭示这一关键问题的答案...【详细内容】
2024-01-26  源库科技    Tags:服务器   点击:(78)  评论:(0)  加入收藏
服务器内存空间及IO操作原理解析
服务器的内存空间分为内核空间和用户空间,而我们编写的程序通常在用户空间中运行。在进行读写操作时,我们直接操作的是用户缓冲区,而用户缓冲区的内容来自于内核缓冲区。这种内...【详细内容】
2024-01-23  王建立    Tags:服务器   点击:(45)  评论:(0)  加入收藏
如何在Java环境中安装Nginx?
1. 下载Nginx:首先,前往Nginx官方网站(https://nginx.org/en/download.html)下载新版本的Nginx。选择适合您操作系统的版本,通常有Windows、Linux和Mac等不同操作系统的版本可供...【详细内容】
2024-01-22  敲代码的小动    Tags:Nginx   点击:(69)  评论:(0)  加入收藏
服务器证书和SSL证书有啥区别?
在互联网经济时代,随着越来越多的信息以及合作都是从企业官网开始的,因此绝大多数企业都会为自己的网站配置SSL证书,以提高安全性。在接触SSL证书时,也有很多人称之为服务器证书...【详细内容】
2024-01-10  安信SSL证书    Tags:服务器证书   点击:(66)  评论:(0)  加入收藏
宝塔面板怎样部署java项目?
宝塔面板怎样部署java项目?在使用宝塔面板部署Java项目之前,需要确保已经安装了Java Development Kit (JDK)。接下来,将介绍如何使用宝塔面板来部署Java项目的步骤。步骤一:安装...【详细内容】
2024-01-09  西部数码    Tags:宝塔面板   点击:(119)  评论:(0)  加入收藏
站内最新
站内热门
站内头条