前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux下top命令高级用法详解

Linux下top命令高级用法详解

作者头像
Linux兵工厂
发布2023-02-28 13:05:15
2.8K0
发布2023-02-28 13:05:15
举报
文章被收录于专栏:Linux兵工厂

好文推荐

Linux shell编程常用方法总结

C++基础知识精髓

Linux下AutoMake创建工程流程

Qt5.7.1添加支持openssl

zynq平台移植python3.10.5

  • 作为一名Linux软件攻城狮,top命令大家应该并不陌生。top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况。top可以动态显示过程,不断刷新当前状态。top命令提供了实时的对系统处理器的状态监视。它将显示系统中的任务列表,内存使用和执行时间对任务进行排序。

1、top命令的使用方式

  • top命令的格式:
代码语言:javascript
复制
top [-] [d] [p] [q] [c] [C] [S] [s] [n]

选项

功能

-d

指定每两次屏幕信息刷新之间的时间间隔,如希望每秒刷新一次,则使用:top -d 1

-p

通过指定PID来监控某个进程的状态

-S

指定累计模式

-s

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

-i

使top不显示任何闲置或者僵死的进程

-c

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

代码语言:javascript
复制
top                   // 每隔3秒显示所有进程的资源占用情况
top -d 1              // 每隔1秒显示所有进程的资源占用情况
top -c                // 每隔3秒显示进程的资源占用情况,并显示进程的命令行参数(默认只有进程名)
top -p 12345 -p 6789  //  每隔3秒显示pid是12345和pid是6789的两个进程的资源占用情况
top -d 2 -c -p 123456 //每隔2秒显示pid是123456的进程的资源使用情况,并显式该进程启动的命令行参数

2. 统计信息

  • 19:40:09: 当前时间
  • up 3:54: 系统运行的时间
  • 1 user: 当前登录用户数
  • load average: 系统负载,即任务队列的平均长度。三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。
  • Tasks:276 total: 进程总数
  • 2 running: 正在运行的进程数
  • 197 sleeping: 睡眠的进程数
  • 0 stopped: 停止的进程数
  • 0 zombie: 僵尸进程数
  • Cpu(s): 3.4 us: 用户空间占用CPU百分比 进程在用户地址空间中消耗CPU时间的百分比。像shell程序、各种语言的编译器、数据库应用、web服务器和各种桌面应用都算是运行在用户地址空间的进程,这些程序如果不是处于idle状态,那么绝大多数的CPU时间都是运行在用户态。
  • 2.1 sy: 内核空间占用CPU百分比 进程在内核地址空间中消耗CPU时间的百分比。所有进程要使用的系统资源都是由Linux内核处理的。当处于用户态(用户地址空间)的进程需要使用系统的资源时,比如需要分配一些内存、或是执行IO操作、再或者是去创建一个子进程,此时就会进入内核态(内核地址空间)运行。事实上,决定进程在下一时刻是否会被运行的进程调度程序就运行在内核态。对于操作系统的设计来说,消耗在内核态的时间应该是越少越好,在实践中有一类典型的情况会使sy变大,那就是大量的IO操作,因此在调查IO相关的问题时需要着重关注它。
  • 0.0 ni: 用户进程空间内改变过优先级的进程占用CPU百分比 ni是nice的缩写,可以通过nice值调整进程用户态的优先级,这里显示的ni表示调整过nice值的进程消耗掉的CPU时间。如果系统中没有进程被调整过nice值,那么ni就显示为0
  • 94.4 id: 空闲CPU百分比
  • 0.0 wa: 等待输入输出的CPU时间百分比 CPU等待磁盘IO操作的时间。和CPU的处理速度相比,磁盘IO操作是非常慢的,有很多这样的操作,比如:CPU在启动一个磁盘读写操作后,需要等待磁盘读写操作的结果。在磁盘读写操作完成前,CPU只能处于空闲状态。Linux系统在计算系统平均负载时会把CPU等待IO操作的时间也计算进去,所以在我们看到系统平均负载过高时,可以通过wa来判断系统的性能瓶颈是不是过多的IO操作造成的。
  • 0.1 hi: 硬中断占用百分比
  • 0.0 si: 软中断占用百分比 这两个值表示系统处理中断消耗的时间。中断分为硬中断和软中断,hi表示处理硬中断消耗的时间,si表示处理软中断消耗的时间。硬中断是硬盘、网卡等硬件设备发送给CPU的中断消息,当CPU收到中断消息后需要进行适当的处理(消耗CPU时间)。软中断是由程序发出的中断,最终也会执行相应的处理程序(消耗CPU时间)

3. 进程信息

代码语言:javascript
复制
序号  列名    含义
a    PID     进程id
b    PPID    父进程id
c    RUSER   Real user name
d    UID     进程所有者的用户id
e    USER    进程所有者的用户名
f    GROUP   进程所有者的组名
g    TTY     启动进程的终端名。不是从终端启动的进程则显示为 ?
h    PR      优先级
i    NI      nice值。负值表示高优先级,正值表示低优先级
j    P       最后使用的CPU,仅在多CPU环境下有意义
k    %CPU    进程使用的CPU的百分比
l    TIME    进程使用的CPU时间总计,单位秒
m    TIME+   进程使用的CPU时间总计,单位1/100秒
n    %MEM    进程使用的物理内存百分比
o    VIRT    进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
p    SWAP    进程使用的虚拟内存中,被换出的大小,单位kb。
q    RES     进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
r    CODE    可执行代码占用的物理内存大小,单位kb
s    DATA    可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
t    SHR     共享内存大小,单位kb
u    nFLT    页面错误次数
v    nDRT    最后一次写入到现在,被修改过的页面数。
w    S       进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
x    COMMAND 执行的命令
y    WCHAN   若该进程在睡眠,则显示睡眠中的系统函数名
z    Flags   任务标志

4. 自定义显示的列

  • 按f键可更改显示的列信息,f键后显示如下

5. 交互输入

  • 过滤用户:在top命令显示中,输入u,然后输入用户名,则可以查看相应的用户进程。
  • 在top命令下,输入1,可以看到各个CPU的使用情况。
  • 在top命令下,输入i,可以隐藏闲置或僵死的进程,效果跟输入top -i是一样的。
  • top命令默认以K为单位显示内存大小,可以通过大写字母E来切换内存信息区域的显示单位。小写字母m可以控制是否显示内存信息。
  • 在进程列表中,内存的单位默认也是KB,我们可以通过小写字母e来切换单位。
  • 通过小写字母x来粗体显示当前排序的列。
  • 通过小写字母c来显示完整的执行命令,效果跟top -c相同。
  • 通过小写字母h来显示帮助信息。

小结

★top命令是linux下常用的查看系统信息的命令,对程序定位问题,包括CPU占用率,内存泄漏都有很好的参考作用。要学会利用这些系统命令快速定位工作中的问题,有事半功倍的效果。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-11-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Linux兵工厂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、top命令的使用方式
  • 2. 统计信息
  • 3. 进程信息
  • 4. 自定义显示的列
  • 5. 交互输入
  • 小结
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档