wsl2+vcsxsrv 终端延迟的问题。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
Evovil
0.01D
V2EX    程序员

wsl2+vcsxsrv 终端延迟的问题。

  •  
  •   Evovil 2022-05-11 14:16:47 +08:00 2536 次点击
    这是一个创建于 1256 天前的主题,其中的信息可能已经有所发展或是发生改变。

    遇到个很奇怪的问题当使用 wsl+vcxsrv 的时候

    我用的是 i3 终端是 urxvt 在终端输入字符的时候肉眼可见的延迟,超级不爽。

    但是!

    当我在旁边打开个 chrome , 然后跑个刷新率测试网页 比如这个 https://www.testufo.com/framerates#count=6&background=none&pps=1440

    终端就没有延迟了丝般顺滑,把网页关掉,延迟又来了,打开又没了。。。 初步怀疑是终端的刷新率太低?

    vcxsrv 的 xrander 似乎不能设置 screen 的刷新率。

    有大佬知道怎么解决这个问题吗?

    6 条回复    2022-05-13 15:39:21 +08:00
    ruanimal
        1
    ruanimal  
       2022-05-11 17:10:41 +08:00
    不是有 wslg 了吗
    cnbatch
        2
    cnbatch  
       2022-05-11 18:07:27 +08:00   1
    正如楼上所言,换用 WSLg 。

    x11 转发最初不是为图形界面而设计的,所以一旦转发图形界面就会有效率问题。
    https://superuser.com/questions/1217280/why-is-x11-forwarding-so-inefficient

    我个人发现,在 4K 显示器 + x11-forwarding 的时候,只要浏览网页时滚动速度一快起来就会感觉到画面掉帧。分辨率越高,效果越明显。

    而浏览器跑刷新率正好会让 x11 转发出极为大量的绘图指令和图像数据,终端操作的图形指令流混在其中。
    比喻起来的话,效果大约是原本的小水管浇水,在浏览器跑刷新率时变成了路边消火栓喷水。

    如果还是想继续用 x11 转发,那么可以试试关掉 TCP 的 Nagle 算法(以 PuTTY 为例,Connection 节点就有这个选项),也许会好一点。
    更详细的设置可以参考美国布鲁克黑文国家实验室的推荐设置
    https://drupal.star.bnl.gov/STAR/comp/sofi/facility-access/ssh-stable-con
    cnbatch
        3
    cnbatch  
       2022-05-12 19:16:28 +08:00
    尴尬,有个地方稍微说得不太完整。

    "x11 转发最初不是为图形界面而设计的,所以一旦转发图形界面就会有效率问题。"

    这句应该这样讲

    "ssh 转发最初不是为图形界面而设计的,所以一旦转发 x11 图形界面就会有效率问题"


    我当时只顾着看 PuTTY 的 Connection 各项设置都把自己搞糊涂了。


    然后我又意外发现开启 /关闭 SSH 压缩原来也会对图形性能带来影响,估计是因为数据量大并且吃 CPU 性能,如果 CPU 太忙,或者 CPU 单核性能不太好的话,一压一解双重负担造成 X11 转发性能下降。

    以快速刷页面甚至看视频为例,开启压缩的表现是,幻灯片滚动得比较快一点,但键鼠操作会有一点迟滞感,同时 CPU 风扇转得挺厉害;关闭压缩后的表现是,依然还是幻灯片,但出现了窗帘效应(画面刷新从上往下滚),键鼠响应是快了点但没什么用,我按个右键时,菜单上部确实很快就出现了,但接下来的画面却是幻灯片式刷出来……

    我是用公司给的旧电脑( X260 ,i5-6300U + 16G RAM )连接 4K 显示器做试验的,Win10 20H1 。
    (要不是我工作用的台式机才 8G RAM ,肯定不会去领取这种电脑。对,公司够抠门的,我自己家的电脑再烂都不会这样)
    今天已经退了回去,重新申请在公司服务器上给我开个 Linux 虚拟机。

    进一步证实 SSH 确实不适合转发图形界面。
    Evovil
        4
    Evovil  
    OP
       2022-05-13 10:58:18 +08:00
    @cnbatch 其实你说的是对的,x11 并不是为了图形界面转发而设计的(或者说不完全是)
    尤其是桌面控制器 比如 i3 xfce 等 这类有很多 bitmaps/textures 的性能会非常的差。
    x11 转发一些小和比较少 textures 的应用程序 ui 会比较好。
    转发桌面或者浏览器类应用 rdp/vnc 才是首选,但是在 rdp/vnc 的压缩和延迟上如何达到平衡是个挺困难的问题。

    这类方案其中一个就是 parsec , 通过 h.264 h.65 配合硬解,牺牲一部分画质的情况下达到高帧率 60fps 的转发。不过在 linux 没有 host

    x11 转发个 QT 应用,vscode 或者转发个 terminal gvim/neovim 这类的是很好用的.
    kernel.org 对 x 也并不怎么上心。
    可能对他们来说用 x 的都是异端
    Evovil
        5
    Evovil  
    OP
       2022-05-13 10:59:12 +08:00
    顺带我的问题解决了。。
    是 windows IME 挂入 vcxsrv 的时候的一个问题
    把 IME 切换到 English (不是 pinyin 的 english )
    就可以解决。
    cnbatch
        6
    cnbatch  
       2022-05-13 15:39:21 +08:00
    @Evovil 想不到连输入法都能造成影响

    感觉 SSH X11 这事有点玄学的味道了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1332 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 17:13 PVG 01:13 LAX 10:13 JFK 13:13
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86