zoukankan      html  css  js  c++  java
  • top参数详解

    第一行, 任务队列信息, 同 uptime 命令的执行结果

    • 系统时间:15:57:40
    • 运行时间:up 6 days, 4:30
    • 当前登录用户: 3 user
    • 负载均衡(uptime) load average: 0.22, 0.25, 0.23
      load average 后面的三个数分别是1分钟、5分钟、15分钟的负载情况。load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了

    第二行, Tasks — 任务(进程)

    • 总进程:234 total, 运行:1 running, 休眠:232 sleeping, 停止: 1 stopped, 僵尸进程: 0 zombie

    第三行, cpu状态信息

    • 1.0%us【user space】— 用户空间占用CPU的百分比。
    • 0.6%sy【sysctl】— 内核空间占用CPU的百分比。
    • 0.0%ni【】— 改变过优先级的进程占用CPU的百分比
    • 98.4%id【idolt】— 空闲CPU百分比
    • 0.0%wa【wait】— IO等待占用CPU的百分比
    • 0.0%hi【Hardware IRQ】— 硬中断占用CPU的百分比
    • 0.0%si【Software Interrupts】— 软中断占用CPU的百分比

    第四行, 内存状态

    32780168 total,  279136 free, 20911624 used, 11589408 buff/cache

    第五行, swap交换分区信息

    2097148 total, 2097148 free, 0 used. 11307284 avail Mem

    可用内存=free + buffer + cached

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

    第四行中使用中的内存总量(used)指的是现在系统内核控制的内存数,第四行中空闲内存总量(free)是内核还未纳入其管控范围的数量。

    纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linux上free内存会越来越少,但不用为此担心。

    第六行, 空行

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

    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时间总计
    COMMAND — 进程名称(命令名/命令行)

    常用快捷键

    h    显示快捷键帮助
    k    终止一个进程
    i     开/关忽略闲置和僵死进程
    q    退出程序
    r     重新安排一个进程的优先级别
    S      切换到累计模式
    s    更改刷新间隔时间,单位秒
    f,F      从当前显示中添加或者删除项目
    o,O     改变显示项目的顺序
    l     切换显示平均负载和启动时间信息
    m     切换显示内存信息
    M     根据内存使用大小排序
    t     切换显示进程和CPU状态信息
    c    切换显示命令名称和完整命令行
    P      根据CPU使用率进行排序 (默认排序)
    T    根据时间/累计时间进行排序
    w    将当前设置写入~/.toprc文件中
    1    展开多核cpu显示

    top使用方法

    使用格式:

    top [-] [d] [p] [q] [c] [C] [S] [s] [n]

    参数说明:

    d:指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。

    p:通过指定监控进程ID来仅仅监控某个进程的状态。

    q:该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。

    S:指定累计模式。

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

    i:使top不显示任何闲置或者僵死进程。

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

    生产 CPU 高负载问题排查

    1.top -c 将系统资源使用情况实时显示出来(-c 参数可以完整显示命令)

    2. 输入大写 P 将应用按照 CPU 使用率排序

    3. top -Hp pid 然后输入 P 可以按照 CPU 使用率将线程排序

    4. 将线程的 ID 转换为 16 进制(printf "%x " PID), 通过 jstack pid >pid.log 生成日志文件,利用刚才的 16 进制进程 ID 去这个线程快照中搜索即可知道消耗 CPU 的线程在干啥了.

  • 相关阅读:
    《Head First》 MVC运用的设计模式
    unity工具 Animator的使用
    服务器搭建 如果搭建KBE开源服务器
    unity 实战图片挖洞Mask(转载)
    unity博客 推荐(不断补充)
    unity实战 UGUI英雄联盟英雄头顶分段式血条
    unity组成 ToLua
    unity实战 UGUI Text 间距和ContentSizeFitter组件的适配
    unity工具 推荐(不断补充)
    各种单例模式的对比分析
  • 原文地址:https://www.cnblogs.com/xxoome/p/15425338.html
Copyright © 2011-2022 走看看