建设大模型训练排障平台是提升训练效率、降低运维成本、保障研发进度的关键基础设施。 以下是构建这样一个平台的系统化方案:一、核心建设目标故障快速定位:分钟级定位硬件/软件/算法故障根源训练过程透明化:实时监控千卡级集群训练状态智能预警:提前发现潜在故障风险(如梯度异常)知识沉淀:构建可复用的排障知识库二 全域数据采集层数据类型采集方式采样频率GPU指标(显存/利用率)DCGM/NVML1秒级网络流量RDMA计数器+交换机SNMP5秒级分布式框架日志PyTorch/TF的NCCL日志实时流采集算法指标训练脚本标准输出 python复制下载# 智能修复决策示例def auto_recovery(action_chain): if detect_gpu_hang(): return [“隔离故障卡”, “重启训练进程
同时,大模型训练所带来的各种工程化问题也接踵而至。大模型训练通常涉及大量的参数、巨大的计算需求和复杂的网络结构,这使得整个训练过程变得极其复杂。 排障平台建设思路在集群规模较小的情况下,上述问题定位和处理思路在一定程度上可以发挥作用。然而,随着模型参数量的增加和训练复杂性的提高,所需的集群规模会越来越大。 故障处理模块:负责对故障进行诊断及处理,整合排障工具,并及时恢复任务训练。在大规模集群中,故障的分析处理涉及大量数据。 总结本文概括性地介绍了大型模型训练中遇到的问题分类、基本排查方法以及排障工具平台构建的基本思路。 随着大型模型的发展以及参数数量的增加,所需的计算资源也将逐步增加,集群规模的扩大以及对训练稳定性和集群排障效率的挑战也将愈发严峻,本文仅是抛砖引玉,提供了一些粗浅的思考,希望能给大家带来一些帮助。
发现网络插件kube-flannel一直在尝试重启,有时能够正常,有时提示 CrashLoopBackOff有时OOMKilled 3 查看kublet日志
pod 处于以上情况,可通过kubectl describe pod -n<namepsaces> <podname> 查看对应event 展示信息,基于对应报错信息进行解决;
在排错过程中,kubectl 是最重要的工具,通常也是定位错误的起点。这里也列出一些常用的命令,在后续的各种排错过程中都会经常用到。
得到上述指标后,便可灵活定义自己的业务和应用监控大盘: 我们也可以使用 PromQL,灵活定义告警规则,例如我们可以定义一个关于订单支付延时的告警: K8s 排障实践 接下来,我们将一起探讨常见的 Kubernetes 故障及其根因,并从具体案例出发,分析如何借助 Prometheus,对 K8s 进行全面排障。 排障案例 如果我们采访 K8s 运维工程师,问他们最常见、最头疼的 K8s 故障是啥,那么遥遥领先的必然是这俩: Pod 处于 pending 状态。 除此之外,围绕可观测性三大支柱——指标、日志和链路追踪——所搭建的全面可观测性,能进一步帮助及时发现和解决集群中的问题。 满足您全链路、端到端的统一监控诉求,提高运维排障效率,为业务的健康和稳定保驾护航。
我们以一些典型的场景为切入,来看看排障定位为什么会出现如此困境:01. 运维痛点——排障过程存在困境1)单点用户排障流程过去传统运维单点排障的工作实录:用户纷至沓来,客服电话被打爆,运维人员看看堆积如山的工单汗如雨下。只能一个个工单进行故障排查。 2)前端排障原理与流程当然,随着代码技术的不断演进,现在的程序员一般是不会一行一行的去排查代码的,不然动辄上万行的代码,如此去排障,运维人员、前后端人员早就“崩溃”了。 为防止前后端的“撕逼”,我们需要从什么角度去建立前端监控体系,保证前后端的工作定位准确,精准排障呢?03. 对症下药——跨越障碍实现精准排障从用户端来看,任何一个角度出现问题,都会导致用户的体验不佳,导致流失。
系统连接状态篇: 1.查看TCP连接状态 netstat -nat|awk'{print$6}'|sort|uniq-c|sort-rnnetstat-n|awk'/^tcp/{print$NF}'|sort|uniq-c|sort-rnnetstat-ant|awk'{print$NF}'|grep-v'[a-z]'|sort|uniq-c 2.查找请求数请20个IP(常用于查找攻来源): netstat -anlp|grep80|greptcp|awk'{print$5}'|awk-F:'{print$1}'|sort|uniq-c|sort-nr|head-n20 netstat -ant|awk'/:80/{split($5,ip,":");++A[ip[1]]}END{for(iinA)printA[i],i}'|sort-rn|head-n20 3.用tcpdump嗅探80端口的访问看看谁最高 tcpdump -ieth0-tnndstport80-c1000|awk-F"."'{print$1"."$2"."$3"."$4}'|sort|uniq-c|sort-nr|head-20 6.根据端口列进程 netstat -ntlp|grep 80|awk'{print$7}'|cut-d/-f1 网站日志分析篇1(Apache): 1.获得访问前10位的ip地址 cat access.log|awk'{print$1}'|sort|uniq-c|sort-nr|head-10 cat access.log|awk'{counts[$(11)]+=1};END{for(urlincounts)printcounts[url],url}' 2.访问次数最多的文件或页面,取前20 cat access.log|awk'{print$11}'|sort|uniq-c|sort-nr|head-20 3.列出传输最大的几个exe文件(分析下载站的时候常用) cat access.log|awk'($7~/\.exe/){print$10""$1""$4""$7}'|sort-nr|head-20 4.列出输出大于200000byte(约200kb)的exe文件以及对应文件发生次数 cat access.log|awk'($10>200000&&$7~/\.exe/){print$7}'|sort-n|uniq-c|sort-nr|head-100 7.列出传输时间超过30秒的文件 cat access.log|awk'($NF>30){print$7}'|sort-n|uniq-c|sort-nr|head-20 8.统计网站流量(G) cat access.log|awk'{sum+=$10}END{printsum/1024/1024/1024}' 9.统计404的连接 awk'($9~/404/)'access.log|awk'{print$9,$7}'|sort 网站日分析2(Squid篇) 2.按域统计流量 zcat squid_access.log.tar.gz|awk'{print$10,$7}'|awk'BEGIN{FS="[/]"}{trfc[$4]+=$1}END{for(domainintrfc){printf"%s\t%d\n",domain,trfc[domain]}}' 数据库篇 1.查看数据库执行的sql /usr/sbin/tcpdump-ieth0-s0-l-w-dstport3306|strings|egrep-i'SELECT|UPDATE|DELETE|INSERT|SET|COMMIT|ROLLBACK|CREATE|DROP|ALTER|CALL'
这时我们还是需要一个全面的排障流程,不能无厘头地进行优化;全面的排障流程可以帮助我们找到真正的根因和性能瓶颈,以及实施正确高效的优化方案。 这篇文章我们就从可能导致 Redis 延迟的方方面面开始,逐步深入排障深水区,以提供一个「全面」的 Redis 延迟问题排查思路。 排障事大,但咱也不能冤枉了Redis;首先我们还是应该把其它因素都排除完了,再把焦点关注在业务服务到 Redis 这条链路上。 导致 Redis Latency 的具体原因 如果使用我们的快速清单并不能解决实际的延迟问题,我们就得深入 redis 性能排障的深水区,多方面逐步深究其中的具体原因了。 总结 Redis 排障是一个循序渐进的复杂流程,涉及到 Redis 运行原理,设计架构以及操作系统,网络等等。
调整eventvwr事件默认属性大小,不要过早被覆盖默认20MB,随着时间积累会后来居上覆盖掉老的事件,尤其在启用审核策略后,会产生大量日志,短时间就会覆盖,所以,尽可能根据需求精确配置,尤其要调大日志
工作中需要将原本部署在物理机或虚拟机上的一些基础服务搬到kubernetes中,在搬的过程中遇到了不少坑,这里记录一下。
以下是30个常用的排障命令 附带详细说明和一些用于华为网络设备的命令示例 以帮助小白网络工程师更好地理解: 1. Ping测试: • 方法:使用ping命令测试目标设备的连通性。
现象:某个Node频繁出现“PLEG is not healthy: pleg was last seen active 3m46.752815514s ago; threshold is 3m0s”错误,频率在5-10分钟就会出现一次。
Windows Cloud-Init 排障思路 确认Windows Server内部 cloudbase-init 服务是正常运行 1、登录虚拟机(如果忘记密码或者因为cloudbase-init 服务异常重置密码失败了
网络工程师经常接到各种求助电话,例如“电脑突然无法上网” 、“网页无法正常显示”、“游戏没法玩了”…… 报告故障:主动沟通确认 在电话里询问用户上面的内容,并记录在排障报告中。 逐一排查 在逐一排查阶段同样需要平衡解决问题的迫切性与引入新故障的风险性之间的矛盾。所以,应该明确告知用户排查工作可能带来的风险,并在得到许可的情况下才能执行操作。 有些情况下,通过逐一排查验证推断的过程涉及到网络变更,这时必须做好完善的应急预案和回退准备。 解决故障 如果通过逐一排查找到了故障的根本原因,并排除了故障,网络故障排除的流程就可以结束了。
实战干货:编程严选网 1 排障过程 系统从圣诞节那天晚上开始,每天晚上固定十点多到十一点多这个时段,大概瘫痪1h左右,过这时段系统自动恢复。系统瘫痪时的现象就是,网页和App都打不开,请求超时。 做一个简单的静态页面首页作为降级方案,只要包含商品搜索栏、大的品类和其他顶级功能模块入口的链接。在Nginx做个策略,如果请求首页数据超时的时候,直接返回这个静态的首页作为替代。 排序也是可能完成慢SQL的因素,尤其是数据量大,需要使用外部排序的时候又可以与磁盘IO性能扯上关系等,常见的问题还有limit m,n m很大又无法使用索引的时候 多表联合查询的时候,尽量用小表驱动大表 是否该考虑修改查询语句或者上搜索(es / 阿里open search ) 然后再加一道缓存 缓存的读写策略采用旁路策略 A:这种大查询,首先肯定用缓存,但要根据实际情况选择合适缓存更新策略。 A:数据量特别大的统计分析,一般选择放到其它分析型数据库或数仓执行或使用流计算。 首页缓存过期时间要设置一个随机值,避免缓存雪崩。
rancher 所在 k8s 集群(local 集群)间歇性挂,而其纳管的另一个生产 k8s 集群没有这个问题。
网络无法通信通用排障流程 ✔ 基础连通性验证 1)ping 本机IP 2)ping 网关 3)ping 同网段设备 4)ping 其他网段 5)traceroute 跳点定位 判定逻辑: 能否 ping 问题 典型现象 水晶头歪斜 速度跌为10M、随机断链 光模块速率不匹配 单向链路Up/Down反复抖动 光功率过低(>-23dBm即危险) 帧错,丢包增大 双绞线过长 > 100m 速率自动降级 排障动作 switchport trunk allowed vlan add 10,20 5 秒全楼恢复 广播风暴 / 环路导致整网卡死 现象 ping随机丢包50%+ CPU升到80%以上 交换机流量飙到线速 核心排障
Traceroute有三大特点: 跨平台。Traceroute工具存在与各个操作系统平台,包括主流系统MAC OS、Windows、Linux、Android、IOS等; 使用方便。 从亚特兰大到迈阿密经过纽约,那就不太理想了。 确定高延时是否合理。从印度到美国要300ms,但从日本到美国并不需要300ms。 帮助你理解网络互联的节点。
JVM 运维实用排障工具 1、jps 用来查看Java进程的具体状态, 包括进程ID,进程启动的路径及启动参数等等,与unix上的ps类似,只不过jps是用来显示java进程,可以把jps理解为ps的一个子集 NHCUR:当前被使用的非 heap 大小(比如:perm gen) NHMAX:最大可用的非 heap 大小 CPU:CPU 的使用情况 GC:消耗在 GC 上的时间比例 VM:JVM 的提供者,大版本号