Linux内测版

抄一下我的那串编排代码试试,官方提供的docker示例代码有问题,出现了几次不同端口号

和运营商要公网ip

容器转成host网络之后,ipv4的端口都通了,但是ipv6还是不通的,路由器已经打开v6端口防火墙了,似乎是容器本身没开v6端口

docker 图形界面模式 各种水土不服

docker 命令行模式+WebUI 能用,添加种子正常,下载正常 :grinning: ,
2025-01-20_171149

初步看着流量图跟分块还需要改


图形界面版本不支持vps服务器,要用命令行webui的版本

linux版是不是默认启用了做种任务规则自动停止,能关掉吗,手机版移动端默认打开就好了(下次我确认下任务日志里面的显示)

新的webgui上没办法复制磁力或者特征码,摘要里面无法选中字符串

确认了,,,有自动停止,我想个办法把他关掉
Task auto-stop condition reached: share ratio(42969%>=200%), seed num(10>=10), seeding time(92415s>=86400s)

根据三个做种规则自动停止任务改成false关闭,这样就不会自动停止上传任务了

<ConditionAutoStopTask>false</ConditionAutoStopTask>

问题一: 最新的版本 制作种子时有bug.
制作参数如下

文件夹大小: 191GB
V2版种子
piece长度 4M
选择支持长效种子。

制作完成后无法被加载,软件直接崩溃, qbittorrent、tranmission也同意如此。
tiaxti能加载识别,但诡异的是每个文件夹下会自动套一层纯字符文件夹。
制作了3次,每次60分钟左右。

用torrent_file_edit看了下结构,结构能正确识别,tree file 中每个文件 里面多了filesha,应该是给长效种子用的。理论上v2客户端只读核心参数,多出来的是不会影响的,但它就是读不了。

又同样测试了一个2G的小文件夹,未出行次错误。不知道旧版以及windows版有没有错误,数据在ext4里,windows未测试。

错误版:

长效种子参数

问题二 webui版下载时会使用大量内存,但是下载完不回收。

下载速度越快占用内存越大,一开始看是磁盘缓存占了一半,但是后来磁盘缓存没了以后内存依旧未释放。

我是一开始下载的文件快,内存消耗过快,到达docker限制最大内存之后软件重启好几次才发现的。

这个是我给它限速下载完,做种8个小时后显示内存情况。理论上各项加起来才100m,但实际800M

第三 软件崩溃重启后,原来在下载的种子不会自动开始下载,这在docker里出问题了就一直白挂了。

C语言写的Linux内核软件好像都有个内存泄漏的通病,建立TCP后不进行垃圾回收,也就是对应正在发起和被动接收的最大历史产生的连接数峰值,可以弄个计时器每5分钟释放一下,或者直接用完立即释放不要积累避免内存泄漏
其实这个内存占用也不能说是泄漏,是为了避免后续建立连接的时候重复去申请内存空间,也算是一种常驻内存的优化技术,避免进程重新申请连接数需要的内存空间

如果是缓存占用,下一版有望支持sendfile函数调用和TransmitFile操作系统缓存

主要是修改StartupAutoRunTask,避免重启docker进程后任务被停止

比特彗星Linux版本没有登录框怎么使用配置文件来登录账号,PassportLastUser

Bitcometd版本目前没有登录功能,可以试试把Windows配置文件移植过去
BitComet.xml
配置文件这两行,代表自动登录账号

<PassportLastUser></PassportLastUser>
<PassportLastUserPassword></PassportLastUserPassword>

然后在彗星通行证页面上查看设备列表确认已登录成功

设置缓存和启动进程后,自动开始任务,64MB对应上传速度为2MB/s,可看内存缓存和上传速度的关系:https://bbs.itzmx.com/thread-111576-1-1.html

<DiskCacheMaxSizeMB>64</DiskCacheMaxSizeMB>
<LTSeedCacheMaxSizeMB>64</LTSeedCacheMaxSizeMB>
<StartupAutoRunTask>true</StartupAutoRunTask>

目前发现Linux版本做种一段时间后会自动停止任务,还要找一下是哪个配置文件
Task auto-stop condition reached: share ratio(42969%>=200%), seed num(10>=10), seeding time(92415s>=86400s)
根据三个做种规则自动停止任务改成false关闭,这样就不会自动停止上传任务了

<ConditionAutoStopTask>false</ConditionAutoStopTask>

手动添加了参数,确实有效。

自动开始任务这个下一版还是自带好一点。

关于内存不回收这个应该是代码申请后未释放,linux网络套接字用不了MB这么大的单位,而且我自己就是程序员,C语言内存是程序自己申请,自己释放的,没释放就是代码里忘了。

得解决这个问题,不然挂的时间久了,1T内存都不够用啊。

小樱是管理员吗?回复的好快啊。

C语言对于申请连接数默认不释放内存的,对于频繁建立连接的web软件特别有效,比如说opentracker,nginx等等,不信你把防火墙堵了端口,,,然后等用户列表变成0,你看进程内存还在那,这种做法应该是避免内存碎片,频繁申请内存空间
我觉得对于比特彗星Linux版可以加一个计时器去每5分钟释放一次,毕竟transmission之类其它BT软件都有自动释放内存
一般来说每个tcp页默认情况下申请占用100KB内存空间,tcp_rmem+tcp_wmem,在系统内核内存紧张的时候会缩小为8KB,并且上限值是tcp_mem页控制,也就是44262x100K=4.3GB内存(最紧张情况下为44262x8K=345MB),不会出现占用到1TB内存的现象

我不是管理员,这个释放内存问题要官方来解决

哦哦 ,那也太热心。

没怎么研究过linux内核里套接字的极端情况,这种无限制申请应该算漏洞吧。

不管是不是网络套接字造成的,总之找到原因解决问题就行。

bitcomet在易用性和功能性上确实相当不错,但是在性能、资源利用上还是要加倍努力的。

种子制作bug复现:

包含多重目录就会出现此bug.如下图:

结构

制作v2版种子

最后torrent文件内容对比

经测试 此bug在windows版12.1上不存在,只有linux有。

@wxhere15 有空请修复一下此bug.

不知道怎么做

参考帖子的Linux版本说明,需要有图形界面,安装完成后,在Linux系统桌面双击运行
或者下载.AppImage,无需安装直接双击运行即可
如果没有界面的话,可以使用deb包安装,执行bitcometd来运行无gui版本,然后通过webgui来管理,你截图上这段话写的很清楚了

无GUI的不好用,从Windows转过来的

webgui还在陆续更新,预计会把所有设置都加进去网页中,达到Windows一样的界面效果,可以观望下后续版本
或者使用带图形界面的Linux系统

我从Windows转lubuntu是为了腾出更多性能跑bitcomet,总不可能买高配电脑吧,毕竟现在自己开销紧张,还有成百的上传种子。