做种保种环境管理网络优化一: 备份,分类,端口转发,巨帧包,高性能上传,成本控制,SSD

A@NAZOrip
A@NAZOrip 2022年03月27日
  • 在其它设备中阅读本文章

❀原创教程,转载本页必须注明链接和作者

❀目前本教程处于发布早期,会频繁更新/修bug,出问题求不锤

避免种子数量太多导致的误操作,并且提高传输效率(⊃‿⊂) ⊂(⋂ヮ⋂)⊃

提醒:本教程的基础环境建立在低预算用户的配置上(普通电脑上所有硬盘,包括系统盘占用一定空间做种)

提醒:本教程使用qBittorrent,符合低预算用户的配置,不同torrent软件的配置不同

提醒:本教程不考虑复杂网络环境

预告:下篇教程教你兼容反吸血,Torrent私种,且不妨碍重做系统的双qB方案哦~
tr1_image1.png

下面正式开始(っ╹◡╹)ノ


为什么做种
  • 电脑24×7开机,有效降低了电脑所有部件的电压变化和次数,因此寿命得到延长
  • 可以不通过云盘,直接跨网络传输文件给别人而不被第三方服务限速。做种软件对网络环境的要求低,而且传文件几乎是服务器和客户机一对一传输,所以稳定性特别强,原生支持中断续传
  • 种子协议是少数可以占满带宽全速下载的服务,但前提要求就是得有人做种
  • 下种是获取做视频,音乐,CAD,CG用素材最可靠的方案,几十年前本地自产自销的日本动漫画就是靠着种子网络传播到外的
  • 做种相当于电脑后台跑了一个能做到比读SMART还要实时可靠的硬盘寿命检测器:
    • 24x7基于云端数据校验,即种子文件块的哈希值判断硬盘或传输信道故障
    • 比坏道扫描要及时,且不会因为负载所造成的延迟而误报坏道
    • 直接根据种子数据出错的频率的种类判断设备或硬盘的问题(见下)
  • 运营商故意照最高速度,而非按流量计费是有原因的,但浪费可耻,可耻啊
备份(⊙_◎)

    qBittorrent在%USERPROFILE%\Appdata\Roaming\qBittorrent%USERPROFILE%\Appdata\Local\qBittorrent中放有设置和种子备份。通过以下命令即可备份:

echo d | xcopy %USERPROFILE%\Appdata\Local\qBittorrent .\Profile\qBittorrent\data /y /v /e /h /c
echo d | xcopy %USERPROFILE%\Appdata\Roaming\qBittorrent .\Profile\qBittorrent\config /y /v /e /h /c

    如果安装了Bandizip,则可通过以下命令保存为压缩包:

Bandizip c -y -l:9 -root:Local ".\qBitorrent_backup.zip" %USERPROFILE%\Appdata\Local\qBittorrent
Bandizip a -y -l:9 -root:Roaming ".\qBitorrent_backup.zip" %USERPROFILE%\Appdata\Roaming\qBittorrent

    由于以上命令的保存位置是当前目录.\,所以建议保存为.bat在保存地点运行,或改下保存地点的路径。
    考虑到误操作的可能,恢复/退档的部分还是手动完成吧ヽ(・ω・ゞ)

文件分类

    基于qBittorrent的特性,本文给出一种高效的分类法:

  • 支持在下载的时候完成分类,而不是等到下载完
  • 通过路径名本身做分类可以让批量操作变得简单
  1. 右键顶部标题栏目, 选择仅展示以下标题(或保留当前设定,但启用'保存路径')
    classfication1
  2. 所有做种的盘里创建'.\资源类+公私种'格式的文件夹,然后移动这些种子
    • C:\BDRip公种,D:\EAC公种,D:\EAC私种,E:\BDMV公种,E:\GalGame私种这样
      classfication1
  3. 最后在qBittorrent里右键-->更改保存位置,这一步可以通过多选来一次性移动多个种子
    classfication3
  4. 在需要用到任何批量操作的情况下,点击标题栏的"保存路径"即可看到严格按照文件类型分类的种子,不需要的时候也可以单击标题栏的其它项目切换回来
此处公种,私种分类步骤关联到了下篇教程中的双qB反吸血方案,请勿跳过

端口转发与自定义端口号

    端口转发port forwarding(华为内部译作端口映射port mapping)有两个好处:

  1. 自定义端口号避开网络运营商给Torrent协议的默认端口号限速
  2. 路由器通过端口号可以降低路由延迟,设置网游的端口号也能降低其延迟

    路由延迟来源于ARM和x86架构的CPU能低成本的实现DHCP服务,RIP,OSPF等路由算法,但缺点是比ASIC电路,如三级交换机要慢很多,导致了延迟。而三级交换机的生产成本非常高,所以不适合一般用户。
    端口转发是路由器自古以来标配的功能,所以找不到的话,不是路由器档次太低,就是运营商把功能锁在管理员账号了

  • 转发功能要求做种电脑用静态IP地址。通过设置路由器DHCP范围,以及网卡MAC地址绑定就可以实现

缩小IP池
    在路由器的内网(LAN)设置中,将动态主机分配协议(DHCP)地址池的范围从x.x.x.1~254缩小到x.x.x.10~254。图中缩小到了128是为了以后利用子网255.255.255.128防止外人和租客浏览x.x.x.130的里NAS用(虽然买不起也懒得搭=_=)
portf1

电脑设静态IP地址
    动态IP地址方便了定时清理不常联网设备所占用的路由器内存。但做种电脑7x24h开机,且端口转发要求绑定单一IP地址,所以尽管没啥性能影响,还是有必要去控制面板\网络和 Internet\网络连接\更改适配器设置把IP地址改为静态。
图中.2.4的IP地址是预留一个192.168.2.3地址,不过也没多大意义就是了~

portf2

此处建议在电脑/手机上保存一个.txt文档,自己记下静态IP地址和电闸开关号的列表, 例如:

可用静态IP地址从1至9
192.168.1.1-----H268A------ISP送的路由器    (wifi密码)

192.168.2.1-----r7000p-----路由器
192.168.2.2-----RE305------wifi扩展器    (wifi密码)

192.168.2.4-----R5-2600----电脑
静态路由列表.txt

    此处运营商送的路由器是为了保留座机电话所以也开着( ^o^)ノ

添加端口转发
    路由器-->外部网络(WAN)-->端口转发(port forwarding)-->添加-->服务名称给自己看所以此处写Torrent,协议选Both,外部端口填个49152~65534的数,本地IP即做种电脑的地址

  • 范围相对默认的6881~6889,避免了运营商通过端口号QoS限速,或扫端口的问题

    上图是华硕路由器的设置页,但所有路由器(理应)都能设置,找找看总会有的○(・x・)

portf3

portf4

只填服务名称,通信协议,外部端口和本地IP地址就行了

    然后在qBittorrent里添加上刚创建的端口。图中号码不一样是因为下期教程要用到(/-(エ)-\)

portf5


判断硬盘问题
  • 首先,报错长这样,一般不看报错内容:

IOerr

  • 看到报错后运行一下校验:

IOchk

  • 如果校验后发现了损坏的文件块(开始重新下载,或完成度不再是100%),则说明硬盘出现了位翻转(bit-flip)硬件错误,如果一天内超过3次则说明硬盘寿命见底,应该立即下机
  • 如果校验后没有损坏的文件块,则说明是传输层工况不良,比如:
    • 数据线,尤其SATA线在多次升级电脑后被掰坏(检查线缆折角处是否膨胀变形)
    • 碎片整理以及Trim操作是,做种软件刚好访问了因整理而被移位的数据块
    • NVME盘被显卡的热风直吹,工作于70~120°C左右(会直接炸盘)
    • CPU与主板之间的接触问题(扣具设计,低温锡等)
    • 电脑主板,尤其南桥芯片周围的灰尘太厚
    • USB线材不合规(也会掉盘)
    • AMD在新平台上掉USB驱动
    • 硬盘盒或机箱内超过50°C

巨帧数据包

    这个功能是将最大传输包MTU从原来的1500kB提升到9000kB(不是bit),给内网(主要是NAS)里传输大文件扩大通道,通过略增延迟来提高传输速度(24~32Mbps或3~4MBps)+降低CPU占用的功能。
    目前中低端路由器可能不支持,且因为功能冷门,所以非企业级网络设备中,不同厂商设备的表现可能不一。根据网上已知资料,9kB的数据包的实际大小没有标准,所以一定要先更新芯片组驱动,路由器固件,NAS固件和网卡驱动再操作。确保所有环节都稳定支持

  • 华硕路由器可在内部网络(LAN)-->交换机控制-->巨型帧(Jumbo Frame)开启:

9kBframe1

  • 电脑的Realtek网卡可在高级-->属性[巨型帧]-->值9kB MTU开启,重启电脑:

9kBframe2

  • 电脑的Intel网卡可在PROSet-->适配器设置-->巨帧数据包(9014 Byte)开启,重启电脑:

9kBframe3

  • NAS的群辉系统里可在网络界面-->编辑-->手动设置MTU值里设为9000,重启:

9kBframe4

9kBframe5

由于功能冷门,目前群辉固件(7.0.1)有掉速问题,建议先从3000kB开始,一步步提高对比传输速度的变化

    接下来要测试NAS是否真的支持9kB的数据包,打开CMD输入以下命令:

ping -f -l 996 <NAS IP地址>
ping -f -l 1496 <NAS IP地址> (标准MTU 1500下最大)
ping -f -l 1996 <NAS IP地址>
ping -f -l 2996 <NAS IP地址>
ping -f -l 3996 <NAS IP地址>
ping -f -l 4996 <NAS IP地址>
ping -f -l 5996 <NAS IP地址>
ping -f -l 6996 <NAS IP地址>
ping -f -l 7996 <NAS IP地址>
ping -f -l 8996 <NAS IP地址>
ping内网(链路层/OSI-lv2)要求占4Byte来区分IPv4和IPv6,所以此处减4

ping外网额外占用了20Byte描述数据包信息,TTL,数据包分段设置,DSCP,应用层协议等信息,外加8Byte描述ICMP(ping)设置,所以一般最大只有1472Byte;非DSL情况下的拨号上网(点对点以太网协议PPPoE)还会占用8Byte记录信息,所以最大只有1464Byte

ping -f -l 1472 <外网IP地址或网址> (标准MTU 1500下最大)

-f代表数据包不分段(don't fragment)

注意:图中巨型帧的设置是放在"交换机控制"而非"路由控制"下的,因为这个功能本身就处于更低的链路层②和物理层①,路由芯片所在的网络层③仍然不会支持,所以>1496的ICMP包来ping路由器地址是不会成功的~


高性能上传

包括降低硬盘负载,做种机CPU-内存负载以及路由器负载;主要在提高带宽利用率,控制内存占用vs硬盘寿命,缓存管理等方式避免性能浪费,以及避免运营商线路超载断开的问题

超级做种模式:充分利用p2p网络,当多人同时下载(上传到多人)时进行协商,不同用户下载不同文件块并相互传输,最优情况下相当于全部下载对象融合为一人,适合做公种的优化
tr_image16.png

全选所有种子,选择"超级做种模式"

限制最大连接数:防止做种电脑在上传带宽用完时将系统资源(CPU,内存),以及网络资源(路由器,运营商)浪费在找新连接的优化;针对系统内存占用高,路由器内存占用高,运营商崩线路等问题。其次考虑到一机多用(做种时剪视频打游戏),则更要节约着用。

  • 全局最大连接数:达不到每torrent最大连接数的情况下,给其它种子查找连接数量的限制,建议设为每torrent最大连接数与每torrent上传窗口上限的商
  • 每torrent最大连接数每torrent上传窗口上限达到后的排队长度,目前推荐用(每torrent最大连接数 × 每torrent上传窗口上限 + 20)
  • 每torrent上传窗口上限:一次给多少人传
  • 配置这些选项的难点在于不能同时兼顾上传和下载,所以只能按照最高的速度(一般是下载)设置
    • 20Mbps考虑到多个种子并行上传,以及高带宽下载用户的出现概率,设68-12-4
    • 40Mbps设72-13-4
    • 100Mbps设90-14-5
    • 300Mbps设100-16-5, 或95-15-5
  • 如果运营商的网比较稳定,可以考虑搭配超级做种模式,拉高发送缓冲区下限,相连文件块下载,而关掉全局最大连接数的限制
  • 全局上传窗口上限:没必要限制,以上三个选项足以

tr_image17.png

在选项---连接---连接限制中,从每个Torrent上传窗口上限开始设

合并读写;操作系统缓存:通过将下载的多个16KB块在内存里合并起来一次写到硬盘里,而不是分别写入每个16KB的块,解决了qBittorrent磁盘占用明显高于uTorrent的问题,在MAC OS,硬盘盒,FAT文件系统的磁盘占用下降明显,下载速度的硬盘瓶颈降低。

  • 如果硬盘写入速度还是跟不上磁盘写入,可以将操作系统缓存位置改到速度更快的盘里

相连文件块下载(扩展数据块关联):要求优先把文件块相邻的4MB数据一并下载下来,组装再一并写入磁盘,降低写入损耗,提高硬盘寿命,可能略微降低下载速度的功能

发送分块上传建议:发送下载哪些文件块最好的建议,但官方文档没有说清楚,也没人能说清楚这个是干啥用的,所以猜测是不完全下载源的时候告诉下载方自己只上传哪些部分的说明

发送缓冲区上-下限:缓存里最少装入多少数据就可在下一趟发送,最大装入多少就停灌的水位线(buffer watermark)用于节约硬盘读写。一般设最少16KiB(连接速度达不到最少水位线的下载方会停掉?);上限不超过当今常用的文件块大小即可,目前设1MiB(1024KiB)

  • 硬盘都有4KiB对齐,也就是说空文件也最少占据4KiB大小,因此要将水位线设为其倍数
  • 这个选项主要是用来兑换硬盘寿命vs内存占用的

发送缓冲区百分比(缓冲区增长系数):传输频率,频率越高发送的包越多,对读取IO和网络的要求就越高,在500Mbps或更高的上传速度时可以设在200(二倍速)抢上传,考虑到公种下载方可能会受不了而丢包,所以建议设在默认50保证稳定性,或超级做种模式搭配80~100来方便分流

  • 注意qBittorrent中的磁盘缓存占用大小默认是自动,所以本文未根据这个数计算缓存量

TCP-UDP混合发送(混合模式策略):TCP比UDP单纯的数据包请求-传输的步骤多了数据包验证-重发功能,避免错误。不过做种软件自己就可以校验数据完整性(种子hash验证),因此对网络负担更小的UDP传输协议被用于视频网站这些高吞吐的网站,以及做种上。所以此处推荐使用UDP优先的策略

tr_image18.png

在选项---高级---libtorrent相关中设置

Intel® RST & AMD StoreMI:在Intel平台上利用傲腾闪存盘,或者AMD平台上利用<256GB SSD的机械硬盘缓存功能。主要用于治理硬盘休眠下唤醒所导致的延迟,以及降低频繁读写的老化问题。据说现在傲腾闪存盘很便宜,所以若有做种需求就可以考虑


成本控制

    购买NAS前先搞清楚需求,否则会导致花更多钱,同时降低传输速度的结果
    考虑到现有的硬盘又不是不能用,因此单纯把现有的盘换下来就很浪费;而选高端的2.5寸机械盘硬塞的话不是太厚就是稀有,还会遇到给SSD设计的硬盘架会产生共振的问题,因此本文只考虑买3.5寸的硬盘的扩容。方法有USB硬盘盒子以及NAS两个选项。照标准传输速度排序的话是:

  1. USB3 10Gbps + 以太网10Gbps(10GbE)
  2. SATA3, eSATA 6Gbps
  3. USB 5Gbps
  4. 以太网2.5Gbps(2.5GbE)
  5. 以太网1Gbps(1GbE)
  6. 以太网/无线网 100~500Mbps(500MbE 一般电力线扩展器上常见的速度)
  7. 电话线/ADSL/VDSL以太网 80Mbps(80MbE)

如果照成本排序的话是这样子的:

  1. SATA3 6Gbps改装机箱前面板以实现SATA电源和数据线外插(需动手能力)
  2. USB3 5Gbps 硬盘盒
  3. SATA3 6Gbps8盘位电脑机箱,替换当前机箱
  4. 1Gbps 1~2盘NAS
  5. 1GbE 淘汰办公电脑(需要清灰)
  6. USB3/eSATA 4~5盘位硬盘盒
  7. 2.5GbE 1~2盘NAS
  8. 1GbE 二手2~4盘NAS
  9. USB3.2 10Gbps 4~5盘RAID硬盘盒
  10. 1GbE 2~4盘NAS
  11. 10GbE 二手电脑+网卡
  12. 2.5GbE 2~4盘NAS
  13. 2.5GbE 8盘NAS
  14. DAS/SAN

简单的说,成本差异来自实现连接的协议和设计用途差异,导致NAS要堆更多芯片,增加更多用途的结果;而USB硬盘盒只要和更低层的USB控制器通讯就能用了。而且考虑到2.5Gbps的网卡还没普及到二手电脑上,所以单独为了2.5Gbps的NAS买网卡,再升级路由器就很划不来

不过相比NAS,硬盘盒分高低端,多了天生散热差的塑料//亚克力材质,电源纹波(电压电流抖动)导致文火炸盘,以及低价硬盘盒只能给USB2.0 480Mbps的坑。解决方法也简单,就是看价格是否超过成本,或者看专业些评测,不要专门挑打折产品,给数据中心盘//企业盘加风扇,把硬盘盒放在通风好//阴冷的地方就可以避很多坑

  • 得了PTSD的用户会专门去买二手笔记本电源,明纬GSM系列电源哦~

SSD
  • 由于之前提到的做种对实时发现硬盘或传输信道问题的好处,所以固态硬盘同样推荐拿一部分空间用来做种
  • 由于读取操作对固态硬盘的损耗远小于写入,所以长期做的种子还可以考虑用QLC,PLC,甚至更差的颗粒,插在主板多余的SATA接口上,随便一放就行=_=

那么就这样,下篇教程才是重点哦~

打赏信息

在线丢人,求个打赏,支持一下T_T
pp_tip_qrcode.png

这玩意年收入6人民币