渲染任务运行中 cpu 100%的时候,对ping机器的时延 会有影响吗?
理论上是有一定关系的,cpu 100%时,不丢包就是好的了,延迟变大或存在一定的丢包率是符合预期的
渲染进程跑满CPU的时候,其他进程慢,网络业务可能会存在用户态收包缓慢 -------> 触发windows的特殊逻辑hold了网卡驱动收包buffer ------> 网卡驱动没有可用buffer放进收包vring进而丢包。
(资料图片)
当用户态收包慢的时候,网卡驱动预分配的Buffer可能会被AFD持有最多1秒的时间, 在这断时间内,buffer没法被网卡驱动用来收包,只有等到用户态进程收包,或者1秒后Timer超时,Buffer才会还给网卡驱动。如果用户态收包缓慢,被AFD Timer临时持有的Buffer过多,并且这段时间外部又持续有包进来,就可能出现丢包现象。
XP、2003都没有这个优化逻辑,看了2008-2022的情况,最早出现在win2008,默认开启且无法关闭,Win2012 ---> 2022默认开启但可以通过注册表控制:
这个全局变量有对应符号,微软的变量命名也很直白:AfdDoNotHoldNICBuffers。
如果为true,AFD模块里面buffer timer相关的所有逻辑都不会执行,等同于回退到xp/2003的实现。
可以通过在注册表Services\AFD\Parameters路径下添加一个名为DoNotHoldNicBuffers的参数来控制开关:
值为1表示不允许占用网卡驱动Buffer,也就是彻底禁用掉上面说的内存拷贝优化机制;
值为0表示允许;
如果注册表中不存在这个参数(默认不存在),则在afd.sys加载时会判断当前系统版本,如果是Server则启用优化,普通桌面版则禁用。
方案:执行这句命令后重启机器,在CPU几乎打满的场景中,可以将100%丢包现象缓解为包延时变大,但不会丢包。
reg add "HKLM\SYSTEM\CurrentControlSet\Services\AFD\Parameters" /v "DoNotHoldNicBuffers" /d 1 /t REG_DWORD /f
最好是提前把这句命令做到镜像里,即关机做镜像前已经执行过这句命令。
如果要显著缓解,最好是不要用掉全部vCPU,参考:https://cloud.tencent.com/developer/article/2240284
愿望达成!6月20日,济郑高铁(濮阳至郑州段)正式开通运营,河南即将成为全国米字形高铁第一省。岳云鹏老家通高铁啦,老乡欢迎常回来看看
日前,河南省人民政府印发《河南省贯彻落实稳住经济一揽子政策措施实施方案的通知》(下称《方案》),公布任务清单,共涉及十个方面155项
为加快建设一县一省级开发区,推进三化三制改革,将全省开发区建成经济建设的主阵地、主战场、主引擎,按照全省能力作风建设年活动总体安排
6月16日,记者获悉,省政府办公厅印发《关于深化公证体制机制改革促进公证事业健康发展的实施意见》(以下简称《意见》),从积极拓展创新
6月18日晚,从河南银保监局获悉,针对近期个别村镇银行线上服务渠道关闭问题,河南银保监局、河南省地方金融监管局有关负责人表示,各级金
X 关闭
X 关闭
6月30日,省委书记楼阳生到河南省视博电子股份有限公司调研平台建设、服务项目、技术研发等情况。(记者 董亮 蔡迅翔 摄)6月30日,省委[+更多]
6月30日上午,河南省文物考古研究院新院项目开工仪式在郑州举行。国家文物局副局长关强、副省长何金平出席开工仪式,并共同为项目奠基。河[+更多]
免费的也许是最贵的。接到免费茶艺培训,到店就送精美礼品的卡片,近日,有好奇心的老年人走进了郑州某某斋生活艺术馆。馆内,古玩、字画、[+更多]
6月30日,省文旅文创融合战略工作专班会议在郑州召开,深入学习贯彻习近平总书记在中共中央政治局第三十九次集体学习时的重要讲话精神,学[+更多]