第一行:概况
14:30:52 当前的系统时间
up 286 days,5:55 从本次开机到现在经过的时间
2 users 当前有2个用户登录到该机器
第二行:进程计数
total 进程总数
running 正在进行的进程数
sleeping 睡眠的进程数(task_interruptible task_uninterruptible)
stopped:停止的进程数
zombie:僵尸进程数
进程的状态
◆task_running(运行状态)
当进程正在被cpu执行,或已经准备就绪随时可由调度程序执行.
◆task_interruptible(可中断睡眠状态)
当系统产生一个终断或者释放了进程正在等待的资源,或者接收到一个信号,都可以唤醒进程转换到运行状态.
◆task_uninerruptibale(不可终断睡眠状态)
与可中断睡眠状态类似,但处于该状态的进程只有被使用wake_up()函数唤醒时才能转换到可运行状态.
◆task_stopped(终止状态)
◆task_zombie(僵死状态)
当进程已停止运行,但其父进程还没有询问其状态时,则称该进程处于僵死状态.
第三行:CPU使用率(%Cup(s))
us:进程在用户空间(user)消耗的CPU时间占比,不包含调整过优先级的进程.
用户空间和内核空间:linux操作系统和驱动程序运行在内核空间.应用程序运行在用户空间.
sy:进程在内核空间(system)消耗的CPU时间占比
ni:调整过用户优先级的(niced)进程和CPU时间占比
id:空闲的(idle)CPU时间占比
wa:等待(wait) I/O完成的CPU时间占比.
hi:处理硬中断(hardware interrupt)的CPU时间占比
si:处理软中断(software interrupt)的CPU时间占比
硬终断和软中断
硬中断:由与系统相连的外设(如网卡,硬盘)自动产生,主要是用来通知操作系统系统外设状态的变化.比如当网卡收到数据包的时候,就会发出一个中断.我们通常所说的中断指的是硬终断.
软中断:为了满足实时需求,中断处理应该是越快越好.linux为了实现这个特点,当中断发生的时候,硬终断处理那些短时间就可以完成的工作,而将那些处理时间比较长的工作,放到终断之后来完成,也就是软终断来完成.
st:当linux系统是在虚拟机中运行时,等待CPU资源的时间(steal tine)占比.
第四行,第五行:物理内存和交换内存(Mem/Swap)
物理内存和交换内存
计算机有两种基本类型的内存,第一种:随机存取存储器(RAM),用于存储计算机使用的数据和程序.只有程序和数据存储在RAM中,计算机才能使用它们.随机存储器是易失性存储器.也就是说.如果计算关机了,存储在RAM中的数据就会丢失.硬盘用于长期存储数据和程序.CPU不能直接访问硬盘上的程序和数据.它们必须首先复制到RAM中才能访问.
第二种:交换空间.交换空间的主要功能是当全部的RAM被占用并且需要更多内存时,用磁盘空间代替RAM内存.
假设你有一个8GB RAM的计算机.如果你启动的程序没有填满RAM,一切都好,不需要交换.假设你处理电子表格,当添加更多的行时,你的电子表格会增长,加上所有正在运行的程序,将会占用全部的RAM.如果这时没有可用的交换空间,你将不得不停止处理你的电子表格,直到关闭一些其他程序来释放一些RAM.内核使用一个内存管理程序来检测最近没有使用的内存块.内存管理程序将这些相对不经常使用的内存块交换到硬盘上专门指定用于交换的特殊分区.这会释放RAM,为输入电子表格更多数据腾出了空间.那些换出到磁盘的存储块被内核的内存管理代码跟踪,如果需要,可以被放回RAM.
linux中内存总量=RAM+交换内存,交换内存又成为虚拟内存.
total 内存总量
free 空闲内存量
used 使用的内存量
buff/cache 缓存
cache:是高速缓存,用于cpu和内存之间的缓冲.让内存跟上cpu的速度.将最近使用频次多的数据存到cache中,cpu处理一个数据时,先从cache中找,找不到再去内存找,并把这部分数据存到cache中.
buff:是I/O缓存.用于内存和磁盘之间的缓冲.把分散的写操作集中进行.
下面所有的行
PID:进程id
USER:进程所有者的用户名
PR:从系统内核角度看的进程调度优先级
NI:进程的NICE值,即从用户空间角度看的进程优先级.值越低,优先级越高.
VIRT:进程申请使用的虚拟内存.
RES:进程使用的驻留内存(即未被Swap out的内存)量.
SHR:进程使用的共享内存,即进程间通信的内存.
S:进程状态.R=running S=interuptible sleeping D=uninteruptible sleeping T=stopped Z=zombie
%CPU:进程在一个更新周期内占用的CPU时间占比
%MEM:进程占用的物理内存占比
TIME+:进程创建后至今占用的CPU时间长度
COMMAND:运行进程使用的命令