• 每天一个linux命令:top


    1、命令简介

    top (top) 令经常用来实时监控linux的系统状况,比如cpu、内存的使用,类似于Windows的任务管理器。

    2、用法

    top -hv | -abcHimMsS -d delay -n iterations -p pid [, pid ...]

    3、选项

    -b  以批量模式运行,但不能接受命令行输入;
    -c 显示命令行,而不仅仅是命令名;
    -d N  显示两次刷新时间的间隔,比如 -d 5,表示两次刷新间隔为5秒;
    -i 禁止显示空闲进程或僵尸进程;
    -n NUM  显示更新次数,然后退出。比如 -n 5,表示top更新5次数据就退出;
    -p PID 仅监视指定进程的ID;PID是一个数值;
    -q  不经任何延时就刷新;
    -s  安全模式运行,禁用一些交互互指令;
    -S 累积模式,输出每个进程的总的CPU时间,包括已死的子进程;

    4、示例

    示例1:top命令说明

    image

    第一行:任务队列信息,同 uptime 命令的执行结果,
    top - 15:04:53 up 10 min,  3 users,  load average: 0.00, 0.00, 0.00
    15:04:53 当前系统时间
    up 10 min 系统已经运行了10分钟
    3 users 当前有3个用户登录系统
    load average: 0.00, 0.00, 0.00 load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况
    第二行,Tasks — 任务(进程)
    Tasks: 209 total,   1 running, 208 sleeping,   0 stopped,   0 zombie
    209 total 总共有209个进程
    1 running 处于运行中的进程有1个
    208 sleeping 休眠状态中的进程有208个
    0 stopped stopped状态中的进程有0个
    0 zombie 僵尸进程有0个
    第三行,cpu状态信息
    Cpu(s):  0.0%us,  0.1%sy,  0.0%ni, 99.9%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    0.0%us 用户占用CPU的百分比
    0.1%sy 内核占用CPU的百分比
    0.0%ni 改变过优先级的进程占用CPU的百分比
    99.9%id 空闲CPU百分比
    0.0%wa O等待占用CPU的百分比
    0.0%hi 硬中断(Hardware IRQ)占用CPU的百分比
    0.0%si 软中断(Software Interrupts)占用CPU的百分比
    0.0%st (Steal time) 虚拟 CPU 等待实际 CPU 的时间的百分比。
    第四行,内存状态
    Mem:   3922280k total,  1045704k used,  2876576k free,    93988k buffers
    3922280k total 物理内存总量
    1045704k used 使用中的内存总量
    2876576k free 空闲内存总量
    93988k buffers 缓存的内存量
    第五行,swap交换分区信息
    Swap:  8339448k total,        0k used,  8339448k free,   645000k cached
    8339448k total 交换区总量
    0k used 使用的交换区总量
    8339448k free 空闲交换区总量
    645000k cached 缓冲的交换区总量

    对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。

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

    image

    PID 进程id
    USER 进程所有者
    PR 进程优先级
    NI nice值。负值表示高优先级,正值表示低优先级
    VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
    RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
    SHR 共享内存大小,单位kb
    S 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
    %CPU 上次更新到现在的CPU时间占用百分比
    %MEM 进程使用的物理内存百分比
    TIME+ 进程使用的CPU时间总计,单位1/100秒
    COMMAND 进程名称(命令名/命令行)
     
    示例2:设置信息更新次数
    [root@oracledb ~]# top -n 5
    示例3:设置信息更新间隔时间
    [root@oracledb ~]# top -d 5
    示例4:显示 完整命令
    [root@oracledb ~]# top -c
    示例5:显示指定的进程信息
    [root@oracledb ~]# top -p 54
    示例6:以批处理模式显示程序信息
    [root@oracledb ~]# top -b
    示例7:以累积模式显示程序信息
    [root@oracledb ~]# top -S
     
    二、top交互命令

    交互式命令键位

    space  立即更新;
    c 切换到命令名显示,或显示整个命令(包括参数);
    f,F 增加显示字段,或删除显示字段;
    h,? 显示有关安全模式及累积模式的帮助信息;
    k 提示输入要杀死的进程ID,目的是用来杀死该进程(默人信号为15)
    i 禁止空闲进程和僵尸进程;
    l 切换到显示负载平均值和正常运行的时间等信息;
    m 切换到内存信息,并以内存占用大小排序;
    n  提示显示的进程数,比如输入3,就在整屏上显示3个进程;
    o,O 改变显示字段的顺序;
    r 把renice 应用到一个进程,提示输入PID和renice的值;
    s 改变两次刷新时间间隔,以秒为单位;
    t 切换到显示进程和CPU状态的信息;
    A 按进程生命大小进行排序,最新进程显示在最前;
    M 按内存占用大小排序,由大到小;
    N 以进程ID大小排序,由大到小;
    P 按CPU占用情况排序,由大到小
    S 切换到累积时间模式;
    T  按时间/累积时间对任务排序;
    W 把当前的配置写到~/.toprc中;
    多U多核CPU监控

    在top基本视图中,按键盘数字“1”,可监控每个逻辑CPU的状况

    image

    观察上图,服务器有4个物理CPU。再按数字键1,就会返回到top基本视图界面。

    高亮显示当前运行进程

    敲击键盘“b”(打开/关闭加亮效果),top的视图变化如下:

    image

    进程字段排序

    默认进入top时,各进程是按照CPU的占用量来排序的

    image

      敲击键盘“x”(打开/关闭排序列的加亮效果),top的视图变化如下,可以看到,top默认的排序列是“%CPU”

    image

    通过”shift + >”或”shift + <”可以向右或左改变排序列

    image

    按c显示完整命令

    image

  • 相关阅读:
    ASP.NET SignalR HubPipelineModule
    MongoDB新版本特性
    Xamarin向iOS和Android引入C# Async支持
    Redis开源文档《Redis设计与实现》[转]
    WCF的追踪分析工具——SvcPerf
    Windows Azure移动服务更新,支持Android、活动目录和更多语言,并支持在东亚地区部署服务
    社区网站系统 jsGen
    单元测试同时支持 NUnit/MSTest
    .NET的微型Web框架 Nancy
    通过二维码登录(CSC模式)
  • 原文地址:https://www.cnblogs.com/xqzt/p/5448860.html
Copyright © 2020-2023  润新知