Linux 和 Windows 查看当前运行的 python 进程及 GPU、CPU、磁盘利用率

本文指导如何在Linux和Windows系统中查看当前运行的Python进程,包括通过ps、wmic等命令,并提供GPU和CPU利用率的监测方法,如nvidia-smi、top/htop等,以及磁盘利用率的查看技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • Linux 和 Windows 查看当前运行的 python 进程及 GPU、CPU、磁盘利用率


    查看当前 python 进程

    Linux

    在 shell 中执行如下指令:

    ps -ef | grep python
    

    或者

    ps aux | grep python
    

    查看用户 wuliyttaotao 的所用进程:

    ps aux|grep wuliyttaotao
    

    实时查看所有进程:

    top
    

    或者(同时能查看各个 CPU 利用率)

    htop
    

    杀死某个进程:

    kill -9 进程号
    

    暂停某个进程:

    kill -STOP 进程号
    

    恢复进程执行:

    kill -CONT 进程号
    

    Windows

    在 shell 中执行如下指令:

    wmic process where name="python.exe"
    

    或者

    wmic process where name="python.exe" list full
    
    wmic process where name="python.exe" list brief
    

    查看其它程序进程,只需要将 python 改个名即可。

    查看 GPU 利用率

    Linux

    Linux 下,直接执行指令:

    nvidia-smi
    

    或者,使用 pip 安装 gpustat,之后使用 gpustat 查看 gpu 利用状态:(-cpu 分别是三个状态指示)

    gpustat -cpu
    

    结合 watch 指令持续查看 GPU 状态:

    watch -n 0.1 nvidia-smi
    
    watch -n 0.1 --color gpustat -cpu --color
    

    Windows

    Windows 下,需要切换到 nvidia-smi.exe 可执行程序的目录 C:Program FilesNVIDIA CorporationNVSMI 下,再在命令行中执行该程序。指令如下:

    cd C:Program FilesNVIDIA CorporationNVSMI
    nvidia-smi.exe
    

    示意图:

    Linux CPU 利用率

    在执行 top 指令之后,按数字 1 号键可以看到每个 CPU 的详细情况:

    top
    

    htop 指令比 top 指令更加直观:

    htop
    

    Linux 磁盘利用率

    查看整个 file system 的使用情况:

    df -lh
    

    查看当前文件夹及子文件(夹)的大小:(修改 --max-depth 参数即可查看不同深度的子文件夹的情况)

    du -ah --max-depth=0
    
GPU 利用率低通常表现为 GPU 在采样周期内执行 kernel 的时间占比较低,这可能由多个因素导致。以下是一些常见原因及对应的优化方法。 ### 1. 数据传输瓶颈 当 CPUGPU 传输数据的速度较慢时,会导致 GPU 等待数据,从而降低利用率。此外,GPU 内部不同内存层次之间的数据迁移也可能成为瓶颈。 - **优化方法**: - 使用异步数据传输技术(如 CUDA 流)[^1]。 - 尽量减少主机与设备之间的数据交换频率。 - 对于频繁访问的数据,尽量将其保留在 GPU 显存中。 ### 2. Kernel 执行效率低下 如果每个 kernel 的计算密度不够高或者并行化程度不足,则无法充分利用 GPU 的计算资源。 - **优化方法**: - 增加每个线程块中的线程数量以提高并行度。 - 调整网格块的大小,使得 workload 更均匀地分布在所有 SM 上。 - 提高指令级并行性 (ILP),通过展开循环等手段增加单个 warp 内部的操作数。 ### 3. 计算资源未充分调度 即使有大量任务等待处理,但如果调度器未能有效地将这些任务分配给可用的 SM,也会造成 GPU 利用率下降。 - **优化方法**: - 确保有足够的并发工作负载来保持所有 SM 活跃。 - 避免长时间运行的任务独占某些 SM,影响其他任务的执行[^1]。 ### 4. 存储带宽限制 显存带宽是决定 GPU 性能的关键因素之一。若程序对显存带宽的需求超过了硬件所能提供的最大值,则会显著拖慢整体执行速度。 - **优化方法**: - 减少全局内存访问次数,尽可能使用共享内存或寄存器进行中间结果缓存。 - 对齐内存访问模式,利用 coalesced memory access 特性提升带宽利用率。 ### 5. I/O 或外部依赖延迟 除了上述内部因素外,外部系统组件如磁盘读写、网络通信等也会影响 GPU 的实际运行效率。 - **优化方法**: - 实施预取策略,在后台提前加载后续需要的数据到 GPU 显存中。 - 利用多线程或多进程架构分离 I/O 密集型与计算密集型任务。 ```python # 示例:使用 PyTorch 进行异步数据传输 import torch device = torch.device("cuda") data = torch.randn(1000, 1000).to(device) # 默认同步传输 # 异步传输示例 stream = torch.cuda.Stream() with torch.cuda.stream(stream): async_data = data.clone().detach().to(device=device, non_blocking=True) ``` 以上仅为部分原因及其解决方案概述,具体实施还需结合实际情况深入分析。对于特定应用场景,可能还需要进一步调整参数设置或重构算法结构以达到最佳效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值