• top 命令详解


    top

    作用:动态查看系统进程信息

    路径:/usr/bin/top

    top - 17:33:20 up 6 min, 1 user, load average: 0.79, 1.28, 0.71
    Tasks: 237 total, 3 running, 234 sleeping, 0 stopped, 0 zombie
    %Cpu(s): 0.7 us, 0.3 sy, 0.0 ni, 98.7 id, 0.0 wa, 0.3 hi, 0.0 si, 0.0 st
    MiB Mem : 1826.8 total, 104.9 free, 1067.5 used, 654.5 buff/cache
    MiB Swap: 2116.0 total, 2112.5 free, 3.5 used. 586.3 avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND   
    

    指标解释:

    up 系统运行时间

    user 系统登录用户数

    load average:过去某段时间内CPU平均的负载情况,(排队要执行的的进程数,排队的数量最好不要超过cpu的核数,比如4核,但是数字大于

    4则代表有进程在排队,等待执行)

    第一个值所在的位置:过去一分钟的

    第二个值所在的位置:过去五分钟的

    第三个值所在的位置:过去十五分钟的

    Task:当前有多少个任务,几种状态:正在运行、休眠、停止、僵死

    Cpu(s):反映cpu的一些数据(默认显示的是平均值):

    • us:用户使用(用户进程,如myslq、tomcat、qq)的cpu的百分比

    • sy:系统使用(内核空间)的cpu的百分比

    • ni:用户进程空间改变过优先级的进程占用 CPU 的百分比。通过 nice 命令可以更改优先命令来执行程序。优先级 -20 最高,19最低

    • id:idle,空闲的 CPU 百分比:=1-us-sy;统计使用的 CPU 利用利用率,通过 1-%id 获取。id持续过低,则CPU资源有问题

    • wa:wait,因为有些任务是需要磁盘的读写(如tomcat需要写日志),而CPU的速度比磁盘写入的速度更快,所以有了这个等待写入数据的状态,如果这个值比较大的话,说明磁盘写入速度比较慢,压力比较大,磁盘那块很可能就有问题,则考虑 IO的性能是否有瓶颈,再用 iostat,sar等命令辅助分析

    • hi:硬中断占用 CPU 的百分比,使用率过高时,表示当前硬件中断占比高。一般硬件中断可以分析文件 /proc/interrupts、/proc/irq/pid/smp_affinity、服务 irqbalance 是否配置、以及CPU的频率设置,通过这些打散优化系统的硬件中断。

    • si:软中断占用 CPU 的百分比。软中断:Linux 内核通过一种软件的方法(可延迟函数)来模拟硬件的中断,通常叫软中断。软中断一般和网络有关,如网卡到IP层的数据包收发,系统长时间写日志等都会产生软中断。 当网络出现拥塞,软件中断程序 ksoftirqd 肯定会出现瓶颈,可使用 ps aux | grep ksoftirqd 命令查看相关信息。

    • st:跟中断相关的,不用关注

    • Mem:memory,内存,一般如果是要看内存不使用top命令;几种状态如下

      • total 物理内存总量
      • used 使用的物理内存总量
      • free 空闲内存总量
      • buffers 用作内核缓存的内存量
      • cached 缓冲的交换区总量
        buffers 和 cached 的作用是缩短I/O 系统调用的时间,比如读写。cache 的值大,说明 cache 住的文件数多,若频繁的访问文件能被命中,则明显会比读取磁盘调用快,磁盘的IO必定会减少。若命中率低,要考虑 drop cache 并提升命中率。
    • Swap:交换分区,磁盘上的一块区域,当内存满时,可以充当临时内存,但是速度还是比真实的内存慢很多。这个指标反映出内存是否足够的情况,若used数据一直在涨,则说明内存不足

    下方显示了各个进程的详细信息:

    • 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的百分比,得出进程的CPU利用率
    • %MEM 当前进程占用的物理内存的百分比
    • TIME+ 进程使用的CPU时间总计,单位1/100秒
    • COMMAND 命令名/命令行

    释放内存操作:当系统急需要内存的时候,通过以下操作释放 buffer/cache,这个可以看成可用内容,drop cache 操作如下

    # sync
    # sync
    # echo 3 > /proc/sys/vm/drop_caches
    # echo 3 > /proc/sys/vm/drop_caches

    原理,sync 操作是把物理内存数据同步到磁盘的过程,保证drop cache 过程数据不丢失,执行同步命令。

    前后内存差异 可以用 free -m 命令查看变化

    一些内存关系:
    物理内存总数
    Mem_total = Mem_used + Mem_free
    实际使用的物理内存数
    -buffers/cache = used - buffers - cache
    实际可用的物理内存数
    +buffers/cache = free + buffers + cache
    交换分区对应的内存总数
    Swap_total = swap_used + swap_free

  • 相关阅读:
    视图
    Adaboost算法
    关于友谊的残酷真相
    排序与搜索
    队列

    Xgboost集成算法
    川普“零容忍”政策:拆散移民家庭惹争议
    第八篇:使用字符串流对象进行格式转换
    第七篇:两个经典的文件IO程序示例
  • 原文地址:https://www.cnblogs.com/chenri/p/13551603.html
Copyright © 2020-2023  润新知