性能测试-top-实时显示系统中各个进程的资源占用状况, 也可以查看线程
1.top命令介绍
top命令是Linux系统中常用的性能分析工具,可以实时地查看系统的运行情况,比如内存、CPU、负载以及各个进程的资源占用情况
top界面主要分为两个部分,前5行展示的是系统的整体性能,光标下面部分是系统中每个进程的具体信息。光标所在处是用来输入操作命令的。
常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况
buffer 缓冲区-磁盘虚拟出来的,用来加快读的速度的空间
swap 交换分区-磁盘虚拟出来的,内存数据转移,比如内存满了,要存磁盘临时移动用的空间。
2.top命令输出结果分析
第一行:
top - 14:39:05 up 36 days, 21:26, 3 users, load average: 56.31, 55.92, 56.03
- top:名称
- 14:39:05:系统当前时间
- up 36 days, 21:26:系统以及运行的时间,和uptime命令相等
- 3 users:当前有3个用户在线
- load average: 56.31, 55.92, 56.03:系统一定时间内的平均负载,分别是1分钟、5分钟、15分钟。
主要关注load average这个值,所谓系统负载就是:在一段时间内,CPU正在处理以及等待CPU处理的进程数之和。系统在同一时间运行的进程数和系统CPU核数相关,一般来说Load Average的数值别超过这台机器的总核数,就没什么问题。
load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。
如何知道我们现在系统的负载情况?
load average: 0.00, 0.01, 0.05
看第1个值 是上升趋势,还是下将
第1个值小于第二值,现在系统负载正在下降,再过一段时间可能会恢复正常。
系统负载值,不等于cpu使用率值。因为系统的负载值,它主要由两部分组成: cpu的使用率+ io使用率
历史的经验,系统负载高低,与cpu的数量有一定关系。
以后,不要说系统负载值大于cpu数量,就一定负载高。
查看当前系统cpu使用率最高的4个进程: n 4 回车
top命令默认3秒钟刷新一次数据: s\d 数字 比如 d 5,就是5秒刷新一次
我只想看某个进程下的线程资源使用情况: top -H -p pid值
us\usr、sy\sys--相同,不同写法
第二行:
Tasks: 265 total, 2 running, 263 sleeping, 0 stopped, 0 zombie
- Tasks:任务,也就是进程,切换为线程用H
- 265 total:当前总共有265个任务,也就是265个进程
- 2 running:2个进程正在运行
- 263 sleeping:263个进程正在休眠
- 0 stopped:0个停止的进程
- 0 zombie:0个僵尸进程
第三行:
%Cpu(s): 88.9 us, 7.9 sy, 0.0 ni, 1.7 id, 0.0 wa, 1.4 hi, 0.0 si, 0.0 st
- %Cpu(s):CPU使用率,所有cpu数量的一个总体使用率,按1,可以查看每个核cpu的使用情况
- 88.9 us:用户空间占用CPU的百分比(大部分进程都运行在用户态,通常都是希望用户空间CPU越高越好)
- 7.9 sy:内核空间占用CPU的百分比(Linux内核态占用的CPU时间,系统 CPU占用越高,表明系统某部分存在瓶颈。通常这个值越低越好)
- 0.0 ni:改变过优先级的进程占用CPU的百分比(ni是nice的缩写,进程用户态的优先级,如果调整过优先级,那么展示的就是调整过nice值的进程消耗掉的CPU时间,如果系统中没有进程被调整过nice值,那么ni就显示为0)
- 1.7 id:空闲CPU百分比,等待进程运行
- 0.0 wa:等待输入输出的占用CPU百分比(CPU的处理速度是很快的,磁盘IO操作是非常慢的。wa表示 CPU 在等待 IO 操作完成所花费的时间。系统不应该花费大量的时间来等待 IO 操作,否则就说明 IO 存在瓶颈)
- 1.4 hi:CPU硬中断占用CPU百分比(硬中断是硬盘、网卡等硬件设备发送给CPU的中断消息 )
- 0.0 si:CPU软中断占用CPU百分比(软中断是由程序发出的中断 )
- 0.0 st:被强制等待(involuntary wait)虚拟 CPU 的时间,此时 Hypervisor 在为另一个虚拟处理器服务。
第四行:
MiB Mem : 15508.4 total, 3858.4 free, 3369.3 used, 828.07 buff/cache
- MiB Mem:内存,切换单位按大写的E
- 15508.4 total:物理内存总量
- 3858.4 free:空闲内存量
- 3369.3 used:已使用的内存量
- 828.07 buff/cache:用作内核缓存的内存量
第五行:
MiB Swap: 4096.0 total, 3855.1 free, 240.9 used. 10823.7 avail Mem
- MiB Swap:交换内存空间(虚拟内存,当内存不足的时候,把一部分硬盘空间虚拟成内存使用,一般为内存的2倍)
- 4096.0 total:交换区总量
- 3855.1 free:空闲交换区总量
- 240.9 used:使用的交换区总量
- 10823.7 avail Mem:可用于启动一个新应用的内存(物理内存),和free不同,它计算的是可回收的page cache和memory slab
第四行和第五行输出信息,等同于使用free -m命令。
第四行中使用中的内存总量(used)指的是现在系统内核控制的内存数,空闲内存总量(free)是内核还未纳入其管控范围的数量。纳入内核管理的内存不见得都在使用中,还包括过去使用过的现在可以被重复利用的内存,内核并不把这些可被重新使用的内存交还到free中去,因此在linux上free内存会越来越少,但不用为此担心。
如果出于习惯去计算可用内存数,这里有个近似的计算公式:第四行的free + 第四行的buffers + 第五行的cached,按这个公式此台服务器的可用内存:18537836k +169884k +3612636k = 22GB左右。
对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
- PID:进程id 下面切单位用小写e,上面切单位用大写的E
- USER:进程所有者
- PR:进程的优先级,越小优先级越高
- NI:nice值,负值表示高优先级,正值表示低优先级
- VIRT:进程使用的虚拟内存,单位是kb
- RES:进程使用的物理内存,单位kb
- SHR:进程使用的共享内存,单位kb ---进程的内存相关数据,按小写e 可以切换单位
- S:进程状态(S表示休眠,R表示正在运行, Z表示僵死状态,N表示该进程优先值为负数,I表示空闲状态)
- %CPU:进程占用的CPU使用率
- %MEM:进程使用的物理内存和总内存的百分比
- TIME+:进程使用的CPU时间总计,单位1/100秒
- COMMAND:命令行
参考链接:
https://blog.csdn.net/m0_51627713/article/details/118091336
https://blog.csdn.net/weixin_40734030/article/details/125558689
性能测试-top-实时显示系统中各个进程的资源占用状况, 也可以查看线程的更多相关文章
- [linux]top命令详解-实时显示系统中各个进程的资源占用状况
简介 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. top显示系统当前的进程和其他状况,是一个动态显示过程,即可以通过用户按 ...
- 9.7 top:实时显示系统中各个进程的资源占用状况
top命令 用于实时地对系统处理器状态进行监控,它能够实时地显示系统中各个进程的资源占用状况.该命令可以按照CPU的使用.内存的使用和执行时间对系统任务进程进行排序显示,同时top命令还可以通过交互式 ...
- Linux 系统中僵尸进程
Linux 系统中僵尸进程和现实中僵尸(虽然我也没见过)类似,虽然已经死了,但是由于没人给它们收尸,还能四处走动.僵尸进程指的是那些虽然已经终止的进程,但仍然保留一些信息,等待其父进程为其收尸.配图源 ...
- 获取系统中所有进程&线程信息
读书笔记--[计算机病毒解密与对抗] 目录: 遍历进程&线程程序 终止进程 获取进程信息 获取进程内模块信息 获取进程命令行参数 代码运行环境:Win7 x64 VS2012 Update3 ...
- linux中使用top获取进程的资源占用信息
在linux中使用top获取进程的资源占用信息: Cpu(s): 1.0%us, 0.0%sy, 0.0%ni, 98.3%id, 0.7%wa, 0.0%hi, 0.0%si, 0.0 ...
- 让Win10显示系统中隐藏的文件夹
让Win10显示系统中隐藏的文件夹.. ------------------------- -----------------------
- Unix/Linux系统中僵尸进程是如何产生的?有什么危害?如何避免?
如题 Unix/Linux系统中僵尸进程是如何产生的?有什么危害?如何避免? 一个进程在调用exit命令结束自己的生命的时候,其实他并没有真正的被销毁,而是留下一个称为僵尸进程(Zombie)的数据结 ...
- free - 显示系统中已用和未用的内存空间总和.
总览 (SYNOPSIS) free [-b | -k | -m] [-o] [-s delay ] [-t] [-V] 描述 (DESCRIPTION) free 显示 系统中 已用和未用的 物理内 ...
- Linux中显示系统中USB信息的lsusb命令
来源:Linux中国 原文:https://linux.cn/article-2448-1.html 通用串行总线(USB)被设计成为连接计算机外设的标准,如键盘.鼠标.打印机.数码相机.便携式媒体 ...
- Qt 实时显示系统时间
前言 我们用一个label控件来实时显示系统时间,用到 QTimer 和 QDateTime 这个两个类. 正题 头文件: #ifndef MAINWINDOW_H #define MAINWINDO ...
随机推荐
- concurrent.futures之ThreadPoolExecutor python线程池代码实现方法
from concurrent.futures import ThreadPoolExecutor def main(i): print(i) THREAD_NUM = 20 # 线程数 with T ...
- PostgresSQL 常用操作方法
1.后台生成XML作为参数然后数据库解析获取数据 var idList = ids.Split(new string[] { "," }, StringSplitOptions.R ...
- el-table 在第一行添加合计行和操作按钮
1.预计效果如下 2.前端及样式部分 1)el-table <el-table size="small" stripe style="width: 100%&quo ...
- 大规模 IoT 边缘容器集群管理的几种架构-3-Portainer
前文回顾 大规模 IoT 边缘容器集群管理的几种架构-0-边缘容器及架构简介 大规模 IoT 边缘容器集群管理的几种架构-1-Rancher+K3s 大规模 IoT 边缘容器集群管理的几种架构-2-H ...
- Ubuntu18完全卸载php7.2
转载csdn: Ubuntu18完全卸载php7.2_yisonphper的博客-CSDN博客_ubuntu 卸载php8
- (原创)【B4A】一步一步入门05:控件、公有属性、水平锚定、垂直锚定(控件篇01)
一.前言 前面的教程,已经完整讲述了用B4A开发安卓APP从新建项目到编译发布的完整流程.从本篇开始,我们将会从B4A的细节处着手,一步一步掌握B4A. 从本篇开始的子系列为"控件篇&quo ...
- Java中的static关键字作用及其应用
java中的static关键字主要用于内存管理.我们可以应用java static关键字在变量,方法,块和嵌套类中. static关键字属于类,而不是类的实例. static可以是: 1.变量 ...
- Vue 插件介绍
功能:用于增强Vue 本质:包含install方法的一个对象,install的第一个参数是Vue,第2个以后的参数是插件使用者传递的数据. 1.定义插件: 对象.install = function( ...
- Linux命令执行时,提示commond not found的处理办法
执行chattr命令时,或其他命令时,若出现命令没发现,commond not found 那么就是有可能命令文件丢了,执行find / -name chattr,如果没有命令了,可以拷贝一个或yum ...
- redis运维与管理
redis内存存储,速度极快 丰富的附件功能 1.持久化功能:降存储在内存的数据保存到硬盘 2.发布与订阅:将消息同时分发给多个客户端 3.过期键功能:为键设置一个过期时间,让它在指定的时间之后自动被 ...