1. 列出所有可用的nividia设备信息:
nvidia-smi -L
2. conda关于环境操作的常用命令:
conda info -e #查看环境
conda create -n xxx python=3.7 #创建python版本为3.7的新环境xxx(未进行环境配置)
conda remove -n xxx --all #环境xxx删除
conda env list #显示所有的虚拟环境
conda activate #默认激活base环境
conda activate xxx #激活xxx环境
conda deactivate #关闭当前环境
## Conda没有重命名环境的功能,实现这个基本需求, 只能通过克隆-删除的过程。
conda create --name newname --clone oldname #克隆环境
conda remove --name oldname --all #彻底删除旧环境
3. conda查看、更新、卸载安装包::
conda list #查看已经安装的文件包
conda list -n xxx #指定查看xxx虚拟环境下安装的package
conda update xxx #更新xxx文件包
conda uninstall xxx #卸载xxx文件包
4. 文件及文件夹操作指令:
cd ~ #切换到home目录
cd .. #返回上一级目录
cd - #返回上一个目录
Is #列出目录内容
source ~/.bashrc #.bashrc文件主要保存个人的一些个性化设置,如命令别名、路径等。
#每次修改.bashrc后,使用source ~/.bashrc(或者 . ~/.bashrc)才能加载修改后的设置,使之生效。
vi train.py #在终端打开文件
vim train.py #在终端打开文件
script -a log.txt #把terminal的输出都录像到一个txt文档中,terminal输出之前使用
5. 查看Pytorch版本以及Pytorch 使用的 cuda 版本(当然可以通过
conda list
查看所有安装):
conda list
>>>import torch
>>>print(torch.__version__) #输出一个 Pytorch 版本
>>>torch.version.cuda #输出一个 cuda 版本
6. 查看所有的NVIDIA device:
可用于查看隐藏的进程ID
可用于查看隐藏的进程ID
fuser -v /dev/nvidia*
详细页面如下:
杀掉进程:
kill -9 25717
7. 查看GPU占用情况:
使用上一条语句可查看所有的进程(包括这里没有显示的)。
使用上一条语句可查看所有的进程(包括这里没有显示的)。
nvidia-smi
详细页面如下:
8. 动态监视GPU占用情况:
这里设置为每0.5s刷新一次,快捷键Ctrl+Z即可退出
这里设置为每0.5s刷新一次,快捷键Ctrl+Z即可退出
watch -n 0.5 nvidia-smi #方式1
watch --color -n 0.5 gpustat -cpu --color #方式2
方式1展示页面如下:
方式2展示页面如下
9,监控Linux的系统状况,如系统运行时间、平均负荷、cpu状态、内存使用等:
监控信息更全面,快捷键Ctrl+Z即可退出
监控信息更全面,快捷键Ctrl+Z即可退出
top
详细页面如下:
4.1 系统运行时间和平均负载:
load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。
top命令的顶部显示与uptime命令相似的输出,这些字段显示:
- 当前时间
- 系统已运行的时间
- 当前登录用户的数量
- 相应最近5、10和15分钟内的平均负载
4.2 任务:
Tasks——任务或者进程的总结。进程可以处于不同的状态。这里显示了全部进程的数量,以及正在运行、睡眠、停止、僵尸进程的数量(僵尸是一种进程的状态)。
- 系统现在共有1458个进程,其中处于运行中的有7个,1417个在休眠(sleep),stoped状态的有34个,zombie状态(僵尸)的有0个。
4.3 CPU状态
这里CPU的使用比率和windows概念不同。
这里显示不同模式下所占cpu时间百分比,这些不同的cpu时间表示:
- us, user: 运行(未调整优先级的) 用户进程的CPU时间
- sy,system: 运行内核进程的CPU时间
- ni,niced:运行已调整优先级的用户进程的CPU时间
- wa,IO wait: 用于等待IO完成的CPU时间
- hi:处理硬件中断的CPU时间
- si: 处理软件中断的CPU时间
- st:这个虚拟机被hypervisor偷去的CPU时间(译注:如果当前处于一个hypervisor下的vm,实际上hypervisor也是要消耗一部分CPU处理时间的)。
4.4 内存使用
这里同样不能用windows的内存概念理解这些数据。
- 第一行是物理内存使用,第二行是虚拟内存使用(交换空间)。
- 物理内存显示分别为:全部可用内存、已使用内存、空闲内存、缓冲内存。
- 虚拟内存显示分别为:全部、已使用、空闲和缓冲交换空间。
4.5 各进程(任务)的状态监控:
PID:进程ID,进程的唯一标识符
USER:进程所有者的实际用户名。
PR:进程的调度优先级。这个字段的一些值是'rt'。这意味这这些进程运行在实时态。
NI:进程的nice值(优先级)。越小的值意味着越高的优先级。负值表示高优先级,正值表示低优先级
VIRT:进程使用的虚拟内存。进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES:驻留内存大小。驻留内存是任务使用的非交换物理内存大小。进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR:SHR是进程使用的共享内存。共享内存大小,单位kb
S:这个是进程的状态。它有以下不同的值:
-
D - 不可中断的睡眠态。
-
R – 运行态
-
S – 睡眠态
-
T – 被跟踪或已停止
-
Z – 僵尸态
%CPU:自从上一次更新时到现在任务所使用的CPU时间百分比。
%MEM:进程使用的可用物理内存百分比。
TIME+:任务启动后到现在所使用的全部CPU时间,精确到百分之一秒。
COMMAND:运行进程所使用的命令。进程名称(命令名/命令行)
还有许多在默认情况下不会显示的输出,它们可以显示进程的页错误、有效组和组ID和其他更多的信息。
参考:
1: https://www.cnblogs.com/zhoug2020/p/6336453.html