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、内存占用率等
相关文章
|
2月前
|
安全 Linux Shell
四、Linux核心工具:Vim, 文件链接与SSH
要想在Linux世界里游刃有余,光会“走路”还不够,还得配上几样“高级装备”。首先是Vim编辑器,它像一把瑞士军刀,让你能在命令行里高效地修改文件。然后要懂“软硬链接”,软链接像个快捷方式,硬链接则是给文件起了个别名。最后,SSH是你的“传送门”,不仅能让你安全地远程登录服务器,还能用scp轻松传输文件,设置好密钥更能实现免-密登录,极大提升效率。
282 3
|
2月前
|
安全 Linux iOS开发
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
141 0
SonarQube Server 2025 Release 5 (macOS, Linux, Windows) - 代码质量、安全与静态分析工具
|
2月前
|
Unix Linux 程序员
Linux文本搜索工具grep命令使用指南
以上就是对Linux环境下强大工具 `grep` 的基础到进阶功能介绍。它不仅能够执行简单文字查询任务还能够处理复杂文字处理任务,并且支持强大而灵活地正则表达规范来增加查询精度与效率。无论您是程序员、数据分析师还是系统管理员,在日常工作中熟练运用该命令都将极大提升您处理和分析数据效率。
165 16
|
6月前
|
Linux 开发工具
7种比较Linux中文本文件的最佳工具
7种比较Linux中文本文件的最佳工具
7种比较Linux中文本文件的最佳工具
|
4月前
|
缓存 监控 Linux
Linux系统性能调优技巧和相关工具
Linux 作为一种应用应展和系统服务的优选操作系统,在处理性能和端到端点评估上持有出色表现。但是,在处理进程或系统处于低效状态时,性能调优就显得十分重要。本文将探讨一些 Linux 系统性能调优的常用技巧,并介绍相关工具
131 0
Linux系统性能调优技巧和相关工具
|
4月前
|
Linux 数据安全/隐私保护 iOS开发
推荐Linux环境下效能优良的双向文件同步工具
综合上述条件,对于Linux环境下的双向文件同步需求,Unison 和 Syncthing 是两个非常出色的选择。它们都有良好的社区支持和文档资源,适用于不同规模的环境,从个人使用到商业部署。Unison 特别适合那些需要手动干预同步过程、需要处理文件冲突解决的场景。而 Syncthing 更加现代化,适合需要自动、实时的数据同步与备份的环境。对于选择哪一个,这将取决于个人的使用场景和具体需求。
412 16
|
3月前
|
数据采集 编解码 运维
一文讲完说懂 WowKey -- WowKey 是一款 Linux 类设备的命令行(CLT)运维工具
WowKey 是一款面向 Linux 类设备的命令行运维工具,支持自动登录、批量执行及标准化维护,适用于企业、团队或个人管理多台设备,显著提升运维效率与质量。
|
6月前
|
Ubuntu 搜索推荐 Linux
详解Ubuntu的strings与grep命令:Linux开发的实用工具。
这就是Ubuntu中的strings和grep命令,透明且强大。我希望你喜欢这个神奇的世界,并能在你的Linux开发旅程上,通过它们找到你的方向。记住,你的电脑是你的舞台,在上面你可以做任何你想做的事,只要你敢于尝试。
342 32
|
8月前
|
自然语言处理 数据库 iOS开发
DBeaver Ultimate Edtion 25.0 Multilingual (macOS, Linux, Windows) - 通用数据库工具
DBeaver Ultimate Edtion 25.0 Multilingual (macOS, Linux, Windows) - 通用数据库工具
514 12
DBeaver Ultimate Edtion 25.0 Multilingual (macOS, Linux, Windows) - 通用数据库工具
下一篇
开通oss服务