找回密码
 加入我们
搜索
      
查看: 10898|回复: 32

[存储] 纯固态环境下qB卡I/O该怎么处理?

[复制链接]
发表于 2023-10-9 15:28 | 显示全部楼层
不要用libtorrent/Qb的Windows版本,单核围观的问题是无解的,这个是操作系统层面的问题。windows无法把应用程序线程映射为真实线程,只能映射为用户线程。

可以看下这个issue:
https://github.com/arvidn/libtorrent/issues/3005
发表于 2023-10-9 19:02 | 显示全部楼层
lafir 发表于 2023-10-9 18:28
不是CPU卡,是硬盘卡100%,其他的上网打游戏看视频等等一切正常

一样是这个问题,卡SHA校验了。
发表于 2023-10-10 09:52 | 显示全部楼层
本帖最后由 sxqt 于 2023-10-10 10:01 编辑
ysc3839 发表于 2023-10-9 20:57
这个issue中哪里提到了上述说法呢?
再者我从没听说过Windows有这种问题,程序自己实现的用户模式“纤程 ...


https://github.com/arvidn/libtor ... uecomment-396994211

阻塞主要是SHA的问题,导致SHA校验卡在单CPU中。你可以理解成程序的多个IO线程被调度给了同一个CPU,导致程序IO线程疯狂阻塞。libtorrent的作者arvidn赞同了这个说法。

而且据我所知,哪怕是现在的版本下,还是有很多反馈。win下的libtorrent还是会出现单核围观和100%磁盘占用的问题,linux下的CPU就非常平均。
发表于 2023-10-10 10:00 | 显示全部楼层
本帖最后由 sxqt 于 2023-10-10 10:09 编辑
ysc3839 发表于 2023-10-9 20:57
这个issue中哪里提到了上述说法呢?
再者我从没听说过Windows有这种问题,程序自己实现的用户模式“纤程 ...


一定程度上你也可以说是程序本身的问题,其它程序很少像torrent一样需要这么长时间的SHA阻塞。像这种特殊情况,大公司一般都是自己起项目,比如Cloudflare放弃Nginx,自己用rust写了Pingora。但是libtorrent这种社区项目肯定就没有这样的能力了。
发表于 2023-10-10 10:55 | 显示全部楼层
本帖最后由 sxqt 于 2023-10-10 11:00 编辑
ysc3839 发表于 2023-10-10 10:33
boost asio是支持多线程的,包括在Windows下也支持,只需要用多个线程执行io_context::run()即可。当一个 ...


不是一般意义上的卡IO,而是libtorrent中IO和SHA在同一个线程中,长SHA校验导致IO阻塞。

你如果非要觉得是程序设计的问题,可以去提交代码去解决。用户层面我只能说,win下的libtorrent问题很多,建议使用linux版本。

评分

参与人数 1邪恶指数 +10 收起 理由
Juzi丶 + 10 正解

查看全部评分

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

Archiver|手机版|小黑屋|Chiphell ( 沪ICP备12027953号-5 )沪公网备310112100042806 上海市互联网违法与不良信息举报中心

GMT+8, 2025-5-2 12:34 , Processed in 0.008983 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

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