《泛娱乐行业技术服务白皮书》——三、泛娱乐典型业务架构与场景——3.2 游戏类泛娱乐——3.2.2 游戏泛娱乐技术服务(9)

简介: 《泛娱乐行业技术服务白皮书》——三、泛娱乐典型业务架构与场景——3.2 游戏类泛娱乐——3.2.2 游戏泛娱乐技术服务(9)

《泛娱乐行业技术服务白皮书》——三、泛娱乐典型业务架构与场景——3.2   游戏类泛娱乐——3.2.2 游戏泛娱乐技术服务(8) https://developer.aliyun.com/article/1230985?groupCode=supportservice



3.2.2.3.4 排障思路

 

•采集编码慢问题


image.png


上图是黑屏中做的所有排查方向,核心的主线分为三类:  -OS内部问题——系统 (Guest OS)态 - 平台侧问题——底层(包含宿主机)相关 - 应用态问题——客户自身实 现的应用或最终玩家等其他平台不可控因素


黑屏问题的难度在于造成黑屏的原因太多了,或者说任一类问题造成的表象都可 能包含渲染黑屏,要解决黑屏问题首先的理解,黑屏是怎么产生的,屏幕画像的产生

 

来源于底层渲染计算生成的画面通过解码、封装、捕获等方式呈现出来,一旦出现异 常,最先怀疑的就是渲染计算的情况,所以对于黑屏:


•系统态排查

我们首先确认了当时系统内相关资源的使用率情况,发现都比较高,特别是 CPU资源与GPU资源方面,因为GPU的调度是需要利用CPU资源的(比如队列处理等 ),而游戏本身占用的CPU可能会很高(特别是3A大作),所以当CPU负载较高时会导 致GPU调度不了,形成了成像失败,最典型的情况就是CPU负载很高,GPU负载不 高,通过渲染类连接(比如调用了GPU的VNC界面)看是黑屏状态,但是通过RDP协议 访问却只是卡顿(因为CPU分配不足),这就是第一个系统态异常的怀疑点,下图为 GPU满是最终玩家感觉到黑屏时的任务管理器界面:

 

image.png


通过ProcessExplorer可以看到更具体占用GPU的情况:


image.png


通过对应进程获取相关堆栈信息,下图为CPU满时导致的黑屏与RDP卡顿(关于 RDP卡顿将在RDP卡顿中详讲)问题可以看到前面9core(客户使用的VM为定制版的9core)全部被对应游戏进程占了80%左右:


image.png


针对这种情况,建议根据排查出的游戏进程进行优化即可。


平台侧排查

关于第二点,前面说过,CPU使用率是云游戏场景中比较重要的指标,若有其他非 主观因素影响了CPU的使用也会导致黑屏几率上升,通过分析宿主机记录的Cache- line相关计数情况,  我们发现该客户云游戏VM的cacheline(当执行原子操作地址未对 齐时就会跨越两个cacheline进行传输,在Intel架构中将这种现象的量级定义为split- lock,而原子地址没对齐的场景,在Intel架构下是允许的,在诸如ARM架构下则是禁 止的;cacheline即CPU在处理数据时与内存映射地址进行通讯时的缓存通道,该通 道起到预存数据的作用,同一个cache 1 line的传输时延会下降)产生得特别多, Cacheline问题的不断上升触发了Cacheline一些限制措施,从而使得CPU使用被”压 住“,导致无法充分发挥CPU性能调度GPU资源来实现渲染,关于该问题对于技术服 务侧来说有更加方便的方式判断,也得益于众多阿里云先驱前辈的白屏化进程,使用 内部系统可以直接将具体时间线输出明确对比黑屏时间:


image.png


从底层宿主机看下是否存在一些基于Cacheline问题的限制,我们从当前case发 现确实存在Cacheline问题的限制,所以就进行了一些限制解除的实验,最终确认了 与Cacheline强相关,但是游戏厂商进程无法通过去壳手段来进行分析(也不在平台 分析范围内)  ,  所以对于游戏进程产生的cacheline交由客户与游戏厂商继续分析, 不过整体解除Cacheline限制后黑屏情况相较于优化性能后又再下一城。    ——  这一 点同时也是Log慢的核心原因

在某个案例可以看到经过两轮的优化,从一开始平均1k+下降到600+,再到

400+:

 

image.png


兼容性类排查


在解答这一点前,我们需要确认几个基础概念:


•视频相关API:主要用于捕获、加速渲染等作用的API,N卡常见的有:微软提 供的DDA(Desktop Duplication API)以及NV提供的NVFBC(NVIDIA® Frame Buffer Capture API)

•GRID:N卡的核心虚拟化技术,由NV开发与提供,也是N卡虚拟化主流的实现 方式,包含前后端驱动,GRID11、12均为GRID的版本

•TDR:Timeout Detection & Recovery ,GPU的调度超时相关指标,默认应用 程序请求GPU资源超过2s(可调)就会在日志中记录一条warning级的TDR,NVIDIA对 此也有相关解释,从GPU配置程序入手配置的话可见链接。



《泛娱乐行业技术服务白皮书》——三、泛娱乐典型业务架构与场景——3.2   游戏类泛娱乐——3.2.2 游戏泛娱乐技术服务(10) https://developer.aliyun.com/article/1230983?groupCode=supportservice

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
2月前
|
Cloud Native Java API
聊聊从单体到微服务架构服务演化过程
本文介绍了从单体应用到微服务再到云原生架构的演进过程。单体应用虽易于搭建和部署,但难以局部更新;面向服务架构(SOA)通过模块化和服务总线提升了组件复用性和分布式部署能力;微服务则进一步实现了服务的独立开发与部署,提高了灵活性;云原生架构则利用容器化、微服务和自动化工具,实现了应用在动态环境中的弹性扩展与高效管理。这一演进体现了软件架构向着更灵活、更高效的方向发展。
|
3月前
|
存储 Linux KVM
Proxmox VE (PVE) 主要架构和重要服务介绍
Proxmox VE (PVE) 是一款开源的虚拟化平台,它基于 KVM (Kernel-based Virtual Machine) 和 LXC (Linux Containers) 技术,支持虚拟机和容器的运行。PVE 还提供高可用集群管理、软件定义存储、备份和恢复以及网络管理等企业级功能。
1351 7
|
4天前
|
消息中间件 存储 安全
分布式系统架构3:服务容错
分布式系统因其复杂性,故障几乎是必然的。那么如何让系统在不可避免的故障中依然保持稳定?本文详细介绍了分布式架构中7种核心的服务容错策略,包括故障转移、快速失败、安全失败等,以及它们在实际业务场景中的应用。无论是支付场景的快速失败,还是日志采集的安全失败,每种策略都有自己的适用领域和优缺点。此外,文章还为技术面试提供了解题思路,助你在关键时刻脱颖而出。掌握这些策略,不仅能提升系统健壮性,还能让你的技术栈更上一层楼!快来深入学习,走向架构师之路吧!
33 11
|
22天前
|
NoSQL Java 数据处理
基于Redis海量数据场景分布式ID架构实践
【11月更文挑战第30天】在现代分布式系统中,生成全局唯一的ID是一个常见且重要的需求。在微服务架构中,各个服务可能需要生成唯一标识符,如用户ID、订单ID等。传统的自增ID已经无法满足在集群环境下保持唯一性的要求,而分布式ID解决方案能够确保即使在多个实例间也能生成全局唯一的标识符。本文将深入探讨如何利用Redis实现分布式ID生成,并通过Java语言展示多个示例,同时分析每个实践方案的优缺点。
39 8
|
28天前
|
Kubernetes Cloud Native Docker
云原生之旅:从传统架构到容器化服务的演变
随着技术的快速发展,云计算已经从简单的虚拟化服务演进到了更加灵活和高效的云原生时代。本文将带你了解云原生的概念、优势以及如何通过容器化技术实现应用的快速部署和扩展。我们将以一个简单的Python Web应用为例,展示如何利用Docker容器进行打包和部署,进而探索Kubernetes如何管理这些容器,确保服务的高可用性和弹性伸缩。
|
25天前
|
边缘计算 监控 自动驾驶
揭秘云计算中的边缘计算:架构、优势及应用场景
揭秘云计算中的边缘计算:架构、优势及应用场景
|
2月前
|
消息中间件 Kafka 数据库
微服务架构中,如何确保服务之间的数据一致性?
微服务架构中,如何确保服务之间的数据一致性?
|
2月前
|
SQL 存储 分布式计算
大数据-157 Apache Kylin 背景 历程 特点 场景 架构 组件 详解
大数据-157 Apache Kylin 背景 历程 特点 场景 架构 组件 详解
41 9
|
2月前
|
存储 分布式计算 druid
大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制
大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制
69 3
|
1月前
|
前端开发 Java 测试技术
android MVP契约类架构模式与MVVM架构模式,哪种架构模式更好?
android MVP契约类架构模式与MVVM架构模式,哪种架构模式更好?
52 0
下一篇
DataWorks