linux之性能分析工具top

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

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 显示整个命令行而不只是显示命令名

案例


微信图片_20220503113838.png


第一行:任务队列信息,与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


微信图片_20220503113844.png


第三行: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、内存占用率等
相关文章
|
20天前
|
Linux
在Linux中,列出几种常见打包工具并写相应解压缩参数。
在Linux中,列出几种常见打包工具并写相应解压缩参数。
|
14天前
|
Linux 开发工具
Linux查看已经安装软件的版本,安装软件的路径,以及dpkg、aptitude、apt-get、apt工具的使用
Linux查看已经安装软件的版本,安装软件的路径,以及dpkg、aptitude、apt-get、apt工具的使用
20 2
Linux查看已经安装软件的版本,安装软件的路径,以及dpkg、aptitude、apt-get、apt工具的使用
|
3天前
|
监控 IDE Java
【Java性能调优新工具】JDK 22性能分析器:深度剖析,优化无死角!
【9月更文挑战第9天】JDK 22中的性能分析器为Java应用的性能调优提供了强大的支持。通过深度集成、全面监控、精细化分析和灵活报告生成等核心优势,性能分析器帮助开发者实现了对应用性能的全面掌控和深度优化。在未来的Java开发过程中,我们期待性能分析器能够继续发挥重要作用,为Java应用的性能提升贡献更多力量。
|
10天前
|
安全 Linux 测试技术
Kali Linux预装的自动化渗透测试工具
Kali Linux预装的自动化渗透测试工具
20 2
|
17天前
|
Linux
Linux快速性能分析
通过这些工具和命令的有效组合使用,可以对Linux系统的性能进行快速而全面的分析。熟练地掌握这些命令是系统管理员和性能分析师诊断性能问题和优化系统性能的重要手段。
34 10
|
13天前
|
存储 缓存 监控
Linux性能分析工具-perf并生成火焰图
Linux性能分析工具-perf并生成火焰图
|
20天前
|
监控 Linux
性能分析之 Linux 系统中 ps&top 中 CPU 百分比不一致?
【8月更文挑战第18天】性能分析之 Linux 系统中 ps&top 中 CPU 百分比不一致?
34 4
|
20天前
|
SQL 关系型数据库 MySQL
在Linux中,mysql 数据备份工具有哪些?
在Linux中,mysql 数据备份工具有哪些?
|
10天前
|
Ubuntu Linux
用crash工具学习Linux内核 —— 查看cgroup_roots
用crash工具学习Linux内核 —— 查看cgroup_roots
|
11天前
|
SQL 存储 监控