Linux--top命令详解
Posted 南岸青栀*
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux--top命令详解相关的知识,希望对你有一定的参考价值。
文章目录
top:display Linux processes
top命令它会以列表的就像windows中任务管理器。它会以列表形式展示出系统当前状态以及进程信息,并且定期刷新,同时支持一些交互性操作。
参数解读:
第一行:(任务队列信息,同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内存会越来越少。
第七行一下:各进程(任务)的状态监控
- 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--top命令详解的主要内容,如果未能解决你的问题,请参考以下文章