pt吧 关注:228,814贴子:11,866,399

关于机械硬盘卡io的原因及解决方法的探讨

只看楼主收藏回复

本来打了一堆,结果忘记保存了。算了,直奔主题吧。
先说解决方案:
将全局连接数限制到200或以下
本人是qb4.5.5 目前的限制策略是 全局连接200 单种连接40 全局连接40 单种8 tr也可以参考
实测可以跑满我的1000/100带宽的上传和下载 且不会出现下载速度过山车式波动和远程访问失联。大家可以参考一下。
楼下我闲的时候跟大家分享我的经验和理解。


IP属地:河南来自Android客户端1楼2023-10-27 18:18回复
    首先需要明确一点的是 卡io与否 跟你主机性能的关系不大 一般跟你硬盘的随机读写io性能有关 根据我查到的资料 7200转机械硬盘的每秒随机读写io次数在差不多100
    再来说说连接数与机械硬盘io的关系
    不知道大家观察过自己的某些种子没有 连接了很多用户 但是实际有数据的只有一部分 我称之为有效连接,而其实有效连接中一般更多的是一些低速连接(几k 几十k这样) 这些有速度的 无论快慢 都会占用一次io读写
    简而言之 过高的连接数导致了过多的有效连接 进而占用了每秒io次数 引起了排队


    IP属地:河南来自Android客户端2楼2023-10-27 19:11
    回复
      2026-08-01 12:06:13
      广告
      不感兴趣
      开通SVIP免广告
      二楼拿下


      IP属地:广东来自手机贴吧3楼2023-10-27 21:35
      回复
        加一块固态缓存就行了,以前一直卡io,加了个2t固态可以跑满千兆不卡


        IP属地:江西来自Android客户端4楼2023-10-27 21:59
        回复
          一般来说解决卡 io的问题就是三个方面
          1.连接数
          2.缓存
          3.固态
          其中固态肯定是直接就能解决问题的 用固态作为临时盘 下完自动转移到机械盘对应路径 qb是支持这样设置的 但是我个人不太喜欢这样 1来是没必要 机械硬盘控制连接数并不会导致各方面被掣肘 导致上传下载受限 这个我随后会说 2来固态大了太贵 小了我万一兴起下个大包或者一次性添加多个任务 超过固态容量怎么说
          缓存这方面我没咋研究 不过这方面应该是帮助有限
          所以我主要说连接数这方面


          IP属地:河南来自Android客户端5楼2023-10-27 22:28
          回复
            临时下载目录设在固态 最简单的办法


            IP属地:江苏来自iPhone客户端6楼2023-10-27 22:35
            回复
              首先估计很多人可能还看不太懂qb任务列表里的 种子 和 用户 这两项
              种子:已完成且正在做种 连接上的(总共已完成的)
              用户:未完成下载正在下载的 连接上的(总共目前在下载的)
              这两个中的括号外边的部分共同组成了这个种子全部的连接数
              就像我刚才说的 连接数并不代表就会走数据传输 如果你观察过你种子的连接列表 你会发现 假设100个连接 可能只有三四十个有数据 而这其中可能只有十来个在高速传输 或者更少 即使你提高连接数 也无非是增加了有数据的连接数 但是大多都是低速的 高速的基本还是那么多 对提升速度没什么用处 反而大大增加了io占用


              IP属地:河南来自Android客户端7楼2023-10-27 22:45
              回复
                我之前一直不明白为啥会卡io 后来也发现下载任务较少时好像没怎么卡过 所以我就去限制任务队列 只允许同时三个任务下载 其余的要排队
                后来听群友说了以后才知道去哪里看是否卡io 然后就发现卡io的时候 连接数都较高 这时候我才明白为啥我限制同时任务数就不怎么卡io了 因为间接的降低了连接数 所以我就测试什么样的数值较为合适 发现200较为合适 但是也并不是说就一定不会卡io了 当时我设置的是200/80/80/16 然后我专门挑选了几个老种 那种一千多人在做种 无人在下载的 因为这种种子会给我带来巨大的有效连接 结果果不其然的卡io了 远程直接失联了
                所以我把单种连接数从80调整到了40 这样可以让连接性过好的种子被限制有效连接 同时40又足以让日常种子满足下载上传 做到一个平衡


                IP属地:河南来自Android客户端8楼2023-10-27 22:55
                回复
                  2026-08-01 12:00:13
                  广告
                  不感兴趣
                  开通SVIP免广告
                  馒头单个种子连接数设置成100,总连接数看你下载几个种子抢上传,一般我都只下载一个种子,最高不要过500,
                  100的上传带宽是可以跑满的,不卡io,以前我也是没有管过连接数,直接就是拉满,最后导致就是qb,TR,Ui都卡的要死,想远程连接个东西要卡好久,发现盘1利用率直接就是100%,它能不卡吗?


                  IP属地:湖北9楼2023-10-27 23:05
                  回复
                    绑定


                    IP属地:山东来自Android客户端10楼2023-10-27 23:09
                    回复
                      再来说这个所谓的上传窗口 首先我们要知道 他指的是提供给连接数中 用来上传给别人的有效连接数量 这个决定了 你最高能建立几个有效上传连接
                      家宽一般上传在30-50m 实际上传速度基本就是4-7MB 而如果不做限制 那么当你有约一二十个个种子在上传 或者某个热种在以很多的有效连接在上传 这时候的io占用也是不可小嘘的 而实际上呢 4-7MB的上传 但凡有三两个每秒1-3MB的下载链接就足以吃满了吧


                      IP属地:河南来自Android客户端11楼2023-10-27 23:42
                      回复
                        不知道你们有没有观察过 tr的默认连接数是全局200 单种50 全局上传窗口没有限制 但是单种上传窗口是14(这个需要到配置文件里修改)
                        qb则是500/100/8/4 相对来说 qb对连接数更宽容 对上传窗口则更严格
                        做个大胆猜测 或许这就是所谓qb抢上传厉害的一部分原因
                        毕竟软件应该还是更趋向于连接更粗一点的peer吧


                        IP属地:河南来自Android客户端12楼2023-10-27 23:48
                        收起回复
                          学习了


                          IP属地:天津来自iPhone客户端15楼2023-10-28 05:59
                          回复
                            在tg群里和大佬讨论过了,刷流用固态就行,如果用机械,单种连接数设置为10以内,不会卡io,也基本不影响速度。


                            IP属地:浙江来自Android客户端16楼2023-10-28 08:17
                            收起回复
                              2026-08-01 11:54:13
                              广告
                              不感兴趣
                              开通SVIP免广告
                              绑定


                              IP属地:贵州来自Android客户端17楼2023-10-28 08:47
                              回复