Linux的top命令(分析篇)
这里仅展示top命令结果的参数含义,具体操作跳转Linux的top命令(操作篇)
top命令是很强大的机器分析命令,类似于windows的任务管理器,但是可以看的性能指标更多。下面记录一下,top的详细参数意义和操作。
参数的含义
我们详细看看,输入top命令以后,各个参数的意义,如下:
top
top
第一行的参数意义
10:59:22 : 当前系统时间
up 37 days, 20:48 : 系统累积以及运行的时间
3 users : 当前用户数量
load average: 0.00,0.00,0.00 : 系统负载
系统负载
系统负载的三个数值分别表示的是1分钟,5分钟和15分钟系统负载的平均值
假设机器的cpu核心数为n,则当负载的平均值为n的时候,机器就是刚好满负载运行了,如果大于n,就是超负荷运行了。
#查看cpu核心数,可以通过这个命令看看有多少个cpu信息
cat /proc/cpuinfo
我这台机器是双核心的,所以负荷是很低的
0.00 < 2
第二行的意义
Tasks: 112 total : 进程总数
1 running : 正常运行的进程数量
121 sleeping : 休眠的进程数量
0 stopped : 停止的进程数量
0 zombie : 僵死进程数量
第三行的意义
0.2 us : 用户进程占用cpu资源的百分比
0.2 sy : 内核进程占用cpu资源的百分比
0.0 ni : 用户进程空间内改变过优先级的进程占cpu资源的百分比
99.7 id : 空闲cpu百分比
0.0 wa : 等待io的进程占cpu资源的百分比
0.0 hi : 硬中断占用cpu的百分比
0.0 si: 软中断占用的百分比
0.0 st : 虚拟机占用百分比
第四行的意义
38660168k total : 物理内存的总容量
3106020k used : 使用的物理内存总量
754148k free : 空闲的物理内存总量
157796k buffers : 用在内核缓存的内存总量
第五行的意义
524280k total : 交换区内存总容量
0k used : 交换区内存使用的容量
524280k used: 交换区空闲的内存容量
848380k cached : 缓存的交换区总量
内存
Swap:表示硬盘上交换分区的使用情况。一般来说只有物理内存被当前进程实际占用完,才会使用到swap。实际上内核可能会主动地将一些暂时不用的内存块写入到磁盘的交换区(swap),这样节约出来的内存就可以用作他用了。这些被写入swap的内存,只有当实际需要的时候,才会被重新写入内存。
计算实际内存占用:
机器还有多少剩余内存是我们比较关心的,linux上看剩余内存相对来说不是那么直观。从top命令看到的free并不是实际的剩余内存,used查看的使用内存也并不是实际占用的内存,因为used内存包括了bufferd和cached内存,这部分也是属于可用的。我们可以用 free -h查看实际使用的内存:如下图:
实际使用内存=used - buffers - cached = 3.0G - 154M - 828M = 2.0G
实际空余内存=free + buffers + cached = 740M + 154M + 828M = 1.7G
显然,free -h命令,所得结果的第二行就是我们上面两个计算公式计算出来的结果:
free -h
进程信息
介绍完top命令头几行的信息意义,接下来就看具体进程的信息含义了。
进程的信息含义如下:
PID : 进程id,标记唯一进程
USER : 进程用户名
PR : 优先级
NI : nice值。负值表示高优先级,正值表示低优先级
VIRT : 进程使用的虚拟内存的大小
RES : 指进程除去使用交换区swap的内存,使用的物理内存的大小
SHR : 进程共享内存的大小
S : process status 进程状态 。 分别有D R S T Z ,分别表示不可中断的休眠、正在运行、休眠中、暂停或者跟踪状态、僵死状态
%CPU : cpu的使用量占总cpu时间的百分比
%MEM : 进程使用的物理内存百分比
TIME+ : 进程使用的CPU时间总计,精确到1/100秒
COMMAND : 命令或者进程名称