Linux 性能分析问题: 2 台配置相近的台式机 scp 拷贝大文件的速度有差距

2023-07-08 16:18:35 +08:00
 wniming

楼主家里有三台台式机,配置如下:

192.168.1.5: amd 5700x + b550 + 16G x2 ddr4 3200 ram

192.168.1.6: amd 5700x + b550 + 8G x2 ddr4 3200 ram

192.168.1.7: intel 13100 + b760 + 8G x2 ddr4 3200 ram

这三台机都有板载 2.5G 网口,型号都是 rtl 8125 ,操作系统都是 fedora 38 ,并通过 tp-link 的 2.5g 交换机相连,问题如下:

在 1.5 这台机上通过 scp 往 1.6 这台机拷贝大文件,不管试多少次速度都能一开始就稳定在 279MB/s , 但往 1.7 这台机上拷贝大文件大部分情况下都是一开始只有 259MB/s ,然后会慢慢增加到 279MB/s ,偶尔一上来也能达到 279MB/s 。

我通过 iperf3 测试这三台机的网络速度完全一样,均为 2.35 Gbits/sec ,拷贝过程中这三台机的 cpu 单核占用都不到 50%,我尝试过更换网线,把 fedora 默认的 r8169 驱动升级成专门的 r8125 驱动都不行

1.7 这台机的配置比 1.6 弱的地方只有 2 点,分别是 cpu 的多核性能以及 cpu 的缓存大小,scp 拷文件用不着多核,难道这个速度差别是因为 13100 的缓存太小或 intel 处理器的缓存策略导致的?

希望有大佬给个排查这个问题的方法。

2536 次点击
所在节点    Linux
26 条回复
dode
2023-07-08 19:34:11 +08:00
1.7 接的网线,交换机接口都相互换换
wniming
2023-07-08 19:58:47 +08:00
@dode 都试了,我还买了 tp link 的另一款 2.5g 交换机以及独立 pcie 2.5g 网卡都试了效果都一样。
akira
2023-07-08 20:47:28 +08:00
7 的网速和 cpu 占用率有明显的相关性么
dode
2023-07-08 21:02:03 +08:00
试试 nfs 拷贝,ssh 配置有影响吗
shijingshijing
2023-07-08 21:07:42 +08:00
螃蟹卡是这样的,你都换成 Broadcom 的试试,Intel 的他们说也有问题。
wniming
2023-07-08 21:12:12 +08:00
@shijingshijing 能发一下相关的链接吗?
wniming
2023-07-08 21:33:54 +08:00
@shijingshijing intel 的 I225-v 芯片的网卡也有这样的问题吗?
wniming
2023-07-08 21:57:30 +08:00
@dode 1.5 这台机开启 nfs-server, 1.6 和 1.7 分别挂在 1.5 的目录,分别从 1.5 读大文件到本机的 /dev/shm/ 目录,各测了三次两者每次的速度都是 280MiB/s 。
wniming
2023-07-08 21:58:04 +08:00
@dode ssh 均为默认配置
shijingshijing
2023-07-08 22:09:36 +08:00
@wniming

Intel 的断流好像是通病,前段时间也是听人说的,Intel 自己的人都推荐碰到问题先用螃蟹卡替代了试试

https://www.chiphell.com/thread-2492351-1-1.html
https://www.chiphell.com/thread-2488250-1-1.html
https://www.chiphell.com/thread-2409917-2-1.html

螃蟹卡后面的那个字母 RTL8111B/RTL8111C/RTL8111D/RTL8111E/RTL8111F/RTL8111G(S)/RTL8111H(S)//RTL8118(A)(S)/RTL8119i/RTL8111L/RTL8111K 这种,除了工艺制程的区别,据说是通过 offloading 一部分计算让 CPU 来实现的,不是后面的字母越往后越好。

反正我前面研究了一通,结果就是,普通人凑合用用螃蟹卡吧,不缺钱闭着眼睛买 Broadcom ,实在钱多的慌直接上 Mellanox 吧。。。
wniming
2023-07-08 22:13:46 +08:00
@akira 不管是 scp 还是 nfs 拷文件,1.6 的 cpu 占用率都要比 1.7 低一些

往 1.6 scp 时 1.6 的 sshd 和 sftp-server 的 cpu 占用大约是 23% ,8%
往 1.7 scp 时 1.7 的 sshd 和 sftp-server 的 cpu 占用大约是 32% ,15%

1.6 通过 nfs 从 1.5 读文件时 1.6 的 cpu 占用大约是 17%
1.7 通过 nfs 从 1.5 读文件时 1.7 的 cpu 占用大约是 38%

1.6 的 cpu 占用在整个拷贝期间较为稳定,1.7 的波动较大。
nuk
2023-07-08 22:20:23 +08:00
至少需要一个同配置的硬件来确定是不是普遍的硬件问题吧,反正我想到的就是硬盘 IO 限制了。
wniming
2023-07-08 22:24:32 +08:00
@nuk 我所有的测试场景只涉及从硬盘读取,硬盘都是 ssd 读取速度都不会是瓶颈,写入都是写入到 /dev/shm , 这个是内存文件系统来着。
jklove123bai
2023-07-08 22:40:40 +08:00
你硬盘都是 SSD ,但是又没说型号,有可能就是硬盘差异导致的吧
wniming
2023-07-08 22:50:17 +08:00
@jklove123bai 1.5 和 1.6 都是 sn770 ,1.7 是 英睿达的 CT250P2SSD8 ,顺序读取 2100MB/s ,scp 这个测试场景只涉及到从 1.5 的硬盘读取,target 是 1.6 和 1.7 的 /dev/shm/ ,所以 1.6 和 1.7 的 硬盘差别不会影响测试结果。
zizon
2023-07-08 23:06:42 +08:00
反向拷贝呢?
dode
2023-07-08 23:23:20 +08:00
scp -vvvv
u20237
2023-07-08 23:25:11 +08:00
缺少很多有必要的信息,暂不回复
dode
2023-07-09 00:55:11 +08:00
1.6 通过 nfs 从 1.5 读文件时 1.6 的 cpu 占用大约是 17%
1.7 通过 nfs 从 1.5 读文件时 1.7 的 cpu 占用大约是 38%

这时候 1.5cpu 占用是多少
wniming
2023-07-09 01:13:04 +08:00
@dode 1.5 的 cpu 占用这两种情况没区别,nfsd 进程都是平均 4%左右,我这个 cpu 占用率是看 top 的输出,每秒更新一次,我不是把每次输出都记录下来算一个严格的值,而是通过多次观察取一个差不多平均的值。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/955121

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX