GPU裸金属服务器训练速度突然下降以及执行nvidia-smi卡顿的解决方案

举报
modelarts-dev-server 发表于 2023/06/02 20:26:16 2023/06/02
【摘要】 笔者最近发现在高性能8卡GPU的裸金属上的训练任务突然变慢,以前1个epoch约2小时执行完成,最近1个epoch需要2天才能执行完成。 并且执行nvidia-smi也明显变很卡顿。

1. 问题描述

笔者最近发现在高性能8卡GPU的裸金属上的训练任务突然变慢,以前1个epoch约2小时执行完成,最近1个epoch需要2天才能执行完成。 并且执行nvidia-smi也明显变很卡顿。

2. 问题分析

根据现象描述很可能出现了nvidia-smi D+进程。 首先了解什么是D+进程:

"D+"表示进程状态为"Uninterruptible Sleep (usually IO)",即进程正在等待I/O操作完成,此时无法被中断。

在正常情况下,nvidia-smi进程通常只会短暂地出现D+状态,因为它们是由内核控制的,该进程处于等待I/O操作完成的状态,可能是在读取或写入GPU相关的数据,这是正常的操作。但是,如果该进程一直处于"D+"状态,可能表明出现了I/O操作阻塞或其他问题,这可能导致系统死锁或其他问题。 

当然如果想构造nvidia-smi D+进程,可以死循环一直执行nvidia-smi 体验D+进程带来的系统不稳定性, 如:

#!/bin/bash

while true; do
    nvidia-smi &
    sleep 1   # 可以根据需要调整间隔时间
done

然后执行查看产生nvidia D+进程

ps -aux | grep -w D+

结果如下:

20230602-201855(WeLinkPC).png

这时候,你可以观察你的训练任务或者执行nvidia-smi等命令,几乎是卡顿无法执行,因为内核IO已经阻塞, 无法执行相关GPU命令,只能尝试释放D+进程。

3. 解决方案

"nvidia-smi"是一个NVIDIA GPU监视器命令行工具,用于查看GPU的使用情况和性能指标,可以帮助用户进行GPU优化和故障排除。 但是建议一定要在业务软件或训练算法中,避免频繁使用nvidia-smi命令功能获取相关信息,毕竟是和一个完全由内核控制的工具,存在锁死的风险。出现D+进程后可以尝试如下方法:

方法1: 可以根据ps -aux查到的进程号, 使用kill -9强制杀死进程

sudo kill -9 <进程ID>

方法2: 如果方法1执行后无法消除D+进程, 那么重启会解决您的一切烦恼。



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。