自动PT工具参数调优

工具:https://github.com/nickfox-taterli/goseeder

做这个工具的初衷是为了不让自己众多小鸡吃灰,众多的配置参数为了解决一些问题,先从node配置部分讲起,node配置的是PT站的信息获取,其根本是指导如何抓取资源.目前只考虑NexusPHP情况,配置示例如下.

    {
      "source": "pt.btschool.club", // (请在正式配置中不要包含此注释) => 网站域名
      "passkey": "21232f297a57a5a743894a0e4a801fc3", // (请在正式配置中不要包含此注释) => 密钥
      "limit": 10, // (请在正式配置中不要包含此注释) => 每次抓取数量,过多可能会D挂PT站
      "enable": true, // (请在正式配置中不要包含此注释) => 如果为false,则这个配置暂时不用
      "rule": {
        "seeder_time": 86400, // (请在正式配置中不要包含此注释) => 该站有HR,限制最小做种86400秒
        "seeder_ratio": 1.2, // (请在正式配置中不要包含此注释) => 该站有HR,限制分享率1.2
        "speed_limit": 10.0 // (请在正式配置中不要包含此注释) => 该站限速10.0MB/s
      }
    }
  • limit代表每次抓取的个数,一半抓取10个已经能满足大多数网站的变化,毕竟每5秒能上传10个种子的也不是一般的网站,如果网站更新速度很快,比如每5秒可以更新100个种子,则可以调整得更大,但是很容易因为你调很大不小心把PT站给CC挂了.所以不是越大越好.
  • seeder_time 和 seeder_ratio 是配合HR食用的,如果网站没有HR,就可以两者都设置为0,比如BTSCHOOL开启的HR规则是要不上传20小时,要不做种率达到1.0,我这里这么设置意思是至少做种24小时或做种率至少1.2才可以删除种子,当然,还要避免因为自己的VPS超流量导致HR挂了,所以最好人工偶尔上去检查.不能完全依赖这个功能.
  • speed_limit 是限制上传下载速度,有些网站会对此限制,一旦超速就是警告,设置了限速,就算挂在10G口机上,也不怕超速了.最好设置略低于网站限制的速度.

而服务器部分得配置,需要充分考虑到提高刷得效率,避免VPS的TOS等等,需要精细地去调整,如果乱填起不到很好的效果,甚至可能长期处于VPS的警告,死机状态.

    {
      "endpoint": "http://173.82.120.1:8080", // (请在正式配置中不要包含此注释) => QB服务器地址
      "username": "admin", // (请在正式配置中不要包含此注释) => QB用户名
      "password": "adminadmin", // (请在正式配置中不要包含此注释) => QB密码
      "remark": "Cloudcone (250G)", // (请在正式配置中不要包含此注释) => 服务器别名
      "enable": false, // (请在正式配置中不要包含此注释) => 如果false则不使能
      "rule": {
        "concurrent_download": 1, // (请在正式配置中不要包含此注释) => 同时下载限制:1个
        "disk_threshold": 10.0, // (请在正式配置中不要包含此注释) => 10GB
        "disk_overcommit": true, // (请在正式配置中不要包含此注释) => 是否可超量安排任务(如果盘小推荐关闭)
        "max_speed": 50.00, // (请在正式配置中不要包含此注释) => 当服务器当前速度大于50MB/s时不再安排任务,避免TOS.
        "min_alivetime": 3600, // (请在正式配置中不要包含此注释) => 种子在服务器最短存活时间3600秒,小于这个时间即使空间不足也不会删除.
        "max_alivetime": 86400, // (请在正式配置中不要包含此注释) => 种子在服务器最长存货时间86400秒,大于这个时间的不活跃内容会被自动删除.
        "min_tasksize": 1.0, // (请在正式配置中不要包含此注释) => 添加的最小种子1GB,太小的话IO太密集.
        "max_tasksize": 200.0,// (请在正式配置中不要包含此注释) => 添加的最大种子200GB,太大话刷的效率低.
        "max_disklatency": 10000 // (请在正式配置中不要包含此注释) => 磁盘延迟大于10000就不要添加种子,添进去怕也下不动..
      }
    }

最重要的还是调整rule,这关乎于这个VPS怎么安排任务.

  • concurrent_download限制并行下载数,像有人把concurrent_download设置到10000,这样你觉得你的VPS真能承受同时10000个任务下载嘛?另外所有种子刚添加进去都是没速度的,毕竟做种的人还没上线,而如果同时添加了很多任务,当做种的大家都上线之后,就会做成下行完全跑满,甚至超速,而因为带宽已经跑满,而每个种子本身速度又不满,最后就是慢人一步.所以应该把控这个数量,使得他占用你VPS的大部分带宽,而不是因为同时任务过多总是吃满.
  • disk_threshold 是清理阈值,一旦磁盘可用空间低于这个数值,会触发清理功能,避免不能继续下载,有人设置为0,那么0字节时候清理,那么你正在下载的任务就卡住了啊,所以这个数值应该考虑在一个合理的范围,比如服务器5分钟内最多可以填5G数据,那么预留5G.
  • disk_overcommit 表示允许超量提交任务到磁盘,一般来说,由于一部分任务正在下载,一部分任务又会因为过老而删除,所以新增任务的时候不会考虑添加此任务后是否会超出硬盘剩余空间,除非磁盘太小,否则都应该打开这个开关.
  • max_speed 当速度大于这个数值时候不要再添加任务,如果速度已经很快,再添加任务要不触发TOS,要不带宽饱和,又和concurrent_download过大一样的副作用.
  • min_alivetime/max_alivetime 前者规定了如果一个种子添加到任务队列,即使他完全没速度,没人做种,也会等min_alivetime秒才删除(防止发种的人迟迟不做种),后者规定如果要清理种子的时候,遇到种子存活超过min_alivetime才会被清理,前者过小可能导致漏种,毕竟可能对方只是发布没及时做种,过大则队列可能会很满,而导致后续任务不好添加,后者过大可能会导致清理经常失败,过小则上传可能降低.
  • min_tasksize/max_tasksize 添加的种子大小,小文件种子会有很密集的IO,大文件可能没人下载,VPS只添加介于min_tasksize – max_tasksize尺寸的种子.
  • max_disklatency 如果磁盘延迟超过这个数值,则不要继续添加种子,可能会因为密集IO导致封号,Virmach无比设置在500以下.

实例解说:

这是个100Mbps端口的机,这里上传已经满了,虽然磁盘空间还有不少,但是如果继续添加种子,也抢不到上传,因为目前上传已经饱和了,当然下载饱和时候也不添加,饱和之后加多少任务,意义不大,毕竟VPS流量有限,是用来刷的,不是用来浪费的.

这是一个1Gbps的机,明显磁盘空间还有很多,速度也远远没满,所以concurrent_download可以适当加大,目前来说,下载队列中有19个任务,只要不是来个同机房盒子,都只有这个速度,只要不是来个同机房盒子,都不会有多大问题.

这是Virmach的小鸡,虽然只有1个下载任务,而且速度不快,但是磁盘延迟很大,所以也不会给他塞任务,不然可能会触发TOS,这里的max_disklatency我设置到500,一般来说也同时下载不了几个任务.

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注