GPU实例使用--单实例上运行Linux桌面多开解决方案

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: 客户前期使用的旧异构实例面临更新换代,新的推荐异构实例性能更强,客户的业务软件运行时,GPU使用率不高,需要探索多开方案,提高GPU使用率,提高实例性价比。

1. 需求背景

客户前期使用的旧异构实例面临更新换代,新的推荐异构实例性能更强,客户的业务软件运行时,GPU使用率不高,需要探索多开方案,提高GPU使用率,提高实例性价比。

此外,客户的业务软件多开后,必然涉及到多开的每个业务软件分别给不同的用户使用的场景,因此,在一个桌面中多开业务软件的方案不可行(操作及画面显示均互相冲突),需要探索整个Linux桌面多开的方案。


2. Linux图形应用容器化

在不考虑桌面多开时,参考阿里云官方文档Linux图形应用最佳实践,Linux图形应用容器化时,有两种方案:

1.在Host(注:此处的Host是相对于容器来说的,容器为Guest,下文不再作重复解释)上运行X Server:Host上安装并启动Xorg,将X Server的unix socket目录(/tmp/.X11-unix)映射到容器中并设置好权限,容器中设置好DISPLAY环境变量后,即可通过共享的unix socket向Host上的X Server发送图像渲染命令。此方案下,如果要查看显示结果,可以在Host上运行x11vnc,然后使用VNC Client软件连接。该方案优缺点:

a.优点:多个容器可以同时共享Host上的X Server;

b.缺点:多个容器的图像都是渲染到同一个X Server上的,互相之间会遮挡影响;

2.在容器中运行X Server:Host上只需要安装GPU驱动,不做任何配置,在容器中安装并运行Xorg。该方案优缺点:

a.优点:Host不用做任何配置,定制修改都在容器中,便于保存和迁移;

b.缺点:GPU是单个容器独占的,不能多个容器共享;


3. Linux桌面多开方案

3.1. 单显卡上启动多个X Server进程实现多开

测试了三种方案:

1.在Host上运行多个X Server进程;

2.在Host上和容器中同时运行X Server进程;

3.Host上不运行X Server,在多个容器中同时运行X Server进程;

均不成功,后启动的X Server会接管硬件,使得后启动的X Server画面正常,而先启动的X Server画面黑屏。

3.2. Multiseat方案

Multiseat方案(MultiseatXMultiseatOneCardMultiseat - X.OrgMultiSeatTerminal – X.orgMultiseat - Gentoo Wiki)是在多个显卡或者单个显卡的多个输出的基础上,实现多个独立桌面的方案,它受硬件的限制较大,多开数量有限,配置也相对复杂,暂不考虑该方案。

3.3. Xephyr方案

Xephyr是一个嵌套的X Server,它本身运行在X Server中,对X Server来说它是一个应用程序,同时,它自身又是一个X Server,为其他的应用提供服务。

Xephyr方案的最大缺点是,目前不支持GPU硬件加速。

3.4. Xpra方案

XpraXephyr类似,是嵌套的X Server,主要区别是,Xephyr会将它提供的嵌套X Server作为一个窗口显示在当前X Server中,而Xpra倾向于提供一个虚拟的X Server环境,将显示转发到客户端去。参考:What's the difference between Xpra and Xephyr?

    和Xephyr一样,Xpra的最大缺点也是,不支持GPU硬件加速。

3.5. VirtualGL方案

3.5.1. 方案描述

VirtualGL官方文档)是一个为Linux/Unix远程显示软件启用OpenGL硬件加速的开源工具。

通常,一个Linux/Unix OpenGL应用程序会发送它所有的(包括2D和3D)图形渲染命令和数据到一个X Server。VirtualGL通过在运行时将动态共享对象    (Dynamic Shared Object, DSO) VirtualGL Faker预加载到OpenGL应用程序中来实现将3D命令和数据从OpenGL应用程序重定向到应用所在服务器中的GPU。VirtualGL Faker拦截并修改某些GLX、EGL、OpenGL、X11和XCB函数调用,将OpenGL渲染从3D应用程序的窗口转移到VirtualGL在GPU显存中创建的离屏缓冲区(off-screen buffer)。当3D应用程序交换OpenGL绘图缓冲区或刷新OpenGL命令缓冲区以表示它已完成渲染帧时,VirtualGL从离屏缓冲区读取渲染好的帧并(通过X Proxy,比如TurboVNC)将它传输出去。

使用VirtualGL时,GPU可以给多个用户共享。

VirtualGL方案的很大一个优点是它的非侵入性。VirtualGL监视一些X11命令和事件,以确定窗口何时被调整大小等等,但它不会以任何方式干扰X11 2D绘图命令到X Server的传递。在大多数情况下,VirtualGL也不会干扰OpenGL命令到GPU的传递。VirtualGL只是强制将OpenGL命令传递给应用服务器上的GPU(通过3D X Server或与GPU的EGL设备),而不是传递给2D绘图命令的X Server(2D X Server)。

VirtualGL内建支持两种图像传输协议(还支持协议扩展),VGL传输协议和X11传输协议。

3.5.1.1. VGL传输协议

当2D X Server不在应用程序服务器上时(比如2D X Server运行在客户端机器上),最常使用VGL传输协议。VirtualGL在专用的TCP socket上使用自己的(VGL)协议将渲染的帧发送到客户端,VirtualGL客户端将帧解码并将它们组合到适当的X窗口中。VGL传输协议可以以未压缩的形式(RGB编码)传输帧,也可以使用high-speed JPEG编解码器实时压缩帧。它还支持立体图像对的交付,可以通过VirtualGL客户端将其重建为立体帧。整个框架如下图所示。

1.png



图 1 VirtualGL使用VGL传输协议框架图

3.5.1.2. X11传输协议

X11传输协议本身只是使用XPutImage()或类似的X11命令将渲染好的帧绘制到适当的X窗口中。在使用X11传输协议时,VirtualGL本身通常不执行任何图像压缩或编码。相反,它依赖于一个X Proxy(比如VNC)来编码帧并将它们交付给客户端。由于使用X Proxy不需要通过网络发送X11命令,因此在高延迟或者低带宽网络上使用VirtualGL时推荐使用X11传输协议。整个框架如下图所示。

2.png

图 2 VirtualGL使用X11传输协议框架图


相对来说,VGL协议设置更复杂(客户端需要同时安装2D X Server和VirtualGL Client),且通过网络传输X11命令,受网络影响更大,因此本文后续选择使用X11传输协议。

3.5.1.3. VirtualGL的Backend

图 1和图 2中的绿色线条表示VirtualGL支持两种Backend,GLX和EGL。VirtualGL最初只支持GLX Backend,它需要一个运行的3D X Server(最常见的如Xorg),多个用户通过VirtualGL共享GPU时,由于它们都具有X Server访问权限,会存在互相影响以及安全问题。从3.0版本开始,VirtualGL支持了EGL Backend,使得VirtualGL脱离了对3D X Server的依赖。

3.5.2. 安装与设置    

本文安装环境为阿里云ecs.gn7i-c8g1.2xlarge实例,Host OS为Ubuntu 18.04。

3.5.2.1. 使用GLX Backend

3.5.2.1.1. Host安装与设置

Host上安装与设置步骤如下:

1.安装Xorg、桌面环境(本文安装xfce4)、x11vnc;

2.安装NVIDIA驱动;

3.启动X Server(Xorg);

4.启动xfce4桌面;

5.启动x11vnc Server;

6.安装nvidia-docker2;

7.下载NVIDIA官方docker镜像(比如nvidia/cuda:11.4.3-base-ubuntu18.04);

8.启动容器(启动时,需要将/tmp/.X11-unix映射到容器中);

3.5.2.1.2. 容器安装与设置

容器中安装与设置步骤如下:

1.安装桌面环境(本文安装xfce4);

2.从VirtualGL官方网站下载VirtualGL和TurboVNC安装包进行安装;

3.配置VirtualGL:/opt/VirtualGL/bin/vglserver_config -config +s +f +t

4.安装NVIDIA用户态驱动(容器中安装驱动时,不要安装内核态驱动),命令示例:./NVIDIA-Linux-x86_64-470.82.01.run -a -q --ui=none --no-kernel-module

5.启动运行TurboVNC:

export TVNC_VGLRUN="vglrun -d :0 +wm"

/opt/TurboVNC/bin/vncserver -wm xfce -vgl -geometry 1920x1080 -depth 24

其中:0对应Host上创建的桌面监听的DISPLAY;

然后,客户端下载TurboVNC,使用TurboVNC Viewer连接容器中TurboVNC监听的端口即可看到桌面。

3.5.2.2. 使用EGL Backend

使用EGL Backend时,Host上不用安装Xorg、xfce4、x11vnc等组件,只需要安装NVIDIA驱动,创建容器时,也不用将X11的unix socket目录(/tmp/.X11-unix)映射给容器访问。

3.5.2.2.1. Host安装与设置

Host上安装与配置步骤如下:

1.安装NVIDIA驱动;

2.安装nvidia-docker2;

3.下载NVIDIA官方docker镜像(比如nvidia/cuda:11.4.3-base-ubuntu18.04);

4.启动容器(启动时,不需要将/tmp/.X11-unix映射到容器中);

3.5.2.2.2. 容器安装与设置

容器中安装与配置步骤如下:

1.安装桌面环境(本文安装xfce4);

2.从VirtualGL官方网站下载VirtualGL和TurboVNC安装包进行安装;

3.配置VirtualGL:/opt/VirtualGL/bin/vglserver_config -config +s +f +t

4.安装NVIDIA用户态驱动(容器中安装驱动时,不要安装内核态驱动),命令示例:./NVIDIA-Linux-x86_64-470.82.01.run -a -q --ui=none --no-kernel-module

5.启动运行TurboVNC:

export TVNC_VGLRUN="vglrun -d egl0 +wm"

/opt/TurboVNC/bin/vncserver -wm xfce -vgl -geometry 1920x1080 -depth 24

其中egl0表示第一个GPU;

3.5.3. 性能测试

3.5.3.1. glmark2测试结果

分别在Host上和Container中,使用glmark2软件,设置不同的2D X Server(DISPLAY环境变量)以及不同的Backend(vglrun命令的-d参数),测试跑分,结果如下表所示。

编号

测试

位置

Xfce4 

Backend

使用VirtualGL

测试命令

画面

输出

GPU

使用率

glmark2 

CPU使用率

Host Xorg 

CPU使用率

Xvnc CPU

使用率

glmark2

得分

1

Host

/

DISPLAY=:0 glmark2

Host(:0)

100%

100%

42.00%

0.00%

11350

2

Host

GLX

DISPLAY=:0 vglrun -d :0 glmark2

Host(:0)

79%

45%

92.00%

0.00%

849

3

Host

GLX

DISPLAY=:1 vglrun -d :0 glmark2

Host(:1)

39%

105%

4.00%

67.00%

2086

4

Host

GLX

DISPLAY=:0 vglrun -d egl glmark2

Host(:0)

83%

53%

98.00%

0.00%

902

5

Host

GLX

DISPLAY=:1 vglrun -d egl glmark2

Host(:1)

39%

107%

0.00%

64.00%

1851

6

Host

EGL

DISPLAY=:0 vglrun -d :0 glmark2

Host(:0)

81%

46%

93.00%

0.00%

842

7

Host

EGL

DISPLAY=:1 vglrun -d :0 glmark2

Host(:1)

39%

104%

4.00%

69.00%

2041

8

Host

EGL

DISPLAY=:0 vglrun -d egl glmark2

Host(:0)

82%

53%

98.00%

0.00%

899

9

Host

EGL

DISPLAY=:1 vglrun -d egl glmark2

Host(:1)

39%

105%

0.00%

66.00%

1844

10

Container

/

DISPLAY=:0 glmark2

Host(:0)

100%

100%

47.00%

0.00%

11204

11

Container

GLX

DISPLAY=:0 vglrun -d :0 glmark2

Host(:0)

89%

60%

100%

0%

962

12

Container

GLX

DISPLAY=:1 vglrun -d :0 glmark2

Container(:1)

39%

105%

4%

68%

2052

13

Container

GLX

DISPLAY=:0 vglrun -d egl glmark2

Host(:0)

89%

92%

99%

0%

1522

14

Container

GLX

DISPLAY=:1 vglrun -d egl glmark2

Container(:1)

39%

106%

0%

62%

1862

15

Container

EGL

DISPLAY=:0 vglrun -d :0 glmark2

Host(:0)

89%

61%

98%

0%

951

16

Container

EGL

DISPLAY=:1 vglrun -d :0 glmark2

Container(:1)

39%

105%

4%

64%

2012

17

Container

EGL

DISPLAY=:0 vglrun -d egl glmark2

Host(:0)

89%

92%

99%

0%

1519

18

Container

EGL

DISPLAY=:1 vglrun -d egl glmark2

Container(:1)

39%

106%

0%

64%

1837

3.5.3.2. GpuTest测试结果

编号

测试位置

Xfce4 Backend

使用VirtualGL

测试命令

画面输出

GPU总使用率

GpuTest CPU使用率

Host Xorg CPU使用率

Xvnc CPU使用率

得分

FPS

19

Host

/

DISPLAY=:0 ./GpuTest /test=gi /width=1600 /height=900 /benchmark

Host(:0)

100.00%

100.00%

88.00%

0.00%

15730

262 

20

Host

/

DISPLAY=:0 ./GpuTest /test=gi /width=1600 /height=900 /benchmark

Host(:0)

100.00%

100.00%

86.10%

0.00%

15540

259 

21

Host

/

DISPLAY=:0 ./GpuTest /test=gi /width=1600 /height=900 /benchmark

Host(:0)

100.00%

100.00%

87.10%

0.00%

15230

253 

22

Container

GLX

DISPLAY=:1 vglrun -d egl ./GpuTest /test=gi /width=1600 /height=900 /benchmark

Container(:1)

82.00%

96.00%

0.00%

21.80%

14816

246 

23

Container

GLX

DISPLAY=:1 vglrun -d egl ./GpuTest /test=gi /width=1600 /height=900 /benchmark

Container(:1)

81.00%

97.00%

0.00%

22.80%

14838

247 

24

Container

GLX

DISPLAY=:1 vglrun -d egl ./GpuTest /test=gi /width=1600 /height=900 /benchmark

Container(:1)

79.00%

97.00%

0.00%

21.00%

14788

246 

25

Container

EGL

DISPLAY=:1 vglrun -d egl ./GpuTest /test=gi /width=1600 /height=900 /benchmark

Container(:1)

80.00%

97.00%

0.00%

22.00%

14814

246 

26

Container

EGL

DISPLAY=:1 vglrun -d egl ./GpuTest /test=gi /width=1600 /height=900 /benchmark

Container(:1)

78.00%

97.00%

0.00%

23.00%

14828

247 

27

Container

EGL

DISPLAY=:1 vglrun -d egl ./GpuTest /test=gi /width=1600 /height=900 /benchmark

Container(:1)

79.00%

100.00%

0.00%

20.80%

14819

246 

28

Container

EGL

DISPLAY=:1 vglrun -d :0 ./GpuTest /test=gi /width=1600 /height=900 /benchmark

Container(:1)

78.00%

99.00%

0.00%

24.80%

14739

245 

29

Container

EGL

DISPLAY=:1 vglrun -d :0 ./GpuTest /test=gi /width=1600 /height=900 /benchmark

Container(:1)

77.00%

100.00%

0.00%

23.80%

14699

244 

30

Container

EGL

DISPLAY=:1 vglrun -d :0 ./GpuTest /test=gi /width=1600 /height=900 /benchmark

Container(:1)

79.00%

100.00%

0.00%

24.80%

14625

243 

测试结果示例:

3.png

3.5.3.3. GravityMark测试结果

编号

测试位置

Xfce4 Backend

使用VirtualGL

API

Asteroids

GPU

使用率

GravityMark

CPU使用率

Xorg CPU

使用率

Xvnc CPU

使用率

得分

FPS

每帧时间(ms)

31

Host

/

Vulkan

1000000

98.0%

2.0%

48.0%

0.0%

10408

62.3 

16.051

32

Host

/

Vulkan

200000

93.0%

7.0%

36.0%

0.0%

29705

177.9 

5.621

33

Host

/

OpenGL

1000000

100.0%

100.0%

28.7%

0.0%

2963

17.7 

56.497

34

Host

/

OpenGL

200000

100.0%

94.1%

68.3%

0.0%

19659

117.7 

8.496

35

Container

EGL

Vulkan

1000000

87.0%

97.0%

1.0%

19.8%

10217

61.2 

16.340

36

Container

EGL

Vulkan

200000

73.0%

93.0%

1.0%

29.7%

24312

145.6 

6.868

37

Container

EGL

OpenGL

1000000

99.0%

100.0%

1.0%

10.0%

3046

18.2 

54.945

38

Container

EGL

OpenGL

200000

93.0%

101.0%

20.8%

19.8%

18659

111.7 

8.953

GravityMark的其他设置如下:

Render: Default

Antialiasing: Default(Temporal)

Resolution: 1600x900

LOD Bias: Default



测试结果示例:

4.png

3.5.3.4. 测试结果分析及结论

以下分别针对OpenGL和Vulkan测试结果进行分析。

3.5.3.4.1. OpenGL性能

1. 使用TurboVNC比使用Xorg作为2D X Server性能更好

测试2对比3、4对比5、6对比7、8对比9、11对比12、13对比14、15对比16、17对比18,可以得出结论,VirtualGL将画面输出到TurboVNC相比输出到Host上的Xorg,性能显著更好,GPU占用率也更低,这是得益于TurboVNC的优化;

2. 使用TurboVNC作为2D X Server时,EGL Backend和GLX Backend的性能差距非常小

测试25、26、27对比测试28、29、30显示,使用TurboVNC作为2D X Server时,EGL Backend和GLX Backend性能差距非常小,约为2%以内;

3. TurboVNC启动Xfce4时使用的Backend对性能几乎没有影响

测试3对比7、5对比9、12对比16、14对比18,可以得出结论,TurboVNC启动Xfce4时使用的Backend(即TVNC_VGLRUN环境变量设置的Backend)对性能几乎没有影响;

4. 当GPU测试软件测试过程中帧率非常高时,VirtualGL给测试软件带来的结果波动很大;当帧率接  近实际使用场景时,VirtualGL带来的损耗非常小;

测试1、10对比其他测试,可以看到,使用VirtualGL时,最好的性能也只有不使用VirtualGL时的18%,对于这个性能损耗,VirtualGL作者在Github Issues(Performance loose?Slow performance without ssh (same machine))中有解释,glmark2测试显示的性能损耗主要来自于VirtualGL引入的framebuffer read back。glxgears、glmark2等GPU测试软件的主要原理是,渲染大量的三角形,并测试GPU的极限渲染帧率,而VirtualGL需要在应用程序完成一帧渲染的时候,回读framebuffer,并(通过TurboVNC)传输给客户端显示,因此导致了极限帧率的巨大下降。glmark2      测试过程中的部分日志如下:

在Host上直接运行glmark2时:

root@aliyun:/etc/X11# glmark2

=======================================================

glmark2 2014.03+git20150611.fa71af2d

=======================================================

OpenGL Information

GL_VENDOR: NVIDIA Corporation

GL_RENDERER: NVIDIA A10/PCIe/SSE2

GL_VERSION: 4.6.0 NVIDIA 470.82.01

=======================================================

[build] use-vbo=false: FPS: 9187 FrameTime: 0.109 ms

=======================================================

glmark2 Score: 11350

=======================================================



在Container中通过VirtualGL运行glmark2时:

root@desktop2-glx:/home# DISPLAY=:1 vglrun -d egl0 glmark2

=======================================================

glmark2 2014.03+git20150611.fa71af2d

=======================================================

OpenGL Information

GL_VENDOR: NVIDIA Corporation

GL_RENDERER: NVIDIA A10/PCIe/SSE2

GL_VERSION: 4.6.0 NVIDIA 470.82.01

=======================================================

[build] use-vbo=false: FPS: 1442 FrameTime: 0.693 ms

=======================================================

glmark2 Score: 1837

=======================================================

可以看到,VirtualGL导致每帧的时间从0.109ms增加到了0.693ms,因此引起了结果的巨大降低,但是,增加的时间对普通应用来说,是微不足道的,普通应用的刷新率通常为60Hz,每帧时间的最大值可以达到16.67ms,VirtualGL增加的这部分时间(0.584ms)相对于16.67ms是非常小的。

测试38对比34,可以看到,在FPS为110左右时,VirtualGL带来的损耗约为5%(1-111.7/117.7);测试37对比33,可以看到,当帧率非常低时,VirtualGL带来的性能损耗被淹没在帧率本身的波动中了,甚至出现了使用VirtualGL比不使用VirtualGL性能更好的情况;

3.5.3.4.2. Vulkan性能

测试35对比31显示,当FPS在60左右时,VirtualGL带来的Vulkan性能损耗在2%以内(1-61.2/62.3);测试36对比32显示,在FPS为150左右时,VirtualGL带来的Vulkan性能损耗约为18%(1-145.6/177.9)。

4. 总体结论

Multiseat方案配置复杂,受硬件限制较大,不适合作为产品方案。

Xephyr和Xpra方案由于没有GPU加速,也不适合作为产品方案。

使用VirtualGL方案,可以很好地在阿里云异构实例上实现Linux桌面多开,多开的桌面之间互不影响,多个用户可分别使用VNC客户端连接自己的桌面运行业务软件。VirtualGL会给渲染的每一帧增加耗时,但是,在通常使用场景(刷新率60Hz)下,VirtualGL带来的OpenGL和Vulkan开销均在5%以内。

VirtualGL使用EGL Backend时,还可以不依赖于X11 Server,Host上只需要安装显卡驱动,无需额外软件,部署非常方便。



此外需要注意的是,由于TurboVNC在启动的时候设置了独立的dbus session并自动拉起了启动桌面环境,虽然本文是在一个容器中启动一个桌面,并不意味着桌面和容器是一一对应的,用户如果对桌面以及业务软件之间的安全隔离性没有要求,完全可以在一个容器中,或者直接在Host环境上,多次运行以下命令来开启多个独立的xfce桌面:

export TVNC_VGLRUN="vglrun -d egl0 +wm" /opt/TurboVNC/bin/vncserver -wm xfce -vgl -geometry 1920x1080 -depth 24



5. Linux桌面多开最佳实践

Linux桌面多开最佳方案为VirtualGL方案(配合使用TurboVNC)。



对于VirtualGL方案,由于使用GLX Backend需要将Host的X11 socket目录(/tmp/.X11-unix)映射到容器中,多个容器同时使用时,有潜在的冲突风险和安全风险,因此,建议参考3.5.2.2使用EGL Backend,Host上只需要安装NVIDIA驱动,相关设置都在容器中,方便备份和迁移。



如果用户业务软件在渲染时,不需要实时显示,软件会将最终结果输出到文件,那么,可以在运行软件的时候设置"VGL_READBACK=none"以获得最好的性能,命令示例:

DISPLAY=:1 VGL_READBACK=none vglrun -d egl0 glmark2

设置"VGL_READBACK=none"后,应用软件的窗口是黑屏,VirtualGL的framebuffer read back引入的性能影响将会被消除。


我们更欢迎您分享您对阿里云产品的设想、对功能的建议或者各种吐槽,请扫描提交问卷并获得社区积分或精美礼品一份。https://survey.aliyun.com/apps/zhiliao/P4y44bm_8

【扫码填写上方调研问卷】

欢迎每位来到弹性计算的开发者们来反馈问题哦~

相关实践学习
基于阿里云DeepGPU实例,用AI画唯美国风少女
本实验基于阿里云DeepGPU实例,使用aiacctorch加速stable-diffusion-webui,用AI画唯美国风少女,可提升性能至高至原性能的2.6倍。
相关文章
|
14天前
|
Web App开发 存储 Linux
Linux(33)Rockchip RK3568 Ubuntu22.04上通过SSH运行Qt程序和关闭Chrome的密钥提示
Linux(33)Rockchip RK3568 Ubuntu22.04上通过SSH运行Qt程序和关闭Chrome的密钥提示
50 0
|
15天前
|
Linux 开发工具 C语言
Linux 安装 gcc 编译运行 C程序
Linux 安装 gcc 编译运行 C程序
31 0
|
25天前
|
Linux Shell 开发工具
Shell的运行原理以及Linux当中的权限问题
Shell的运行原理以及Linux当中的权限问题
35 0
|
28天前
|
Linux
Linux操作系统调优相关工具(三)查看IO运行状态相关工具 查看哪个磁盘或分区最繁忙?
Linux操作系统调优相关工具(三)查看IO运行状态相关工具 查看哪个磁盘或分区最繁忙?
24 0
|
1天前
|
Linux Shell 程序员
【Linux】权限(shell运行原理、概念,Linux权限)
【Linux】权限(shell运行原理、概念,Linux权限)
6 2
|
2天前
|
监控 Linux Shell
|
10天前
|
XML 安全 Linux
【Linux】深入探究CentOS防火墙(Firewalld):基础概念、常用命令及实例操作
【Linux】深入探究CentOS防火墙(Firewalld):基础概念、常用命令及实例操作
|
14天前
|
存储 监控 中间件
Linux双机热备解决方案之Heartbeat
Linux双机热备解决方案之Heartbeat
|
14天前
|
Ubuntu Linux 开发工具
WSL2(3)安装Linux headers完美解决方案
WSL2(3)安装Linux headers完美解决方案
19 0
|
15天前
|
Linux 数据安全/隐私保护
Linux常用命令实例带注释
Linux常用命令实例带注释
34 0

相关产品

  • GPU云服务器