设为首页收藏本站

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

 找回密码
 注册论坛

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

用百度帐号登录

只需两步,快速登录

搜索
查看: 75|回复: 0

比特彗星长效种子后台任务正在准备长效做种,启动延迟300秒才开始检查,期间没有性能消耗但是速度很慢要等半个小时

[复制链接]
 成长值: 837

签到天数: 4904 天

[LV.Master]伴坛终老

发表于 2025/6/5 20:54 | 显示全部楼层 |阅读模式 |Google Chrome 137.0.0.0|Windows 10
天涯海角搜一下: 百度 谷歌 360 搜狗 有道 雅虎 必应 即刻
比特彗星长效种子后台任务正在准备长效做种,启动延迟300秒才开始检查,期间没有性能消耗但是速度很慢要等半个小时

因为目前的做法是在程序启动时要对已下载的文件都要扫描一遍,检查文件是否还存在,以便提供真实有效的长效做种信息。为了避免磁盘访问造成的显著影响,扫描是有间隔的,任务及文件数量很大的话时间就会很长。
考虑过的改进方案:
1、取消扫描间隔,在工作线程里疯狂访问磁盘。机械硬盘的用户体验会很不好。
2、和种子市场类似,使用sqlite数据库文件保存已下载文件索引,作为长效做种信息。但是对于已下载文件被删除或移走的情况,只能在被其他用户请求下载的时候才能检测出来,会造成一些无效的下载请求。
方案2还有个额外的好处,方便对所有任务里的所有文件名称进行搜索(目前只能对所有任务名称进行搜索)

2的话不太好,我可不想看到有一个长效种子,但下载不了的情况出现,请求后发现对方文件已被删除,优先考虑取消扫描间隔或者自定义间隔最小0
现有版本是启动后延迟300秒才进行扫描,避免用户启动后立即退出导致无效用户
下载任务完成后,可以弹性更新立即作用为长效种子上传
其实这个长效种子扫描文件不会带来很大的开销,应该只是简单的对比了文件大小和修改日期,期间没有任何性能占用
校验这个是在制作种子文件的时候发生的
和下载文件后,如果种子文件内没有包含长效hash值(制作时没有勾选,或者其它BT客户端制作的的种子文件),才会进行校验来作用于长效种子,日志中会进行提示
同时如果未包含hash的种子,长效种子服务器上已经有其它网友首次校验过,后续的其它人也不会进行校验
但是机械盘的工作原理是磁头,频繁去检查不同的文件大小等于说是在用4K读写速度运行磁头来回跳动到不同的磁盘扇区中,总之给用户高级设置自定义间隔就好了,和tcp发起间隔一样,最小值可以改成0ms,这样就能适合固态硬盘之类的硬件了
最简单的点开我的电脑,进入机械盘分区盘符,选择一个游戏文件夹右键属性,机械盘大概1秒能扫描到50-100个文件,固态盘一秒大概10000个文件
间隔时间为0ms,固态硬盘性能全开的时候,15万个文件作用于长效上传,扫描完成只需要15秒
机械盘性能全开大约为25-50分钟,符合楼上加载了20分钟的预期
也可以直接给个勾选的开关在这,“我电脑所有硬盘均为SSD”,勾选后把扫描速度提升到1w每秒(0ms不限制),不勾选则每秒50个文件(10ms-20ms)
image.png

想了一下,可以将两种方法结合起来。程序启动的时候,像种子市场一样在后台加载含有全部任务全部文件的sqlite数据库,用于界面的文件搜索。5分钟后再开始慢慢检查是否有文件被删除或移走,以保证长效上传信息的有效性。
目前两个任务扫描的间隔是1000ms,可以加个高级设置项来给等不及的用户自定义(间隔不宜小于100ms)

有点浪费硬盘io性能去查询db库,之前有反馈过虽然比特彗星把db加载到内存里了,但是读写的时候还是发生在硬盘,而不是内存中操作
会不会多此一举了,或者能不能不要缓存在内存,直接改成sendfile方式去读取db
假设下载1000个任务,每个任务包含500个文件,那么db要记录50万的文件,而且还不能和种子市场一样限制最大值为1万,会导致db文件大小500M加载到内存
就算把这1000个任务全部删除了,文件大小还是不会变小的,如果重新下载新的1000个任务,那么文件好像还是从500M开始涨到1G
既然不是在内存里面进行读写,那还不如不要复制到内存中。

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025/6/8 00:57 , Processed in 0.128958 second(s), 21 queries , MemCache On.

Powered by itzmx! X3.4

© 2011- sakura

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