《泛娱乐行业技术服务白皮书》——三、泛娱乐典型业务架构与场景——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盲盒。
相关文章
|
17天前
|
Kubernetes Cloud Native 微服务
探索云原生技术:容器化与微服务架构的融合之旅
本文将带领读者深入了解云原生技术的核心概念,特别是容器化和微服务架构如何相辅相成,共同构建现代软件系统。我们将通过实际代码示例,探讨如何在云平台上部署和管理微服务,以及如何使用容器编排工具来自动化这一过程。文章旨在为开发者和技术决策者提供实用的指导,帮助他们在云原生时代中更好地设计、部署和维护应用。
|
1月前
|
运维 Kubernetes Cloud Native
云原生技术:容器化与微服务架构的完美结合
【10月更文挑战第37天】在数字化转型的浪潮中,云原生技术以其灵活性和高效性成为企业的新宠。本文将深入探讨云原生的核心概念,包括容器化技术和微服务架构,以及它们如何共同推动现代应用的发展。我们将通过实际代码示例,展示如何在Kubernetes集群上部署一个简单的微服务,揭示云原生技术的强大能力和未来潜力。
|
10天前
|
监控 安全 API
使用PaliGemma2构建多模态目标检测系统:从架构设计到性能优化的技术实践指南
本文详细介绍了PaliGemma2模型的微调流程及其在目标检测任务中的应用。PaliGemma2通过整合SigLIP-So400m视觉编码器与Gemma 2系列语言模型,实现了多模态数据的高效处理。文章涵盖了开发环境构建、数据集预处理、模型初始化与配置、数据加载系统实现、模型微调、推理与评估系统以及性能分析与优化策略等内容。特别强调了计算资源优化、训练过程监控和自动化优化流程的重要性,为机器学习工程师和研究人员提供了系统化的技术方案。
131 77
使用PaliGemma2构建多模态目标检测系统:从架构设计到性能优化的技术实践指南
|
1月前
|
存储 分布式计算 关系型数据库
架构/技术框架调研
本文介绍了微服务间事务处理、调用、大数据处理、分库分表、大文本存储及数据缓存的最优解决方案。重点讨论了Seata、Dubbo、Hadoop生态系统、MyCat、ShardingSphere、对象存储服务和Redis等技术,提供了详细的原理、应用场景和优缺点分析。
|
4天前
|
消息中间件 存储 安全
分布式系统架构3:服务容错
分布式系统因其复杂性,故障几乎是必然的。那么如何让系统在不可避免的故障中依然保持稳定?本文详细介绍了分布式架构中7种核心的服务容错策略,包括故障转移、快速失败、安全失败等,以及它们在实际业务场景中的应用。无论是支付场景的快速失败,还是日志采集的安全失败,每种策略都有自己的适用领域和优缺点。此外,文章还为技术面试提供了解题思路,助你在关键时刻脱颖而出。掌握这些策略,不仅能提升系统健壮性,还能让你的技术栈更上一层楼!快来深入学习,走向架构师之路吧!
33 11
|
16天前
|
运维 Cloud Native 持续交付
云原生技术深度探索:重塑现代IT架构的无形之力####
本文深入剖析了云原生技术的核心概念、关键技术组件及其对现代IT架构变革的深远影响。通过实例解析,揭示云原生如何促进企业实现敏捷开发、弹性伸缩与成本优化,为数字化转型提供强有力的技术支撑。不同于传统综述,本摘要直接聚焦于云原生技术的价值本质,旨在为读者构建一个宏观且具体的技术蓝图。 ####
|
22天前
|
NoSQL Java 数据处理
基于Redis海量数据场景分布式ID架构实践
【11月更文挑战第30天】在现代分布式系统中,生成全局唯一的ID是一个常见且重要的需求。在微服务架构中,各个服务可能需要生成唯一标识符,如用户ID、订单ID等。传统的自增ID已经无法满足在集群环境下保持唯一性的要求,而分布式ID解决方案能够确保即使在多个实例间也能生成全局唯一的标识符。本文将深入探讨如何利用Redis实现分布式ID生成,并通过Java语言展示多个示例,同时分析每个实践方案的优缺点。
39 8
|
29天前
|
Kubernetes Cloud Native Docker
云原生之旅:从传统架构到容器化服务的演变
随着技术的快速发展,云计算已经从简单的虚拟化服务演进到了更加灵活和高效的云原生时代。本文将带你了解云原生的概念、优势以及如何通过容器化技术实现应用的快速部署和扩展。我们将以一个简单的Python Web应用为例,展示如何利用Docker容器进行打包和部署,进而探索Kubernetes如何管理这些容器,确保服务的高可用性和弹性伸缩。
|
23天前
|
Cloud Native 持续交付 云计算
云原生技术在现代IT架构中的转型力量####
本文深入剖析了云原生技术的精髓,探讨其在现代IT架构转型中的关键作用与实践路径。通过具体案例分析,展示了云原生如何赋能企业实现更高效的资源利用、更快的迭代速度以及更强的系统稳定性,为读者提供了一套可借鉴的实施框架与策略。 ####
24 0
|
23天前
|
运维 Kubernetes Docker
深入理解容器化技术及其在微服务架构中的应用
深入理解容器化技术及其在微服务架构中的应用
46 1