Linux 进阶运维与 AI 环境实战:进程管理、网络排错与 GPU 监控
欢迎关注专栏:CSDN:AI 开发技术
- 上一篇:Linux 基础与运维核心命令实战:文件系统、文件操作与文本处理系统讲解 Linux 环境下从文件目录管理到基于 sed、awk 的高级文本处理全流程实战。
- 下一篇: [Redis 基础理论与核心架构解析] 探讨 Redis 作为非关系型数据库的核心概念、与传统数据库的差异,以及高可用架构机制。
Linux 进阶运维与 AI 环境实战:进程管理、网络排错与 GPU 监控
文章目录
- Linux 进阶运维与 AI 环境实战:进程管理、网络排错与 GPU 监控
- 1 业务背景与核心问题
- 2 Linux核心运维实战
- 2.1 进程管理实战
- 2.1.1 ps 基础进程查看
- 2.1.2 ps aux 运维核心命令
- 2.1.3 top 实时系统进程监控
- 2.1.4 htop top增强版
- 2.1.5 kill 进程终止操作
- 2.1.6 jobs 与 bg 后台任务管理
- 2.2 网络排查实战
- 2.2.1 curl 网络请求工具
- 2.2.2 wget 文件下载工具
- 2.2.3 ss 本地网络连接查看
- 2.2.4 netstat 网络状态查看
- 2.2.5 ping 网络连通性测试
- 2.2.6 traceroute 网络路径追踪
- 2.2.7 dig DNS解析查询
- 2.2.8 完整网络分层排查流程
- 2.3 文件权限管理实战
- 2.3.1 测试环境准备
- 2.3.2 测试文件与目录创建
- 2.3.3 权限查看与核心模型
- 2.3.4 chmod 权限修改
- 2.3.5 chown 所有者修改
- 2.3.6 sudo 管理员权限操作
- 3 AI大模型开发环境实战(vLLM/PyTorch/CUDA)
- 3.1 环境准备
- 3.2 CUDA与GPU基础监控
- 3.2.1 GPU状态查看
- 3.2.2 CUDA工具安装与版本查看
- 3.2.3 GPU实时监控
- 3.3 PyTorch GPU环境校验
- 3.4 vLLM大模型推理服务部署
- 3.4.1 vLLM安装与版本查看
- 3.4.2 启动OpenAI格式API服务
- 3.4.3 服务端口校验
- 3.4.4 API接口测试
- 3.5 多GPU分布式运行
- 3.5.1 vLLM多卡张量并行
- 3.5.2 torchrun分布式训练
- 3.6 模型进程管理与缓存清理
- 3.6.1 训练/推理进程查看
- 3.6.2 卡死进程终止
- 3.6.3 Hugging Face模型缓存管理
- 4 AI工程运维核心技能
- 4.1 端口占用排查
- 4.1.1 指定端口查看
- 4.1.2 端口占用进程查询
- 4.2 日志查看与分析
- 4.2.1 训练日志保存
- 4.2.2 实时日志监控
- 4.2.3 错误日志筛选
- 4.3 CUDA环境变量配置
- 4.3.1 查看GPU可见性变量
- 4.3.2 指定运行GPU
- 5 AI工程全流程排查指南
- 6 核心必背命令速查
- 7 AI工程常见问题与排查方案
关键词:Linux进阶, 进程管理, 网络排错, CUDA监控, vLLM阅读耗时:约 25 分钟
本文为个人技术学习笔记分享,记录工程实践过程,仅供参考。
1 业务背景与核心问题
作为全栈与 AI 开发者,扎实的 Linux 运维基本功是确保服务稳定、高效运行的前提。
2 Linux核心运维实战
2.1 进程管理实战
核心命令:
ps top htop kill jobs bg2.1.1 ps 基础进程查看
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 运维核心命令
ps aux| 参数 | 含义 |
|---|---|
| a | 所有用户进程 |
| u | 显示用户信息 |
| x | 显示后台进程 |
2.1.3 top 实时系统进程监控
top| 按键 | 作用 |
|---|---|
| q | 退出 |
| P | 按CPU排序 |
| M | 按内存排序 |
| k | 杀进程 |
| 字段 | 含义 |
|---|---|
| PID | 进程ID |
| USER | 用户 |
| %CPU | CPU占用 |
| %MEM | 内存占用 |
| COMMAND | 命令 |
2.1.4 htop top增强版
安装:
sudo apt install htop运行:
htop| 按键 | 作用 |
|---|---|
| F3 | 搜索 |
| F4 | 过滤 |
| F9 | 杀进程 |
| q | 退出 |
2.1.5 kill 进程终止操作
# 查看 PID ps aux | grep [xxx] # 终止进程 kill [PID] # kill -9 —— 强制终止(危险) kill -9 [PID]| 参数 | 含义 |
|---|---|
| kill | 发送信号 |
| -9 | 强制终止(SIGKILL) |
强制终止风险:
- 文件损坏
- checkpoint损坏
- 数据未保存
2.1.6 jobs 与 bg 后台任务管理
启动后台任务:
sleep 100 &&代表后台运行
查看后台任务:
jobs后台恢复运行:
bg操作流程:
sleep 100使终端卡住- 终止:
Ctrl + C - 暂停:
Ctrl + Z - 后台恢复:
bg
2.2 网络排查实战
核心命令:
curl wget ss netstat ping traceroute dig2.2.1 curl 网络请求工具
curl https://www.baidu.com查看响应头:
curl -I https://www.baidu.com保存网页到文件:
curl -o baidu.html https://www.baidu.com| 选项 | 含义 |
|---|---|
| -o | 输出到指定文件 |
| baidu.html | 保存的文件名 |
2.2.2 wget 文件下载工具
wget https://www.baidu.com2.2.3 ss 本地网络连接查看
ss -tuln查看80/443端口:
ss -tuln | grep 443| 参数 | 含义 |
|---|---|
| -t | TCP协议 |
| -u | UDP协议 |
| -l | 仅显示监听端口 |
| -n | 以数字形式显示 |
2.2.4 netstat 网络状态查看
安装:
sudo apt install net-tools查看监听端口:
netstat -tuln查看进程占用端口:
netstat -tulnp| 参数 | 含义 |
|---|---|
| -t | TCP |
| -u | UDP |
| -l | 监听 |
| -n | 数字格式 |
| -p | 显示进程 |
2.2.5 ping 网络连通性测试
ping www.baidu.com # 指定ping包次数 ping -c 4 www.baidu.com2.2.6 traceroute 网络路径追踪
安装:
sudo apt install traceroute追踪百度路由:
traceroute www.baidu.com2.2.7 dig DNS解析查询
安装:
sudo apt install dnsutils执行查询:
dig www.baidu.com2.2.8 完整网络分层排查流程
# 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 文件权限管理实战
核心命令:
chmod chown sudo2.3.1 测试环境准备
cd ~ mkdir -p linux-practice/permission-demo cd linux-practice/permission-demo2.3.2 测试文件与目录创建
touch file.txt mkdir test_dir2.3.3 权限查看与核心模型
查看权限:
ls -lLinux权限模型:[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 |
数字模式修改:
chmod 644 file.txt # 权限:-rw-r--r-- chmod 755 test_dir # 权限:drwxr-xr-x(目录x权限代表可进入)符号模式修改:
| 符号 | 含义 |
|---|---|
| u | user |
| g | group |
| o | others |
| a | all |
| + | 添加权限 |
| - | 删除权限 |
# 给所有者添加执行权限 chmod u+x file.txt # 移除其他用户读权限 chmod o-r file.txt # 给用户组添加写权限 chmod g+w file.txt2.3.5 chown 所有者修改
# 修改文件所有者 sudo chown username file.txt # 同时修改所有者与用户组 sudo chown username:groupname file.txt2.3.6 sudo 管理员权限操作
# 安装软件 sudo apt install tree # 系统更新 sudo apt update3 AI大模型开发环境实战(vLLM/PyTorch/CUDA)
核心命令:
python pip nvidia-smi nvcc torchrun vllm3.1 环境准备
cd ~ mkdir -p llm-dev cd llm-dev3.2 CUDA与GPU基础监控
3.2.1 GPU状态查看
nvidia-smi| 字段 | 含义 |
|---|---|
| GPU Name | GPU型号 |
| Memory-Usage | 显存占用 |
| GPU-Util | GPU利用率 |
| Processes | GPU进程 |
查看GPU数量:
nvidia-smi -L nvidia-smi -L | wc -l3.2.2 CUDA工具安装与版本查看
安装:
sudo apt install nvidia-cuda-toolkit查看CUDA版本:
nvcc --version查看CUDA安装路径:
which nvcc3.2.3 GPU实时监控
watch -n 1 nvidia-smi3.3 PyTorch GPU环境校验
进入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安装与版本查看
pip install vllm vllm --version3.4.2 启动OpenAI格式API服务
python -m vllm.entrypoints.openai.api_server \ --model Qwen/Qwen2-7B-Instruct3.4.3 服务端口校验
ss -tuln | grep 80003.4.4 API接口测试
查看模型列表:
curl http://localhost:8000/v1/models对话接口请求:
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多卡张量并行
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分布式训练
单机双卡启动:
torchrun --nproc_per_node=2 train.py| 参数 | 含义 |
|---|---|
| torchrun | PyTorch分布式启动 |
| –nproc_per_node | 单节点GPU数量 |
3.6 模型进程管理与缓存清理
3.6.1 训练/推理进程查看
ps aux | grep python ps aux | grep vllm nvidia-smi3.6.2 卡死进程终止
# 查询进程PID ps aux | grep python # 正常终止 kill PID # 强制终止 kill -9 PID3.6.3 Hugging Face模型缓存管理
默认缓存目录:
~/.cache/huggingface/查看缓存大小:
du -sh ~/.cache/huggingface查看磁盘空间:
df -h4 AI工程运维核心技能
4.1 端口占用排查
4.1.1 指定端口查看
ss -tulnp | grep 80004.1.2 端口占用进程查询
lsof -i:80004.2 日志查看与分析
4.2.1 训练日志保存
python train.py > train.log 2>&14.2.2 实时日志监控
tail -f train.log4.2.3 错误日志筛选
grep ERROR train.log4.3 CUDA环境变量配置
4.3.1 查看GPU可见性变量
echo $CUDA_VISIBLE_DEVICES4.3.2 指定运行GPU
# 单卡运行 CUDA_VISIBLE_DEVICES=0 python train.py # 双卡运行 CUDA_VISIBLE_DEVICES=0,1 python train.py5 AI工程全流程排查指南
GPU硬件校验
nvidia-smiCUDA环境校验
nvcc --versionPyTorch CUDA识别校验
python import torch torch.cuda.is_available()vLLM服务启动状态
ss -tuln | grep 8000API接口可用性
curl http://localhost:8000/v1/models6 核心必背命令速查
| 命令 | 作用 |
|---|---|
| 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 |
