设为首页收藏本站

ZMX - IT技术交流论坛 - 无限Perfect,追求梦想 - itzmx.com

 找回密码
 注册论坛

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

用百度帐号登录

只需两步,快速登录

搜索
查看: 3203|回复: 2

transmission 只能使用1个cpu,单核心进程怎么利用多个物理核心

[复制链接]
 成长值: 252

签到天数: 4709 天

[LV.Master]伴坛终老

发表于 2019/5/3 09:19 | 显示全部楼层 |阅读模式 |Google Chrome 74.0.3729.131|Windows 10
天涯海角搜一下: 百度 谷歌 360 搜狗 有道 雅虎 必应 即刻
1.png

2.png

3.png

从没见过他超过100%,只有一个核心在动。。
不过刚好可以G口跑满


2022年8月15日补充
tr也是单核心的。。。不过资源占用确实小很多,因为基本不主动对外发请求,只靠外部连自己,tracker=主动对外发请求要去建立连接
tr的做法,,,是搞了一大堆闲置tracker,抽其中几个连接,所以tr比qb之类的bt软件更省cpu一些
我实在不懂,是他们解决不了单线程的问题吗,思路,想法解决办法全提供了,就是没人能解决
可能因为他没能力写出来吧,又见不得有人提问题还提供解决方案

例如一套完整的思路
1.png
有些VPS单核心性能巨差。。。bt软件跑起来卡卡的。四核心跑分还没家里一核心快。。。坐等后续版本改善支持多核心
2.png
预先创建和CPU同等数量的线程数,然后每个外部远程新连入连接分配到不同的工作线程。。如果本地发起也可以做分配,那性能会更好。
最好可以高级选项自定义,默认0自动分配,可手动设置
自动分配情况,对于特殊情况,例如如果是英特尔i5 9400f之类的6核心6线程cpu,6大于4则分配8线程。
如果能做成我说的那样,,,应该是最理想的多线程方案(我怎么感觉开发难度不大来着。。。判断新连接产生直接分配到线程ID就行了例如01234567一共8个线程ID,陆续分配下去就可以了,其它负载算法可以以后在优化,现在可以做顺序式分配)

要不然抄袭一下Linux的libtorrent做法,是多开进程实现的,比如启动10个libtorrent。然后任务分别运行在不同的进程上来实现多线程,主线程通过webgui之类的api去控制所有进程汇总显示。这样主线程负载就轻了,,也能实现多线程了

像上面的图,很恐怖吧,40核心CPU,只跑了一个核心,至今,,还没见到能多线程的BT软件,还有个好办法,,,是做成CDN种子,web支持多线程很完善

欢迎光临IT技术交流论坛:http://bbs.itzmx.com/
回复

使用道具 举报

签到天数: 3272 天

[LV.Master]伴坛终老

发表于 2019/5/3 10:01 | 显示全部楼层 |Firefox 52.0|Windows 10
用爱感化它
[发帖际遇]: 一个袋子砸在了 只爱小玉 头上,只爱小玉 赚了 3 樱币. 幸运榜 / 衰神榜
欢迎光临IT技术交流论坛:http://bbs.itzmx.com/
回复 支持 反对

使用道具 举报

 成长值: 252

签到天数: 4709 天

[LV.Master]伴坛终老

发表于 2019/5/3 18:42 | 显示全部楼层 |Google Chrome 74.0.3729.131|Windows 10
欢迎光临IT技术交流论坛:http://bbs.itzmx.com/
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册论坛 新浪微博账号登陆用百度帐号登录

本版积分规则

手机版|Archiver|Mail me|网站地图|IT技术交流论坛 ( 闽ICP备13013206号-7 )

GMT+8, 2024/11/25 19:30 , Processed in 0.286656 second(s), 22 queries , MemCache On.

Powered by itzmx! X3.4

© 2011- sakura

快速回复 返回顶部 返回列表