linux之性能分析工具top

top

top 是一个性能分析工具,能够实时显示系统中各个进程的资源占用状况,与Windows的任务管理器类似

格式

top [-] [d] [p] [q] [c] [C] [S] [s] [n]

常用参数

  • -d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。

  • -p 通过指定监控进程ID来仅仅监控某个进程的状态

  • q 该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。

  • -S 指定累计模式

  • -s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险

  • -i 使top不显示任何闲置或者僵死进程

  • -c 显示整个命令行而不只是显示命令名

案例

第一行:任务队列信息,与uptime命令结果一致

系统当前时间:21:44:13

从本次开机到现在经过的时间:up 190 days

当前有几个用户登录到该机器: 1 user

平均负载值:load average: 0.12, 0.06, 0.05

average 后面的三个数分别是1分钟、5分钟、15分钟的负载情况

load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了

第二行:Tasks 任务(进程)

总进程数: 87 total

正在运行的进程数(TASK_RUNNING): 2 running

睡眠的进程数(TASK_INTERRUPTIBLE和TASK_UNINTERRUPTIBLE): 85 sleeping

停止的进程数(TASK_STOPPED): 0 stopped

僵尸进程数(TASK_ZOMBIE): 0 zombie

第三行:cpu 状态信息

  • 0.3 us(user space)进程在用户空间(user)消耗的CPU时间占比,不包含调整过优先级的进程

  • 0.3 sy(sysctl)进程在内核空间(system)消耗的CPU时间占比

  • 0.0 ni (niced)调整过用户态优先级的进程的CPU时间占比

  • 99.3 id(idle)空闲的CPU时间占比

  • 0.0 wa(wait)等待I/O完成的CPU时间占比

  • 0.0 hi(hardware interrupt)处理硬中断的CPU时间占比

  • 0.0 si (software interrupt)处理软中断的CPU时间占比

  • 0.0 st 当Linux系统是在虚拟机中运行时,等待CPU资源的时间(steal time)占比

第四行:内存状态

以物理内存为例。free 命令也会打印出类似的信息。

  • total 系统可用的物理内存总量
  • free 当前已经使用的物理内存总量
  • used 当前的空闲内存总量
  • buff/cache 用作内核缓冲区的物理内存总量

第五行:swap 交换分区信息

  • total 系统全部的交换区总量
  • used 当前已经使用的交换区总量
  • free 空闲的交换区总量
  • avail 可用的交换区总量

控制显示单位

top 命令默认以 K 为单位显示内存大小。可以通过大写字母 E 来切换内存信息区域的显示单位。注意 E 不能控制任务区域中的内存单位。

第七行以下:各进程(任务)的状态监控

  • PID 进程 ID
  • USER 进程所有者的有效用户名称。简单说就是以哪个用户权限启动的进程
  • PR 进程执行的优先级,PR 的值是以 Linux 内核的视角看到的进程执行的优先级
  • NI 从用户视角看到的进程执行优先级。注意上图中 NI 值为 -20 的进程外,它们的 PR 值都是 0
  • VIRT 进程使用的虚拟内存大小
  • RES 进程使用的物理内存大小
  • SHR 进程使用的共享内存的大小
  • S 进程当前的状态。S 值有下面几种:
    D 不可中断的睡眠状态(uninterruptible sleep)
    I idle 状态
    R 进程在 running 队列中,正在运行或准备运行(running)
    S 睡眠状态(sleeping)
    T 停止状态(stopped by job control signal)
    t 跟踪状态(stopped by debugger during trace)
    Z 僵尸状态(zombie)
  • %CPU 进程使用 CPU 的百分比
  • %MEM 进程使用内存的百分比
  • TIME+ 进程累计使用的 CPU 时间
  • COMMAND 运行进程对应的程序

top 运行中可以通过 top 的内部命令对进程的显示方式进行控制

  • s 改变画面更新频率
  • l 关闭或开启第一部分第一行 top 信息的表示
  • t 关闭或开启第一部分第二行 Tasks 和第三行 CPUs 信息的表示
  • m 关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示
  • N 以 PID 的大小的顺序排列表示进程列表
  • P 以 CPU 占用率大小的顺序排列进程列表
  • M 以内存占用率大小的顺序排列进程列表
  • h 显示帮助
  • n 设置在进程列表所显示进程的数量
  • q 退出 top
  • s 改变画面更新周期

top 命令然后按数字“1”可监控每个逻辑 CPU 的状况。

如果不按1,则在 top 视图里面显示的是所有 CPU 的平均值。

案例

显示进程信息

top

显示完整命令

top -c

设置信息更新次数

top -n 2  #表示更新两次后终止更新显示

设置信息更新时间

top -d 3 #表示更新周期为3秒

显示指定的进程信息

top -p 139  #显示进程号为139的进程信息,CPU、内存占用率等
posted @ 2022-03-11 21:45  BUG弄潮儿  阅读(364)  评论(0编辑  收藏  举报