This topic created in 36 days ago, the information mentioned may be changed or developed.
我在一台虚拟机里面物理机直装无 GUI 的 qbittorrent-nox:5.0.2-libtorrentv1 ,然后有用乌班图的种子试了下载速度只能跑到 20M/s 左右
然后在这个台虚拟机安装 docker 然后 host 模式跑/linuxserver/qbittorrent:5.0.2-libtorrentv1 这个版本的 qbittorrent 用同样的乌班图种子可以跑满带宽这就很奇怪
在同样的 tracker 、同样的下载目录下,甚至端口都是一样的为什么物理直装的 qb 跑不满带宽呢?我看 cpu 和内存占用都没满
11 replies • 2026-04-24 20:36:12 +08:00
 |
|
3
Vesc Apr 22
@ Immunize 研究了一下 dht 的配置是一样的,节点数不一样,而且还是物理机的节点数多
|
 |
|
4
Immunize Apr 23
如果连接性不是问题的话,就只有磁盘缓存相关配置不一样了?如果虚拟机做乌班图的种子,物理机和虚拟机 p2p 能拉满么。
|
 |
|
5
Vesc Apr 23
@ Immunize #4 我用 iperf3 打流试了是可以跑满带宽的,做种倒是没试过,回头试试
|
 |
|
6
Vesc Apr 23
@ Immunize #4 试了一下在 windows 做种,docker 里面手动添加 windows 的 peer ,平均速度 20MB/s
|
 |
|
7
Vesc Apr 23
@ Immunize #4 奇怪,我用两台同时做种,docker 的平均速度还是 20MB/s
|
 |
|
8
ryd994 Apr 24 via Android
host 模式就是直接用 host 的网络栈了,加上 iperf 正常,说明不是网络问题。大概率还是配置的问题。
CPU 总体没占满不代表单核没占满。网络协议处理很多时候是单线程或者有限的多线程。你要用 htop 或者 top 然后按 1 键切换到每核心占用率查看有没有单线程占满的问题。
磁盘占用率用 iostat -x 1 看
用 tcpdump 抓个包。检查协议是否一样,因为这种场景下,UDP 的吞吐量比不上 TCP 。还有检查包大小是否一样,理论上应该是用满 MTU ,但是实际未必。如果你懂网络协议的话还可以分析一下重传频率和 TCP 窗口大小,分析是否异常丢包。
还有就是配置文件问题了。直接把 docker 里的配置文件复制出来用试试。检查一下 docker 镜像的命令有没有带参数。
|
 |
|
9
ryd994 Apr 24 via Android
有必要的话甚至可以直接从 docker 镜像里复制整个 rootfs 出来。直接跑 docker 镜像里的程序试试。如果 docker 镜像里的程序也一样有问题,那就 chroot 进去再试。如果 chroot 就没问题了,说明动态库有问题。
|