1. 我在本地客户端做了一个测试:
本地客户端(若没有以+iglx启动服务器)默认直接硬件加速渲染,运行glxgears,cpu占用比较低。当我更改为直接软件渲染,cpu飙升至200%,且识别的openGL显示为vmware。到这里我搞明白了为什么昨天在 x2go中为什么识别的openGL是vmware,因为在x2go中就是做的远端软件渲染,这也是为什么远端客户端cpu飙高的原因。
2. 实验:
(1):
173主机拥有nvidia显卡,通过ssh -X 连接到171主机,glxinfo : direct rendering : No, OpenGL rendering string: GeForce GT 1030/PCIe/SSE2,运行glxgears测试CPU占用和网络流量,171端glxgears的CPU占用较低,173Xorg的CPU占用相对来说比较高,而此时网络上的流量为3-5MB/s。
(2):
当添加环境变量export XXX/libgl-xlib:${LD_LIBRARY_PATH}后(这是自己安装的一个mesa,export后提供了此mesa的libGL.so库的路径),glxinfo : direct rendering: YES ,openGL vender : vmware,OpenGL rendering string: llvmpipe,也就是在171端做直接软件渲染。测试,171端glxgears的CPU占用彪高至140%左右(相比于之前间接硬件渲染glxegars才为10-30%左右来说已经相差太多)。173端Xorg的CPU占用相对来说变得小很多,(而此时网络上的流量达到了70-80MB/s)。
这两个实验验证了我的想法:
x2goclient连接x2goserver后,识别到的openGL驱动是vmware,而且direct rendering : yes,OpenGL rendering string : llvmp