zoukankan      html  css  js  c++  java
  • Linux 运行进程实时监控pidstat命令

    介绍:

          pidstat主要用于监控全部或指定进程占用系统资源的情况,如CPU,内存、设备IO、任务切换、线程等。pidstat首次运行时显示自系统启动开始的各项统计信息,之后运行pidstat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。

    语法格式:

    pidstat [ -C comm ] [ -d ] [ -h ] [ -I ] [ -l ] [ -p { pid [,...] | SELF | ALL } ] [ -r ] [ -t ] [ -T { TASK | CHILD | ALL } ] [ -u ] [ -V ] [ -w ] [ interval [ count ] ]
    interval :间隔多久统计一次数据,可选
    count:统计一次,可选
    注意:若只传了 interval ,则统计次数是无限次,结束统计后会打印本次所有数据的平均值

    -u:默认的参数,显示各个进程的cpu使用统计
    -r:显示各个进程的内存使用统计
    -d:显示各个进程的IO使用情况
    -p:指定进程号
    -w:显示每个进程的上下文切换情况
    -t:显示选择任务的线程的统计信息外的额外信息
    -T { TASK | CHILD | ALL }
    这个选项指定了pidstat监控的。TASK表示报告独立的task,CHILD关键字表示报告进程下所有线程统计信息。ALL表示报告独立的task和task下面的所有线程。
    注意:task和子线程的全局的统计信息和pidstat选项无关。这些统计信息不会对应到当前的统计间隔,这些统计信息只有在子线程kill或者完成的时候才会被收集。
    -V:版本号
    -h:在一行上显示了所有活动,这样其他程序可以容易解析。
    -I:在SMP环境,表示任务的CPU使用率/内核数量
    -l:显示命令名和所有参数

    实例应用:

    • 每隔 2s 统计打印一次数据,共统计 5 次

    pidstat 2 5

    • 每隔 1s 统计打印一次数据,统计无限次

    pidstat 1

    • 查看活动进程的 CPU 统计信息

    输出信息含义:
    UID:监视任务的真实用户的标识号
    PID:进程ID
    %usr:进程在用户空间占用cpu的百分比
    %system:进程在内核空间占用cpu的百分比
    %guest:进程在虚拟机占用cpu的百分比
    %CPU:进程占用cpu的百分比
    CPU:处理进程的cpu编号
    Command:当前进程对应的命令
    • 查看活跃进程的 I/O 读写情况

    输出信息含义:
    PID:进程id
    kB_rd/s:每秒从磁盘读取的KB
    kB_wr/s:每秒写入磁盘KB
    kB_ccwr/s:任务取消的写入磁盘的KB。当任务截断脏的pagecache的时候会发生。
    COMMAND:task的命令名

    • 显示每个进程的上下文切换情况(-w)

    自动某个进行上下文切换情况

    pidstat -w -p 2831

    输出信息含义
    PID:进程id
    Cswch/s:每秒主动任务上下文切换数量
    Nvcswch/s:每秒被动任务上下文切换数量
    Command:命令名
    • 查看活跃进程的内存使用情况

    输出信息含义:
    PID:进程标识符
    Minflt/s:任务每秒发生的次要错误,不需要从磁盘中加载页
    Majflt/s:任务每秒发生的主要错误,需要从磁盘中加载页
    VSZ:虚拟地址大小,虚拟内存的使用KB
    RSS:常驻集合大小,非交换区五里内存使用KB
    %MEM:进程当前使用的物理内存百分比
    Command:task命令名
    • 显示进程关联的线程的统计信息

    输出信息含义:
    TGID:主进程 ID
    TID:进程下的各个子线程 ID
    • 显示进程关联的线程的统计信息

    输出信息含义:
    StkSize :进程保留堆栈的内存量(KB单位)
    StkRef:进程利用堆栈的内存量(KB单位)
  • 相关阅读:
    centos8 将SSSD配置为使用LDAP并要求TLS身份验证
    Centos8 搭建 kafka2.8 .net5 简单使用kafka
    .net core 3.1 ActionFilter 拦截器 偶然 OnActionExecuting 中HttpContext.Session.Id 为空字符串 的问题
    Springboot根据不同环境加载对应的配置
    VMware Workstation12 安装 Centos8.3
    .net core json配置文件小结
    springboot mybatisplus createtime和updatetime自动填充
    .net core autofac依赖注入简洁版
    .Net Core 使用 redis 存储 session
    .Net Core 接入 RocketMQ
  • 原文地址:https://www.cnblogs.com/uestc2007/p/14632990.html
Copyright © 2011-2022 走看看