• linux下top命令详细介绍


    linuxtop命令详细介绍

       top 命令是 Linux 下常用的系统资源占用查看及性能分析工具,能够实时显示系统中各个进程的资源(比如cpu内存的使用)占用状况,top命令的执行结果是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定。top命令基本上是各个版本的linux的自带命令,例如:CentOS,redhat,ubuntu等。

    top命令的格式参数如下

    1)命令及参数基本用法:

    top -hv | -bcisSHM -d delay -n iterations [-u user | -U user] -p pid [,pid ...]

    2)常用参数说明

    d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。
    p 通过指定监控进程ID来仅仅监控某个进程的状态。
    q 该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。
    S 指定累计模式。
    s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
    i 使top不显示任何闲置或者僵死进程。
    c 显示整个命令行而不只是显示命令名。
    -n :与 -b 搭配,意义是,需要进行几次 top 的输出结果。
    -p :指定某些个 PID 来进行观察监测而已。
    在 top 执行过程当中可以使用的按键指令:
    ? :显示在 top 当中可以输入的按键指令;
    P :以 CPU 的使用资源排序显示;
    M :以 Memory 的使用资源排序显示;
    N :以 PID 来排序喔!
    T :由该 Process 使用的 CPU 时间累积 (TIME+) 排序。
    k :给予某个 PID 一个讯号 (signal)
    r :给予某个 PID 重新制订一个 nice 值。
     

    linux下top命令执行结果

    1)top命令执行结果如图所示

    linux下top命令执行结果详解

    2)top命令执行结果重要列的含义详解

    默认显示的列包括 PID,USERPR,NI,VIRT,RES,SHR,S,%CPU,%MEM,TIME+,COMMAND.

    top命令结果各列的含义如下:

    列名    含义
    PID    进程id
    PPID    父进程id
    RUSER    Realusername
    UID    进程所有者的用户id
    USER    进程所有者的用户名
    GROUP    进程所有者的组名
    TTY    启动进程的终端名。不是从终端启动的进程则显示为?
    PR       优先级
    NInice     值。负值表示高优先级,正值表示低优先级
    P        最后使用的CPU,仅在多CPU环境下有意义
    %CPU    上次更新到现在的CPU时间占用百分比
    TIME    进程使用的CPU时间总计,单位秒
    TIME+    进程使用的CPU时间总计,单位1/100秒
    %MEM    进程使用的物理内存百分比
    VIRT    进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
    SWAP    进程使用的虚拟内存中,被换出的大小,单位kb。
    RES    进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
    CODE    可执行代码占用的物理内存大小,单位kb
    DATA    可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
    SHR    共享内存大小,单位kb
    nFLT    页面错误次数
    nDRT    最后一次写入到现在,被修改过的页面数。
    S    进程状态。
    D=    不可中断的睡眠状态
    R=    运行
    S=    睡眠
    T=    跟踪/停止
    Z=    僵尸进程
    COMMAND    命令名/命令行
    WCHAN    若该进程在睡眠,则显示睡眠中的系统函数名
     

    3)top命令执行结果按照某一列排序

        在命令行提示符执行top命令,输入大写P,则结果按CPU占用降序排序。输入大写M,结果按内存占用降序排序。(注:大写P可以在capslock状态输入p,或者按Shift+p)。

         默认情况下仅显示比较重要的 PID、USERPR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。可以通过下面的快捷键来更改显示内容

    更改显示内容

    通过 f 键可以选择显示的内容。按 f 键之后会显示列的列表,按 a-z 即可显示或隐藏对应的列,最后按回车键确定。

    按 o 键可以改变列的显示顺序。按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z 可以将相应的列向左移动。最后按回车键确定。

    按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序。而大写的 R 键可以将当前的排序倒转。

    linux下top命令快捷键操作

    linux下top命令使用举例 

    实例1:每两秒钟更新一次 top ,观察整体信息,-d参数举例

    [root@linux ~]# top -d 2
    top - 18:30:36 up 30 days, 7 min, 1 user, load average: 0.42, 0.48, 0.45
    Tasks: 163 total, 1 running, 161 sleeping, 1 stopped, 0 zombie
    Cpu(s): 4.7% us, 4.0% sy, 6.3% ni, 82.5% id, 0.4% wa, 0.1% hi, 2.0% si
    Mem: 1033592k total, 955252k used, 78340k free, 208648k buffers
    Swap: 1052216k total, 728k used, 1051488k free, 360248k cached
    <==如果加入 k 或 r 时,就会有相关的字样出现在这里
      
    PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
    3981 apache 34 19 84012 11m 7352 S 17.3 1.2 0:00.09 httpd
    1454 mysql 16 0 289m 40m 2228 S 3.8 4.0 115:01.32 mysqld
    3985 dmtsai 15 0 2148 904 668 R 3.8 0.1 0:00.03 top
    1 root 16 0 3552 552 472 S 0.0 0.1 0:08.90 init
    2 root RT 0 0 0 0 S 0.0 0.0 0:52.76 migration/0
    3 root 34 19 0 0 0 S 0.0 0.0 0:03.01 ksoftirqd/0
     

     实例2:将 top 的信息进行 2 次,然后将结果输出到 /tmp/top.txt,-B -N参数

    [root@linux ~]# top -b -n 2 > /tmp/top.txt

    实例3:假设 9999 是一个已经存在的 PID ,用top命令仅观察指定pid的程序的-p参数用法

    [root@linux ~]# top -d 2 -p 9999 top - 13:53:00 up 51 days, 2:27, 1 user, load average: 0.00, 0.00, 0.00 Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si Mem: 385676k total, 371760k used, 13916k free, 131164k buffers Swap: 1020116k total, 880k used, 1019236k free, 95772k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 9999 root 16 0 5396 1544 1244 S 0.0 0.4 0:00.07 bash

     示例4:在linux中查看指定进程的线程数的-H参数用法

    top -H

    手册中说:-H : Threads toggle

    加上这个选项启动top,top一行显示一个线程。否则,它一行显示一个进程。

    在linux中查看mysql线程的top命令,mysql的pid为2308

    top -H -p 2308

    linux下top命令查看指定进程的线程

    示例5: top命令执行结果之后按数字键1显示各个CPU的核心命令

    linux下top命令详解包括top命令参数使用及结果(virt,res,shr)排序举例说明

    linux下top命令执行结果之后按数字键1显示各个CPU的核心命令

    linux下top命令补充说明(常见问题解答)

    top命令是Linux上进行系统监控的首选命令,当不能满足用户需求时,通常可用ps和netstate两个命令来补充top的不足。

    Linux下top命令中%CPU结果为什么比%us的结果高?

        us是user,sy是system,注意看%wa,waiting,这个是等IO时间,一般来说是在等磁盘操作。

    100%-%id(idle)就是总共实际使用的CPU时间了。

    在Linux下怎样让top命令启动之后就按内存使用排序?

        在键盘上输入大写字母M 以达到以内存占用率大小顺序排列。另外输入大写字母P可以按CPU使用率排序

  • 相关阅读:
    [LeetCode] Rotate Image
    [置顶] (奇迹冬瓜)坦克大战[MFC框架]
    spinner自定义,效果如腾讯QQ账号选择时候的下拉列表
    sqlmap dvwa SQL Injection使用小记
    Activex打包于发布完整版---微软证书制作
    假设web应用的文档根目录为MyApp,那么可以从哪里找到database.jar文件。
    无状态会话Bean、有状态会话Bean、CMP与BMP中,哪一种Bean不需要自己书写连接数据库的代码?
    EJB的优点有哪些?(选择2项)
    对触发器的认识;
    消耗资源的SQL的定位方法;
  • 原文地址:https://www.cnblogs.com/Diyo/p/11411157.html
Copyright © 2020-2023  润新知