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-实时显示系统中各个进程的资源占用状况, 也可以查看线程的更多相关文章

  1. [linux]top命令详解-实时显示系统中各个进程的资源占用状况

    简介 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. top显示系统当前的进程和其他状况,是一个动态显示过程,即可以通过用户按 ...

  2. 9.7 top:实时显示系统中各个进程的资源占用状况

    top命令 用于实时地对系统处理器状态进行监控,它能够实时地显示系统中各个进程的资源占用状况.该命令可以按照CPU的使用.内存的使用和执行时间对系统任务进程进行排序显示,同时top命令还可以通过交互式 ...

  3. Linux 系统中僵尸进程

    Linux 系统中僵尸进程和现实中僵尸(虽然我也没见过)类似,虽然已经死了,但是由于没人给它们收尸,还能四处走动.僵尸进程指的是那些虽然已经终止的进程,但仍然保留一些信息,等待其父进程为其收尸.配图源 ...

  4. 获取系统中所有进程&线程信息

    读书笔记--[计算机病毒解密与对抗] 目录: 遍历进程&线程程序 终止进程 获取进程信息 获取进程内模块信息 获取进程命令行参数 代码运行环境:Win7 x64 VS2012 Update3 ...

  5. 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 ...

  6. 让Win10显示系统中隐藏的文件夹

    让Win10显示系统中隐藏的文件夹.. ------------------------- -----------------------

  7. Unix/Linux系统中僵尸进程是如何产生的?有什么危害?如何避免?

    如题 Unix/Linux系统中僵尸进程是如何产生的?有什么危害?如何避免? 一个进程在调用exit命令结束自己的生命的时候,其实他并没有真正的被销毁,而是留下一个称为僵尸进程(Zombie)的数据结 ...

  8. free - 显示系统中已用和未用的内存空间总和.

    总览 (SYNOPSIS) free [-b | -k | -m] [-o] [-s delay ] [-t] [-V] 描述 (DESCRIPTION) free 显示 系统中 已用和未用的 物理内 ...

  9. Linux中显示系统中USB信息的lsusb命令

    来源:Linux中国  原文:https://linux.cn/article-2448-1.html 通用串行总线(USB)被设计成为连接计算机外设的标准,如键盘.鼠标.打印机.数码相机.便携式媒体 ...

  10. Qt 实时显示系统时间

    前言 我们用一个label控件来实时显示系统时间,用到 QTimer 和 QDateTime 这个两个类. 正题 头文件: #ifndef MAINWINDOW_H #define MAINWINDO ...

随机推荐

  1. Vue14 条件渲染

    转:https://blog.csdn.net/weixin_57519185/article/details/121168426 1 简介 通过指令v-show和v-if可以实现条件渲染. 它们都能 ...

  2. JAVA虚拟机02---JAVA虚拟机运行时数据区域简介

      JAVA虚拟机运行时数据区域 1.程序计数器 1)它可以看做是当前线程执行的字节代码的行指示器,通过改变计数器的值来决定下一步执行的代码 2)它是线程私有的,每个线程都有自己的程序计数器(JAVA ...

  3. 如何使用 ArrayPool

    如果不停的 new 数组,可能会造成 GC 的压力,因此在 aspnetcore 中推荐使用 ArrayPool 来重用数组,本文将介绍如何使用 ArrayPool. 使用 ArrayPool Arr ...

  4. 学习ASP.NET Core Blazor编程系列二十六——登录(5)

    学习ASP.NET Core Blazor编程系列文章之目录 学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应 ...

  5. Istio 升级后踩的坑

    背景 前段时间我们将 istio 版本升级到 1.12 后导致现有的应用监控有部分数据丢失(页面上显示不出来). 一个是应用基础信息丢失. 再一个是应用 JVM 数据丢失. 接口维度的监控数据丢失. ...

  6. pdf转MD、HTML、word网址收集

    PDF 转 Word,Excel,PPT,JPG 的网址:https://smallpdf.com/cn/pdf-to-word PDF 转 Markdown 的网址:https://pdf2md.m ...

  7. 什么是MES(Manufacturing Execution System)

    "本文仅代表个人观点" 本文档将提供一个高层次的概述,以帮助阐明什么是MES,并触及通常被归为MES的周边领域. 整体情况 制造执行系统或MES软件是旨在帮助公司管理其制造过程的工 ...

  8. Docker全方位攻略与自动化运维

    介绍 Docker Registry(Docker注册中心)是一个管理Docker容器镜像存储和交付的应用程序.注册中心集中容器镜像并减少开发人员的构建时间.Docker镜像通过虚拟化保证相同的运行环 ...

  9. JZOJ 4250.路径

    \(\text{Solution}\) \(30\) 分暴搜合法路径 另 \(30\) 分状压 设 \(f_{i,j,k}\) 表示当前到第 \(i\) 个点,走过的点状态为 \(j\),走过的路径长 ...

  10. 批量下载Landsat遥感影像的方法

      本文介绍在USGS网站批量下载Landsat系列遥感影像的方法.   首先,打开EarthExplorer的官网,首先完成注册与登录.   接下来,点击左侧"Search Criteri ...