WSL2中Python进程运行超20小时,如何查看进程详情及进度?
Linux环境下查看运行中Python进程详细信息的方法
- 基础进程信息查询
- 执行
ps aux | grep python列出所有Python进程,包含PID、CPU/内存占用、启动命令等核心信息; - 若需查看线程级细节,用
ps -efL | grep python,可看到进程下的所有线程ID及资源占用情况。
- 执行
- 实时资源监控
- 安装并使用
htop(apt install htop),启动后按F4输入python筛选进程,直观查看CPU、内存、磁盘IO的实时变化,按P/M可分别按CPU/内存排序; - 针对GPU资源,执行
nvidia-smi查看整体GPU占用,或nvidia-smi pmon -s u实时监控进程级GPU使用率(适配你的RTX3060)。
- 安装并使用
- 进程深度信息
- 找到目标进程PID后,执行
ls -l /proc/<PID>/exe确认运行的Python解释器路径,验证是否为虚拟环境中的Python3.12.3; - 用
pidstat -p <PID> 1每秒输出一次进程的CPU、内存、磁盘IO统计数据,持续监控资源消耗; - 执行
lsof -p <PID>查看进程打开的所有文件,包括数据集文件、日志、临时缓存等。
- 找到目标进程PID后,执行
获取批量处理任务的执行进度
- 无进度跟踪代码的临时方案
- 用
iotop -p <PID>监控进程的磁盘读写速率,若持续有IO活动则说明任务仍在运行; - 用
watch -n 10 du -h <你的输出文件路径>定时查看输出文件的大小变化,估算处理进度; - 通过
lsof -p <PID>确认进程是否仍在读取源数据集文件,判断任务状态。
- 用
- 后续代码优化的进度跟踪方案
- 引入
tqdm库,在遍历数据集时使用tqdm(df.iterrows())或tqdm.pandas(),直接在终端显示进度条; - 加入日志记录逻辑,每处理固定数量的样本(如100条)就打印或写入日志文件,记录已处理条数/总条数;
- 用
psutil编写外部监控脚本,结合历史处理速度(如每小时处理X条)估算剩余时间。
- 引入
提问表述优化建议
- 补充环境细节:明确WSL2对应的Ubuntu具体版本,以及虚拟环境的创建工具(如venv、conda);
- 细化任务场景:说明批量处理的具体逻辑(如Pandas apply调用Ollama模型提取股票代码)、数据集的样本总量;
- 聚焦核心需求:将问题拆分为优先级明确的子问题,比如先问“如何监控当前Python进程的资源占用并估算处理进度”,再补充提问优化的需求;
- 增加前置操作说明:提及是否已尝试过基础的进程查询命令(如ps、top),避免重复回答基础内容。
内容的提问来源于stack exchange,提问作者TheShanachie
相关产品推荐
相关产品推荐

