欢迎关注专栏: CSDN:AI 开发技术
- 上一篇: Linux 基础与运维核心命令实战:文件系统、文件操作与文本处理 系统讲解 Linux 环境下从文件目录管理到基于 sed、awk 的高级文本处理全流程实战。
- 下一篇: [Redis 基础理论与核心架构解析] 探讨 Redis 作为非关系型数据库的核心概念、与传统数据库的差异,以及高可用架构机制。
Linux 进阶运维与 AI 环境实战:进程管理、网络排错与 GPU 监控
文章目录
- [Linux 进阶运维与 AI 环境实战:进程管理、网络排错与 GPU 监控](#Linux 进阶运维与 AI 环境实战:进程管理、网络排错与 GPU 监控)
-
- [1 业务背景与核心问题](#1 业务背景与核心问题)
- [2 Linux核心运维实战](#2 Linux核心运维实战)
-
- [2.1 进程管理实战](#2.1 进程管理实战)
-
- [2.1.1 ps 基础进程查看](#2.1.1 ps 基础进程查看)
- [2.1.2 ps aux 运维核心命令](#2.1.2 ps aux 运维核心命令)
- [2.1.3 top 实时系统进程监控](#2.1.3 top 实时系统进程监控)
- [2.1.4 htop top增强版](#2.1.4 htop top增强版)
- [2.1.5 kill 进程终止操作](#2.1.5 kill 进程终止操作)
- [2.1.6 jobs 与 bg 后台任务管理](#2.1.6 jobs 与 bg 后台任务管理)
- [2.2 网络排查实战](#2.2 网络排查实战)
-
- [2.2.1 curl 网络请求工具](#2.2.1 curl 网络请求工具)
- [2.2.2 wget 文件下载工具](#2.2.2 wget 文件下载工具)
- [2.2.3 ss 本地网络连接查看](#2.2.3 ss 本地网络连接查看)
- [2.2.4 netstat 网络状态查看](#2.2.4 netstat 网络状态查看)
- [2.2.5 ping 网络连通性测试](#2.2.5 ping 网络连通性测试)
- [2.2.6 traceroute 网络路径追踪](#2.2.6 traceroute 网络路径追踪)
- [2.2.7 dig DNS解析查询](#2.2.7 dig DNS解析查询)
- [2.2.8 完整网络分层排查流程](#2.2.8 完整网络分层排查流程)
- [2.3 文件权限管理实战](#2.3 文件权限管理实战)
-
- [2.3.1 测试环境准备](#2.3.1 测试环境准备)
- [2.3.2 测试文件与目录创建](#2.3.2 测试文件与目录创建)
- [2.3.3 权限查看与核心模型](#2.3.3 权限查看与核心模型)
- [2.3.4 chmod 权限修改](#2.3.4 chmod 权限修改)
- [2.3.5 chown 所有者修改](#2.3.5 chown 所有者修改)
- [2.3.6 sudo 管理员权限操作](#2.3.6 sudo 管理员权限操作)
- [3 AI大模型开发环境实战(vLLM/PyTorch/CUDA)](#3 AI大模型开发环境实战(vLLM/PyTorch/CUDA))
-
- [3.1 环境准备](#3.1 环境准备)
- [3.2 CUDA与GPU基础监控](#3.2 CUDA与GPU基础监控)
-
- [3.2.1 GPU状态查看](#3.2.1 GPU状态查看)
- [3.2.2 CUDA工具安装与版本查看](#3.2.2 CUDA工具安装与版本查看)
- [3.2.3 GPU实时监控](#3.2.3 GPU实时监控)
- [3.3 PyTorch GPU环境校验](#3.3 PyTorch GPU环境校验)
- [3.4 vLLM大模型推理服务部署](#3.4 vLLM大模型推理服务部署)
-
- [3.4.1 vLLM安装与版本查看](#3.4.1 vLLM安装与版本查看)
- [3.4.2 启动OpenAI格式API服务](#3.4.2 启动OpenAI格式API服务)
- [3.4.3 服务端口校验](#3.4.3 服务端口校验)
- [3.4.4 API接口测试](#3.4.4 API接口测试)
- [3.5 多GPU分布式运行](#3.5 多GPU分布式运行)
-
- [3.5.1 vLLM多卡张量并行](#3.5.1 vLLM多卡张量并行)
- [3.5.2 torchrun分布式训练](#3.5.2 torchrun分布式训练)
- [3.6 模型进程管理与缓存清理](#3.6 模型进程管理与缓存清理)
-
- [3.6.1 训练/推理进程查看](#3.6.1 训练/推理进程查看)
- [3.6.2 卡死进程终止](#3.6.2 卡死进程终止)
- [3.6.3 Hugging Face模型缓存管理](#3.6.3 Hugging Face模型缓存管理)
- [4 AI工程运维核心技能](#4 AI工程运维核心技能)
-
- [4.1 端口占用排查](#4.1 端口占用排查)
-
- [4.1.1 指定端口查看](#4.1.1 指定端口查看)
- [4.1.2 端口占用进程查询](#4.1.2 端口占用进程查询)
- [4.2 日志查看与分析](#4.2 日志查看与分析)
-
- [4.2.1 训练日志保存](#4.2.1 训练日志保存)
- [4.2.2 实时日志监控](#4.2.2 实时日志监控)
- [4.2.3 错误日志筛选](#4.2.3 错误日志筛选)
- [4.3 CUDA环境变量配置](#4.3 CUDA环境变量配置)
-
- [4.3.1 查看GPU可见性变量](#4.3.1 查看GPU可见性变量)
- [4.3.2 指定运行GPU](#4.3.2 指定运行GPU)
- [5 AI工程全流程排查指南](#5 AI工程全流程排查指南)
- [6 核心必背命令速查](#6 核心必背命令速查)
- [7 AI工程常见问题与排查方案](#7 AI工程常见问题与排查方案)
关键词 :Linux进阶, 进程管理, 网络排错, CUDA监控, vLLM 阅读耗时:约 25 分钟

本文为个人技术学习笔记分享,记录工程实践过程,仅供参考。
1 业务背景与核心问题
作为全栈与 AI 开发者,扎实的 Linux 运维基本功是确保服务稳定、高效运行的前提。
2 Linux核心运维实战
2.1 进程管理实战
核心命令:
Bash
ps
top
htop
kill
jobs
bg
2.1.1 ps 基础进程查看
Bash
ps
PID TTY TIME CMD
2180 pts/4 00:00:00 bash
2736 pts/4 00:00:00 ps
| 字段 | 含义 |
|---|---|
| PID | 进程ID |
| TTY | 终端 |
| TIME | CPU占用时间 |
| CMD | 命令名称 |
2.1.2 ps aux 运维核心命令
Bash
ps aux
| 参数 | 含义 |
|---|---|
| a | 所有用户进程 |
| u | 显示用户信息 |
| x | 显示后台进程 |
2.1.3 top 实时系统进程监控
Bash
top
| 按键 | 作用 |
|---|---|
| q | 退出 |
| P | 按CPU排序 |
| M | 按内存排序 |
| k | 杀进程 |
| 字段 | 含义 |
|---|---|
| PID | 进程ID |
| USER | 用户 |
| %CPU | CPU占用 |
| %MEM | 内存占用 |
| COMMAND | 命令 |
2.1.4 htop top增强版
安装:
Bash
sudo apt install htop
运行:
Bash
htop
| 按键 | 作用 |
|---|---|
| F3 | 搜索 |
| F4 | 过滤 |
| F9 | 杀进程 |
| q | 退出 |
2.1.5 kill 进程终止操作
Bash
# 查看 PID
ps aux | grep [xxx]
# 终止进程
kill [PID]
# kill -9 ------ 强制终止(危险)
kill -9 [PID]
| 参数 | 含义 |
|---|---|
| kill | 发送信号 |
| -9 | 强制终止(SIGKILL) |
强制终止风险:
- 文件损坏
- checkpoint损坏
- 数据未保存
2.1.6 jobs 与 bg 后台任务管理
启动后台任务:
Bash
sleep 100 &
& 代表后台运行
查看后台任务:
Bash
jobs
后台恢复运行:
Bash
bg
操作流程:
sleep 100使终端卡住- 终止:
Ctrl + C - 暂停:
Ctrl + Z - 后台恢复:
bg
2.2 网络排查实战
核心命令:
Bash
curl
wget
ss
netstat
ping
traceroute
dig
2.2.1 curl 网络请求工具
Bash
curl https://www.baidu.com
查看响应头:
Bash
curl -I https://www.baidu.com
保存网页到文件:
Bash
curl -o baidu.html https://www.baidu.com
| 选项 | 含义 |
|---|---|
| -o | 输出到指定文件 |
| baidu.html | 保存的文件名 |
2.2.2 wget 文件下载工具
Bash
wget https://www.baidu.com
2.2.3 ss 本地网络连接查看
Bash
ss -tuln
查看80/443端口:
Bash
ss -tuln | grep 443
| 参数 | 含义 |
|---|---|
| -t | TCP协议 |
| -u | UDP协议 |
| -l | 仅显示监听端口 |
| -n | 以数字形式显示 |
2.2.4 netstat 网络状态查看
安装:
Bash
sudo apt install net-tools
查看监听端口:
Bash
netstat -tuln
查看进程占用端口:
Bash
netstat -tulnp
| 参数 | 含义 |
|---|---|
| -t | TCP |
| -u | UDP |
| -l | 监听 |
| -n | 数字格式 |
| -p | 显示进程 |
2.2.5 ping 网络连通性测试
Bash
ping www.baidu.com
# 指定ping包次数
ping -c 4 www.baidu.com
2.2.6 traceroute 网络路径追踪
安装:
Bash
sudo apt install traceroute
追踪百度路由:
Bash
traceroute www.baidu.com
2.2.7 dig DNS解析查询
安装:
Bash
sudo apt install dnsutils
执行查询:
Bash
dig www.baidu.com
2.2.8 完整网络分层排查流程
Bash
# 1. DNS 解析校验
dig +short www.baidu.com
# 2. 网络连通性校验
ping www.baidu.com
# 3. HTTPS服务可用性
curl -I https://www.baidu.com
# 4. 文件下载测试
wget https://www.baidu.com
# 5. 本地端口监听状态
ss -tuln
| 网络层级 | 排查命令 |
|---|---|
| DNS层 | dig |
| 网络层 | ping |
| 路由层 | traceroute |
| 传输层 | ss/netstat |
| 应用层 | curl/wget |
2.3 文件权限管理实战
核心命令:
Bash
chmod
chown
sudo
2.3.1 测试环境准备
Bash
cd ~
mkdir -p linux-practice/permission-demo
cd linux-practice/permission-demo
2.3.2 测试文件与目录创建
Bash
touch file.txt
mkdir test_dir
2.3.3 权限查看与核心模型
查看权限:
Bash
ls -l
Linux权限模型:[user][group][others]
| 对象 | 含义 |
|---|---|
| user | 文件所有者 |
| group | 所属用户组 |
| others | 其他所有用户 |
2.3.4 chmod 权限修改
权限数值规则:
| 权限 | 数值 |
|---|---|
| r | 4 |
| w | 2 |
| x | 1 |
权限组合计算:
| 权限 | 数值计算 | 结果 |
|---|---|---|
| rwx | 4+2+1 | 7 |
| rw- | 4+2 | 6 |
| r-- | 4 | 4 |
| r-x | 4+1 | 5 |
数字模式修改:
Bash
chmod 644 file.txt
# 权限:-rw-r--r--
chmod 755 test_dir
# 权限:drwxr-xr-x(目录x权限代表可进入)
符号模式修改:
| 符号 | 含义 |
|---|---|
| u | user |
| g | group |
| o | others |
| a | all |
| + | 添加权限 |
| - | 删除权限 |
Bash
# 给所有者添加执行权限
chmod u+x file.txt
# 移除其他用户读权限
chmod o-r file.txt
# 给用户组添加写权限
chmod g+w file.txt
2.3.5 chown 所有者修改
Bash
# 修改文件所有者
sudo chown username file.txt
# 同时修改所有者与用户组
sudo chown username:groupname file.txt
2.3.6 sudo 管理员权限操作
Bash
# 安装软件
sudo apt install tree
# 系统更新
sudo apt update
3 AI大模型开发环境实战(vLLM/PyTorch/CUDA)
核心命令:
Bash
python
pip
nvidia-smi
nvcc
torchrun
vllm
3.1 环境准备
Bash
cd ~
mkdir -p llm-dev
cd llm-dev
3.2 CUDA与GPU基础监控
3.2.1 GPU状态查看
Bash
nvidia-smi
| 字段 | 含义 |
|---|---|
| GPU Name | GPU型号 |
| Memory-Usage | 显存占用 |
| GPU-Util | GPU利用率 |
| Processes | GPU进程 |
查看GPU数量:
Bash
nvidia-smi -L
nvidia-smi -L | wc -l
3.2.2 CUDA工具安装与版本查看
安装:
Bash
sudo apt install nvidia-cuda-toolkit
查看CUDA版本:
Bash
nvcc --version
查看CUDA安装路径:
Bash
which nvcc
3.2.3 GPU实时监控
Bash
watch -n 1 nvidia-smi
3.3 PyTorch GPU环境校验
进入Python环境:
Bash
python
核心校验命令:
Python
import torch
# 检查CUDA是否可用
torch.cuda.is_available()
# 查看GPU数量
torch.cuda.device_count()
# 查看GPU名称
torch.cuda.get_device_name(0)
# 查看当前使用设备
torch.cuda.current_device()
# 退出Python
exit()
3.4 vLLM大模型推理服务部署
3.4.1 vLLM安装与版本查看
Bash
pip install vllm
vllm --version
3.4.2 启动OpenAI格式API服务
Bash
python -m vllm.entrypoints.openai.api_server \
--model Qwen/Qwen2-7B-Instruct
3.4.3 服务端口校验
Bash
ss -tuln | grep 8000
3.4.4 API接口测试
查看模型列表:
Bash
curl http://localhost:8000/v1/models
对话接口请求:
Bash
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model":"Qwen/Qwen2-7B-Instruct",
"messages":[
{"role":"user","content":"hello"}
]
}'
3.5 多GPU分布式运行
3.5.1 vLLM多卡张量并行
Bash
python -m vllm.entrypoints.openai.api_server \
--model Qwen/Qwen2-7B-Instruct \
--tensor-parallel-size 2
| 参数 | 含义 |
|---|---|
| --model | 模型名称 |
| --tensor-parallel-size | GPU数量 |
3.5.2 torchrun分布式训练
单机双卡启动:
Bash
torchrun --nproc_per_node=2 train.py
| 参数 | 含义 |
|---|---|
| torchrun | PyTorch分布式启动 |
| --nproc_per_node | 单节点GPU数量 |
3.6 模型进程管理与缓存清理
3.6.1 训练/推理进程查看
Bash
ps aux | grep python
ps aux | grep vllm
nvidia-smi
3.6.2 卡死进程终止
Bash
# 查询进程PID
ps aux | grep python
# 正常终止
kill PID
# 强制终止
kill -9 PID
3.6.3 Hugging Face模型缓存管理
默认缓存目录:
Bash
~/.cache/huggingface/
查看缓存大小:
Bash
du -sh ~/.cache/huggingface
查看磁盘空间:
Bash
df -h
4 AI工程运维核心技能
4.1 端口占用排查
4.1.1 指定端口查看
Bash
ss -tulnp | grep 8000
4.1.2 端口占用进程查询
Bash
lsof -i:8000
4.2 日志查看与分析
4.2.1 训练日志保存
Bash
python train.py > train.log 2>&1
4.2.2 实时日志监控
Bash
tail -f train.log
4.2.3 错误日志筛选
Bash
grep ERROR train.log
4.3 CUDA环境变量配置
4.3.1 查看GPU可见性变量
Bash
echo $CUDA_VISIBLE_DEVICES
4.3.2 指定运行GPU
Bash
# 单卡运行
CUDA_VISIBLE_DEVICES=0 python train.py
# 双卡运行
CUDA_VISIBLE_DEVICES=0,1 python train.py
5 AI工程全流程排查指南
GPU硬件校验
Bash
nvidia-smi
CUDA环境校验
Bash
nvcc --version
PyTorch CUDA识别校验
Bash
python
import torch
torch.cuda.is_available()
vLLM服务启动状态
Bash
ss -tuln | grep 8000
API接口可用性
Bash
curl http://localhost:8000/v1/models
6 核心必背命令速查
| 命令 | 作用 |
|---|---|
| nvidia-smi | 查看GPU状态 |
| nvcc --version | 查看CUDA版本 |
| pip list | 查看Python依赖包 |
| torch.cuda.is_available() | 检查PyTorch CUDA |
| ss -tuln | 查看端口监听 |
| tail -f | 实时查看日志 |
| ps aux | 查看系统进程 |
7 AI工程常见问题与排查方案
| 问题 | 排查命令 |
|---|---|
| GPU不可见 | nvidia-smi |
| CUDA环境异常 | nvcc --version |
| PyTorch未识别GPU | torch.cuda.is_available() |
| vLLM服务无法访问 | ss -tuln |
| 端口冲突占用 | lsof -i |
| 模型下载失败 | curl/wget |
| 显存溢出爆炸 | nvidia-smi |
| 训练/推理服务卡死 | ps aux + kill |