2.09测试版

磁盘IO占用高但是磁盘数据也很慢的原因
1.多线程下载(但每个连接的线程都没有过高的速度):多线程下载没有过多的下载数据导致所有的数据都快速从软件的第一磁盘写入速缓冲区里发往磁盘I/O等待系统写入。由于连接数非常多就会导致高线程下载时,每个线程都会尝试将数据写入磁盘,这会导致磁盘I/O的并发请求增加。这些并发请求会迅速填满软件内部的磁盘写入速缓冲区但是不会到下载缓冲区中,还有操作系统的磁盘I/O缓冲区,进而导致磁盘I/O变得非常繁忙。当暂停任务时(图3),在磁盘IO处提交了且等待中的数据返回到软件的下载缓冲区中,软件磁盘缓存区直接从0变成了一个很大的数值,磁盘提速程序得以高效整理过多线程导致的磁盘写入请求,并且磁盘IO占用再次提升到了最高水平,但是数据传输速度快速提升,上传速度快速恢复到之前水平
2.高速下载(连接较少的线程但单线程速度极大):高速下载通常使用较少的线程,甚至只使用单线程来处理数据流。所以磁盘I/O请求的数量相对较少,系统的磁盘I/O调度算法可以有效地处理这些请求,不会导致拥堵现象,在拥堵时软件的低速缓存区也会介入,不会导致下载和上传速度降低太多。写入效率上单线程或少量线程也可以更高效地处理数据写入,因为它们减少了调度开销和并发冲突,下载的数据可以更流畅地从软件内部缓冲区写入到操作系统磁盘I/O缓冲区,并最终写入磁盘。较少的线程意味着较低的资源消耗,操作系统可以更好地管理内存和其他资源,从而保持较高的磁盘I/O效率。这也是为什么多线程下载时为什么软件十分卡顿无法正常使用但是其他软件没有问题的原因
3.高速且多线程下载。磁盘写入速缓冲区和下载缓冲区均被大量多线程的数据堵塞,导致如图最后一种情况,数据不断填充运行内存,运行内存填满后继续填到SSD中的虚拟内存中,要写入数据的磁盘I/O却无法处理如此多的数据,只能手动暂停缓解





这样的事情很难解决啊,像IDM这样的多线程下载软件都是采用了直接写入本地磁盘的方式最后再合并碎片。要不手动限速,要不增加磁盘的写入缓冲区,要不用异步I/O处理。异步I/O应该能把速度慢但是软件卡转化成速度慢但是还能正常响应,但是逻辑上似乎很难处理

你说的这些现有版本已经都有,包括磁盘写操作缓冲区的内存占用过高后自动下载限速
HTTP任务内存里组合碎片文件合并成16MB数据在写入
BT任务则是完成一个区块立即写入,写入数据大小取决于种子文件的区块大小设置
比特彗星是目前所有BT、HTTP同类下载软件中磁盘性能优化效果最好的了
不过对于BT任务还可以进一步去优化提升性能,可以看之前的反馈,如果种子文件的区块过小,比如说512KB的时候,此时就会写入较慢

如果完全不想使用虚拟内存,可以在此处进行设置保留内存大小,例如保留1024MB内存,此时Windows就不会使用虚拟内存(可以观察统计页面,工作集和提交大小显示的数值一样代表没有使用到虚拟内存,如果提交大小远远大于工作集,代表正在使用虚拟内存

https://www.bilibili.com/read/cv26870832/

如下图较少线程的高速下载让下载缓冲区爆了导致的运行内存爆炸了,因为虚拟内存我一般让系统自动托管所以程序不会崩溃而是把应该暂存到运行内存的东西放到虚拟内存所在的SSD里,那次甚至直到SSD也满了红了我才发现这个情况,和磁盘缓存设置没有关系,新版应该在高级设置里有自定义了。因为第一种情况是磁盘I/O爆掉,所以也不会有磁盘写操作缓冲区过大的提示,只会有上传下载速度不断降低,而磁盘IO占用不下降的现象存在

截图上看得到工作集和提交大小不一致,代表已经触发了虚拟内存,虚拟内存会占用磁盘性能,如果叠瓦盘本身性能就很烂,在加上使用了虚拟内存肯定会卡io
检查 system.compact_memory_interval 选项,是否正确设置为0,如果设置不为0,每一段时间就会把内存复制迁移到虚拟内存去运行,来回从内存到虚拟内存搬运数据会占用磁盘io的

也可以升级到最新版,改善了自动下载限速,早期版本是内存即将用尽时才自动限速,新版本是缓冲区达到一定数值后就进行自动限速

建議與問題

  1. 上下傳的工作及總流量速度是否可以統一匯總在所有下載(所有工作)中, 包含長效種子?
    目前的方式很不好查看及管理…
  2. Torrent 市場 不見了…要如何可以顯示出來? 我設定的繁體介面…也是沒有…
  3. 最近發現跑1~2天 Bitcomet 就會自已當機…登出…但是看不出問題…請問有那些LOG或歷史圖表可以參考?

好看吗哥们


求解答这个下载速度提不上去了咋办,端口阻塞,之前用的还好好的

DHT能不能只有自己在任务列表的时候才回应,而不是自己充当DHT中心服务器,收到请求后去问邻居查找成功后回应,减少使用过程中的udp发包量
自己充当服务器的时候也容易被某些DHT爬虫网站记录自己下载过这个种子,因为他从我这得知了邻居那有peer

beta3已发布,欢迎试用

2個讚

这里还是200忘记改了

可以,加号测试完美修复了,会自动把+号编码传给服务器,其它特殊符号还没测

webgui的Peer ID正确显示了,但是我感觉不是他们想要的样子,不过让他们对其解码一下也能还原出来 -六位数- 的样子

zstd效果测试很完美

新界面里的peer信息输出也做一下吧
只做接口也行 这样就可以使用外部程序来分析peer信息了

目前新版webUI的语言识别还是有些问题
无法根据浏览器语言自动调整


默认上两千的话恐怕是会被判定为dos攻击

建议恢复原有的线程数限制 更多线程数应仅在测试版可用
如此之多的线程发起完全可以当做现成的dos攻击工具
更不用说默认使用2000线程了


需要的是完善的请求接口 tr也不显示 peerid 但是它有接口 有人适配
bc这样只能分析HTML文本 有peeid 也没人愿意搞

BC的DHT有個已經存在多年的Bug有沒打算修?
多年前我已習慣只用DHT,每次都要人手將Tracker用Ctrl+A Del刪掉(就不能在Tracker輸入框左上角加個選擇Box控制預設開不開Tracker嗎)

然後就留意到總會有一些任務(不是私人)不會去查栒DHT,半強廹要人加上Tracker查栒
不清楚原由,就是怎麼等、怎麼更新查栒都不會有任何DHT回應

疑似是因為哈希值v1中有連續4位英文字母如FFFF之類就中Bug不查栒DHT

有没有特征码试一下?试了下FFFF这里没法复现,如果一直显示connect代表正在查询或者没有查询到结果
Tracker开关在高级设置可以禁用udp tracker,http还没有开关,但是可以全选任务列表后,直接邮件呼出批量替换tracker,替换个空值就可以了
有tracker的话,DHT就没作用了,一般来说完全可以禁用DHT,只用tracker

测试默认是英语,确实没默认中文,而且鼠标移动上去是悬浮弹出选项,不是点击后弹出,感觉很怪

是指输入框的可输入最大值

不会,比特彗星设置2000线程的时候,需要第一个主线程成功连接,才会启用后续的1999个多线程
并且收到服务器403拒绝响应的错误码后会立即进行关闭当前使用的线程,此时不会产生请求

其它HTTP下载软件都支持1000或者2000线程,比特彗星200线程确实少了,2000是合理的,可以说没有dos的风险存在

第三方插件的开发者技术不到位,所以没办法解析HTML,对方不知道怎么去获取值
不过使用xml回应数据,或者使用json确实是更好的选择,这样可以直接通过参数字段去获取值

手动可以调 但自动识别有问题


默认值不应设置的如此之高 比特彗星是bt客户端
若要执行http下载请使用专门的客户端或者其他跨协议客户端
你说的其他下载软件应该是个不错的选择

可以搞但是不好用 种子一多 查询速度一快 响应速度就跟不上

其它下载软件不支持HTTP内存缓存,千兆网速下载直接能把SSD硬盘性能搞爆炸,比特彗星的HTTP下载由于内存优化能跑差不多3Gbps宽带左右,而且比特彗星还支持HTTP长效种子能和BT任务打通,多链接组合实现分布式服务器镜像加速,自定义header头信息突破cookie、referer防盗链,这些其他HTTP下载软件都不具备,比特彗星下载HTTP任务反而是最好的选择,作为软件官方的默认值是可以不用2000那么大,但是可选值输入200,没办法往201加那肯定是有问题了,这个界面忘记一起改了

默认值不应设置的如此之高

也许在测试版本保留2000线程的能力 而在正式版恢复200线程的限制
会是一个好主意 这即保留了功能 有可以在一定程度上控制误操作和滥用的风险

只在测试版能用的功能那不是更新了个寂寞。。。