性能监控:top命令
一. 字段介绍
默认情况下top命令仅显示比较重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。
# top
top - 14:10:45 up 3 days, 21:54, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 109 total, 1 running, 107 sleeping, 1 stopped, 0 zombie
%Cpu(s): 0.3 us, 0.2 sy, 0.0 ni, 99.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 3881340 total, 2384096 free, 764044 used, 733200 buff/cache
KiB Swap: 4064252 total, 4064252 free, 0 used. 2786112 avail MemPID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10673 tomcat 20 0 3189912 523976 14328 S 1.3 13.5 88:07.20 java771 root 20 0 218504 9520 5984 S 0.3 0.2 0:24.28 rsyslogd1 root 20 0 125344 3760 2564 S 0.0 0.1 1:56.72 systemd2 root 20 0 0 0 0 S 0.0 0.0 0:00.21 kthreadd3 root 20 0 0 0 0 S 0.0 0.0 0:01.94 ksoftirqd/05 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H7 root rt 0 0 0 0 S 0.0 0.0 0:00.10 migration/08 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh9 root 20 0 0 0 0 S 0.0 0.0 0:43.99 rcu_sched10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-drain11 root rt 0 0 0 0 S 0.0 0.0 0:01.57 watchdog/012 root rt 0 0 0 0 S 0.0 0.0 0:02.02 watchdog/113 root rt 0 0 0 0 S 0.0 0.0 0:00.18 migration/114 root 20 0 0 0 0 S 0.0 0.0 0:02.61 ksoftirqd/116 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/1:0H18 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs19 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 netns20 root 20 0 0 0 0 S 0.0 0.0 0:00.35 khungtaskd21 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 writeback22 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kintegrityd23 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 bioset24 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kblockd25 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 md26 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 edac-poller32 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kswapd0
第一部分
- 第一行:任务队列信息
# top
top - 14:10:45 up 3 days, 21:54, 1 user, load average: 0.00, 0.01, 0.05
- 14:10:45:当前时间
- up 3 days, 21:54:系统已经运行的时间3天,21小时54分钟
- 1 user:当前登陆用户数量1
- load average: 0.00, 0.01, 0.05:最近5/10/15 分钟内的平均负载
注意:
load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值:
1)单核CPU情况下:0.00表示没有任何负荷,1.00表示刚好满负荷,超过1.00则表示超负荷,理想值为0.7
2)多核CPU情况下:CPU核数 * 理想值0.7 = 理想负荷,例如:4核CPU负载不超过2.8则表示没有出现高负载
(查询CPU的核数:cat /proc/cpuinfo| grep “cpu cores”| uniq)
2. 第二行:任务进程相关信息
Tasks: 117 total, 2 running, 115 sleeping, 0 stopped, 0 zombie
- Tasks:任务(进程),系统现在有117个进程,其中处于运行中的有2个(running),115个在休眠(sleep),stoped状态的有0个,zombie状态的有0个
- 第三行:CPU信息(多个cpu时,内容可能会超过两行)
%Cpu(s): 0.3 us, 0.5 sy, 0.0 ni, 99.2 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
- 0.3 us:用户空间所占cpu百分比
- 0.5 sy:内核空间所占用cpu百分比
- 0.0 ni:用户进程空间内改变过优先级的进程占用cpu百分比
- 99.2 id:空闲cpu百分比
- 0.0 wa:等待输入输出的cpu时间百分比
- 0.0 hi:硬件CPU中断占用百分比
- 0.0 si:软中断占用百分比
- 0.0 st:虚拟机占用百分比
- 第四行和第五行:内存使用(与free命令类似)
//物理内存使用
KiB Mem : 3881340 total, 2204420 free, 801112 used, 875808 buff/cache
//虚拟内存使用
KiB Swap: 4064252 total, 4064252 free, 0 used. 2745980 avail Mem
物理内存:
- 3881340 total:物理内存总量
- 2204420 free:空闲内存总量
- 801112 used:使用中的内存总量
- 875808 buff/cache:缓存的内存总量
swap交换分区: - 4064252 total:交换区总量
- 4064252 free:空闲交换区总量
- 0 used:使用中的交换区总量
- 2745980 avail Mem:缓冲的交换区总量,内存中的内容被换出到交换区,然后又被换入到内存,但是使用过的交换区没有被覆盖,交换区的这些内容已存在于内存中的交换区的大小,相应的内存再次被换出时可不必再对交换区写入
近似计算服务器的真正可用内存:第四行的free + 第四行的buffers + 第五行的cached
注意:
对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了,或者运行有内存溢出问题
第二部分:各进程状态监控
通过 f 键可以选择显示的内容。按 f 键之后会显示列的列表,按 a-z 即可显示或隐藏对应的列,最后按回车键确定。
按 o 键可以改变列的显示顺序。按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z 可以将相应的列向左移动。最后按回车键确定。
按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序。而大写的 R 键可以将当前的排序倒转。
- PID:进程id
- PPID:父进程id
- RUSER:Real user name
- UID:进程所有者的用户id
- USER:进程所有者的用户名
- GROUP:进程所有者的组名
- TTY:启动进程的终端名,不是从终端启动的进程则显示?
- PR:优先级
- NI:nice值,负值表示高优先级,正值表示低优先级
- P:最后使用的CPU,仅在多CPU的环境下有意义
- %CPU:上次更新到现在的CPU的时间占用百分比
- TIME:进程使用CPU时间总计,单位:秒
- TIME+:进程使用的CPU时间总计,单位:0.01秒
- %MEM:进程使用的物理内存百分比
- VIRT:virtual memory usage 虚拟内存总量,VIRT=SWAP+RES
1)进程“需要的”虚拟内存大小,包括进程使用的库/代码/数据等;
2)假如进程申请100M的内存,但实际使用10M,那么它会增长100M,而不是实际使用量 - RES:resident memory usage 常驻内存,进程使用的未被换出的物理内存大小,单位kb,RES=CODE+DATA
1)进程当前使用的内存大小,但不包括swap out
2)包含其他进程的共享
3)如果申请100M的内存,实际使用10M,则仅增长10M
4)关于库占用内存的情况,它只统计加载的库文件所占内存大小 - SHR:shared memory 共享内存,单位kb
1)除了自身进程的共享内存,也包括其他进程的共享内存
2)虽然进程只使用了几个共享库的函数,但是它包含了整个共享库的大小
3)计算某个进程所占物理内存大小公式:RES-SHR
4)swap out后,数值会降下来 - CODE:可执行代码占用的物理内存大小,单位kb
- nFLT:页面错误次数
- nDRT:最后一次写入到现在,被修改过的页面数
- S:进程状态,D-不可中断的睡眠状态;R-运行;S-睡眠;T=跟踪/停止;Z-僵尸进程
- COMMAND :命令名/命令行
- WCHAN:若该进程在睡眠,则显示睡眠中的系统函数名
- Flages:任务标志
- DATA:数据占用的内存, 真正的该程序要求的数据空间,是真正在运行中要使用的
二. top运行过程中显示方式控制
- s :改变画面更新频率
- l:关闭或开启第一部分第一行 top信息的显示
- t:关闭或开启第一部分第二行 Tasks和第三行 Cpus信息的显示
- m :关闭或开启第一部分第四行 Mem和第五行Swap信息的显示
- N :以PID的大小顺序排列展示进程列表
- P:以CPU占用率的大小顺序排列进程列表
- M :以内存占用率的大小顺序排列进程列表
- h:显示帮助
- n : 设置在进程列表所显示进程的数量
- q:退出top
三. top命令参数使用
使用格式:top [-] [d] [p] [q] [c] [C] [S] [s] [n]
参数说明:
- d:指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之
- p:通过指定监控进程ID来仅仅监控某个进程的状态
- q:该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行
- S:指定累计模式
- s:使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险
- i:使top不显示任何闲置或者僵死进程。
- c:显示整个命令行而不只是显示命令名。
性能监控:top命令相关推荐
- CPU性能监控top命令解析及问题定位实战
目录 第一行,系统.任务统计信息: 第二行,进程统计信息: 第三行,cpu统计信息: 第四行,内存统计信息: 第五行,swap交换分区统计信息: 最后就是各进程的监控: Java项目问题定位 us 用 ...
- Oracle性能监控常用命令
Oracle性能监控常用命令 --监控事例的等待 select event, sum(decode(wait_Time, 0, 0, 1)) "Prev", ...
- 【性能测试】Linux系统监控-Top命令
前面转载的三篇文章主要介绍了性能测试的相关概念,其中有提到服务器,服务器的配置是性能测试中必须考虑的,而且性能测试中也必须监控服务器. 这篇文章主要介绍一下如何通过Linux服务器自带的top命令监控 ...
- Linux性能监控-Top
top命令详解 top命令是一款使用非常广泛的性能监控工具,它可以获取系统的CPU.Load.Men.Swap...相关信息,类似于windows的任务管理器. (1)top命令的部分截图: 第一行 ...
- linux 监控命令iostat,Linux性能监控分析命令(三)—iostat命令介绍
性能监控分析的命令包括如下: 1.vmstat 2.sar 3.iostat 4.top 5.free 6.uptime 7.netstat 8.ps 9.strace 10.lsof 命令介绍: i ...
- linux性能监控常用命令
概述 我们在linux下,如果想要监控服务器性能.我们必须掌握以下常用的指标查看命令. ps pstree top free vmstat sar ps ps命令能给出当前系统中进程的快照.下面我们列 ...
- Linux服务器的那些性能参数指标 Top命令技巧
一个基于 Linux 操作系统的服务器运行的同时,也会表征出各种各样参数信息.通常来说运维人员.系统管理员会对这些数据会极为敏感,但是这些参数对于开发者来说也十分重要,尤其当你的程序非正常工作的时候, ...
- linux运行16668端口,Linux 性能监控之命令行工具
引言 对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.这些命令行工具可以在各种Linux系统下使用,可以用于监控和查找产生性能问题的原因.这个命令行工具列表提供了足够的 ...
- Linux系统监控——top命令
1.top命令显示 top命令显示区分为两个部分,上面是系统统计信息:下面是进程信息. 2.系统统计信息 2.1 第一行 第一行,需要关注的是load avg这行,通过这三个值,我们能看出系统负载的发 ...
- Linux资源监控top命令详解(服务器性能指标)
说到服务器性能指标,永远离不开CPU.Memory.IO等. 一.top命令(centOS7) 第一行 top: -18:39:57 当前系统时间 up 6 min 持续运行时间 load aver ...
最新文章
- Symbian开发系列 - 入门篇
- Plotly绘制时间序列图实战:简单时序图、时间范围限制的时序图
- 马斯克终结美国载人航天的“寄俄篱下”,SpaceX首次正式商业载人任务圆满成功...
- Mysql创建、删除用户
- 斐波那契数的两种求法(迭代,递归)
- 接口目标 java 1614953528
- JS实现一个简单的计算器
- socket通信,server与多客户端通信(二)
- docker安装jdk8
- ls命令输出的文件颜色
- 【全套完结】数字信号处理----全套Matlab实验报告【建议保存】
- STM32学习笔记(三 时钟系统 1 时钟系统精讲)
- Ansys-自适应网格划分-受压薄板学习收获
- 张三丰是小龙女的儿子的详细证明及理论依据(转)
- [热键冲突]:Win10 输入法表情快捷键(Ctrl+Shift+B)如何关闭
- [Java大厂必备面试题] 点滴促就辉煌, 每日三题【Day14】: 数据库8
- 共探人工智能新发展,AICON 2022即将重磅开启
- Debug Error: abort() has been called解决办法
- Armadillo | 复数小记
- 【思考】我奋斗了18年才和你坐在一起喝咖啡
热门文章
- 使用Java对HBase进行操作(三)
- go语言byte类型报错cannot use c (type string) as type byte in assignment
- JavaEE 之 Mybatis
- 2021年从事Linux运维云计算前景如何?
- 龙OL外网架设成功案例
- GOM引擎登录器配置教程
- SQL Server Express下載地址
- 2020芝加哥计算机博士生录取,2020年芝加哥大学博士面试后多久知道结果
- 系统或应用计算机指令的术语叫什么意思,[计算机软件及应用]BPM术语解释.doc
- Python机器学习:Sklearn快速入门(稍微懂一些机器学习内容即可)