3.2 进程管理
进程管理命令是进行系统监控和进程管理时的重要工具,常用的进程管理命令有以下几种:
- ps:查看正在运行的进程
- top:动态显示正在运行的进程
- pstree:树状查看正在运行的进程
- pgrep:用于查找进程
- nice:更改进程的优先级
- jobs:显示进程的相关信息
- bg 和 fg:将进程调入后台
- kill:杀死进程
在开发机中还有一条特殊的命令nvidia-smi
,它是 NVIDIA 系统管理接口(NVIDIA System Management Interface)的命令行工具,用于监控和管理 NVIDIA GPU 设备。它提供了一种快速查看 GPU 状态、使用情况、温度、内存使用情况、电源使用情况以及运行在 GPU 上的进程等信息的方法。
下面是关于各个命令使用示例:
ps
:列出当前系统中的进程。使用不同的选项可以显示不同的进程信息,例如:-
ps aux # 显示系统所有进程的详细信息
-
top
:动态显示系统中进程的状态。它会实时更新进程列表,显示CPU和内存使用率最高的进程。-
top # 启动top命令,动态显示进程信息
-
pstree
:以树状图的形式显示当前运行的进程及其父子关系。-
pstree # 显示进程树
-
pgrep
:查找匹配条件的进程。可以根据进程名、用户等条件查找进程。-
pgrep -u username # 查找特定用户的所有进程
-
nice
:更改进程的优先级。nice
值越低,进程优先级越高。-
nice -n 10 long-running-command # 以较低优先级运行一个长时间运行的命令
-
jobs
:显示当前终端会话中的作业列表,包括后台运行的进程。-
jobs # 列出当前会话的后台作业
-
bg
和fg
:bg
将挂起的进程放到后台运行,fg
将后台进程调回前台运行。-
bg # 将最近一个挂起的作业放到后台运行 fg # 将后台作业调到前台运行
-
kill
:发送信号到指定的进程,通常用于杀死进程。-
kill PID # 杀死指定的进程ID
-
注意,
kill
命令默认发送SIGTERM
信号,如果进程没有响应,可以使用-9
使用SIGKILL
信号强制杀死进程: -
kill -9 PID # 强制杀死进程
-
SIGTERM
(Signal Termination)信号是Unix和类Unix操作系统中用于请求进程终止的标准信号。当系统或用户想要优雅地关闭一个进程时,通常会发送这个信号。与SIGKILL
信号不同,SIGTERM
信号可以被进程捕获并处理,从而允许进程在退出前进行清理工作。(来源于网络)
以下是 nvidia-smi
命令的一些基本命令用法:
- 显示 GPU 状态的摘要信息:
-
nvidia-smi
-
- 显示详细的 GPU 状态信息:
-
nvidia-smi -l 1
-
这个命令会每1秒更新一次状态信息。
-
- 显示 GPU 的帮助信息:
-
nvidia-smi -h
-
- 列出所有 GPU 并显示它们的 PID 和进程名称:
-
nvidia-smi pmon
-
- 强制结束指定的 GPU 进程:
-
nvidia-smi --id=0 --ex_pid=12345
-
这会强制结束 GPU ID 为 0 上的 PID 为 12345 的进程。
-
- 设置 GPU 性能模式:
-
nvidia-smi -pm 1 nvidia-smi -i 0 -pm 1
-
第一个命令会为所有 GPU 设置为性能模式,第二个命令只针对 ID 为 0 的 GPU。
-
- 重启 GPU:
-
nvidia-smi --id=0 -r
-
这会重启 ID 为 0 的 GPU。
-
下面通过一张图片对GPU信息进行介绍:
3.3 工具使用
这里介绍一个工具TMUX
,TMUX
是一个终端多路复用器。它可以在多个终端之间轻松切换,分离它们(这不会杀死终端,它们继续在后台运行)和将它们重新连接到其他终端中。为什么要介绍这个工具呢?因为在后面进行Xtuner
微调模型的时候,时间会很长,使用Tmux
可以解决程序被杀死中断的情况,下面介绍一下如何安装并使用。
因为开发机使用的是ubuntu的操作系统,可以使用lsb_release -a
命令查看ubuntu的系统信息:
然后使用apt install tmux
命令安装tmux,安装完成以后可以使用tmux
命令就可以使用tmux了,如果想退出tmux可以使用“Ctrl+d”快捷键。
开发机仅 /root 路径下的文件是持久化存储的,其他路径下安装的软件重启后都会被重置。
具体的使用方法可以查看: