Linux--top命令详解

文章目录

  • top:display Linux processes
    • 参数解读:
      • 第一行:(任务队列信息,同uptime命令的执行结果)
      • 第二行:Tasks任务(进程)
      • 第三行:CPU状态信息
      • 第四行:内存状态
      • 第五行:
      • 第七行一下:各进程(任务)的状态监控
      • 内存详解:
        • VIRT:(virtual memory size,虚拟内存)
        • RES:resident memory usage 常驻内存
        • SHR:shared memory 共享内存
        • DATA
    • 在top命令的界面中,可以输入一些指令实现交互性的操作

top:display Linux processes

top命令它会以列表的就像windows中任务管理器。它会以列表形式展示出系统当前状态以及进程信息,并且定期刷新,同时支持一些交互性操作。

Linux--top命令详解_第1张图片

参数解读:

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

  • 系统时间:05:50:55
  • 运行时间:up 1:57 min,
  • 当前登录用户数:2 users
  • 负载均衡时间:load average: 0.02, 0.02, 0.05

average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。
Load average数据时每隔5秒钟检查一次活跃进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。

第二行:Tasks任务(进程)

Tasks: 294 total,   1 running, 293 sleeping,   0 stopped,   0 zombie

总进程:294 total;运行:1;休眠:293;停止:0;僵尸进程:0

第三行:CPU状态信息

%Cpu(s):  0.1 us,  0.0 sy,  0.0 ni, 99.8 id,  0.0 wa,  0.1 hi,  0.0 si,  0.0 st
MiB Mem :   1806.1 total,    104.9 free,   1124.4 used,    576.8 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.    507.7 avail Mem 
  • 0.1 us(user space):用户空间占用CPU的百分比
  • 0.0 sy(sysctl):内核空间占用CPU的百分比
  • 0.0 ni(nice):运行良好的用户进程的占用CPU的百分比
  • 99.8 id(idle):空闲CPU百分比
  • 0.0 wa(wait):IO等待占用CPU的百分比
  • 0.1 hi(Hardware interrupt):硬中断占用CPU的百分比
  • 0.0 si(software interrupt):软中断占用CPU的百分比
  • 0.0 st(stolen ):当前VM中的cpu cycle被虚拟化偷走的比例

第四行:内存状态

MiB Mem :   1806.1 total,    143.4 free,   1436.4 used,    226.3 buff/cache(缓存的内存量)

第五行:

MiB Swap:   2048.0 total,   1759.7 free,    288.2 used.    199.7 avail Mem (缓冲的交换分区的总量)

可用内存=free + buffer + cached
对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值不断变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用。
Mem:used是指:系统内核控制的内存数
Mem:free是指:内核还未纳入其管控范围的数量。
纳入内存管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交到free中去,因此Linux free内存会越来越少。

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

Linux--top命令详解_第2张图片

  • PID:进程ID
  • user:进程所有者
  • PR:进程优先级
  • NI:nice值。负值表示高优先级,正值表示低优先级
  • VIRT:进程使用的虚拟内存总量。VIRT=SWAP+RES
  • RES:进程使用的、未被换出的物理内存大小。RES=CODE+DATA
  • SHR:共享内存大小,单位kb
  • S:进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
  • %CPU:在一个更新周期内占用的CPU时间比例
  • %MEM:进程使用的物理内存百分比
  • TIME+:进程使用的CPU时间总计,单位1/100秒
  • COMMAND:进程名称(命令名/命令行)

内存详解:

VIRT:(virtual memory size,虚拟内存)

  • 1.进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等
  • 2.加入进程申请100M内存,但实际只使用10M,那么VIRT会增长100M,而不是实际使用量

RES:resident memory usage 常驻内存

  • 1.继承当前使用的内存大小,不包括swap out
  • 2.包含其他进程的共享
  • 3.如果申请100M内存,实际使用10M,RES增长10M
  • 4.关于库占用内存的情况,只统计加载的库文件所占内存大小。

SHR:shared memory 共享内存

  • 1.除自身进程的共享内存,也包括其他进程的共享内存。
  • 2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小
  • 3、计算某个进程所占的物理内存大小公式:RES – SHR
  • 4、swap out后,它将会降下来

DATA

  • 1、数据占用的内存。如果top没有显示,按f键可以显示出来。
  • 2、真正的该程序要求的数据空间,是真正在运行中要使用的。

在top命令的界面中,可以输入一些指令实现交互性的操作

  • h:显示帮助。
  • q:退出top程序。
  • 空格:立即刷新信息。
  • k:杀掉进程。输入k之后,会提示用户输入PID及要发送哪种信号。
  • r:重新设置进程优先级,即renice。输入r之后,会提示用户输入PID及新的nice值。
  • s:改变刷新周期。输入s之后,会提示用户输入新的刷新周期,单位为秒。
  • n:改变进程列表中的显示数量。
  • f:添加或删除进程列表中的列。输入f之后会显示字母与列的映射表,再输入对应字母就可以开关相应的列。
  • c:在COMMAND列中切换显示命令名和完整的命令行。
  • u:指定在进程列表中只显示对应用户的进程。
  • l:切换显示界面中第一行信息(时间和平均负载)。
  • t:切换显示界面中第二、三行信息(进程和CPU统计)。
  • m:切换显示界面中第四、五行信息(内存和交换空间)。
  • 1:切换展开CPU统计信息。展开后,会分别显示CPU每个逻辑核心的占用。
  • N:按PID对进程排序。
  • M:按%MEM对进程排序。
  • P:按%CPU对进程排序。
  • T:按TIME+对进程排序。
  • H:切换在进程列表中显示所有线程信息。

你可能感兴趣的:(Linux)