Linux系统性能分析(top,iostat,free)

top

Linux系统中,Top命令主要用于实时运行系统的监控,包括Linux内核管理的进程或者线程的资源占用情况。

这个命令对所有正在运行的进程和系统负荷提供不断更新的概览信息,包括系统负载、CPU利用分布情况、内存使用、每个进程的内容使用情况等信息。

top的使用方式:

top [-d number] | top [-bnp]

参数解释:

  • -d:number代表秒数,表示top命令显示的页面更新一次的间隔。默认是5秒。
  • -b:以批次的方式执行top。
  • -n:与-b配合使用,表示需要进行几次top命令的输出结果。
  • -p:指定特定的pid进程号进行观察。

在top命令显示的页面还可以输入以下按键执行相应的功能(注意大小写区分的):

  • ?:显示在top当中可以输入的命令

  • P:以CPU的使用资源排序显示

  • M:以内存的使用资源排序显示

  • N:以pid排序显示

  • T:由进程使用的时间累计排序显示

  • k:给某一个pid一个信号。可以用来杀死进程

  • r:给某个pid重新定制一个nice值(即优先级)

  • q:退出top(用ctrl+c也可以退出top)

在这里插入图片描述

第一行

top - 15:53:32 up  1:02,  1 user,  load average: 0.53, 1.08, 1.63
  • 程序或者窗口的名称:top
  • 当前时间和系统的启动时间:15:53:32 up 1:02,
  • 总共的用户数量:1 user
  • 过去1、5和15分钟的系统平均负载:load average: 0.53, 1.08, 1.63

第二行

任务: 502 total,   3 running, 489 sleeping,   0 stopped,  10 zombie

第二行对Task进行分类,包括running、sleeping、stopped、zombie四类,显示了系统中正在运行的任务的状态统计信息。具体来说,这里有502个任务总数,其中有3个任务正在运行,489个任务正在睡眠,0个任务已停止,10个任务为僵尸进程。

第三行

%Cpu(s):  5.7 us,  3.1 sy,  0.0 ni, 91.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

第三行显示CPU的状态百分比:

  • %Cpu(s): CPU使用率的统计信息。
  • us (user): 用户空间进程占用CPU的时间百分比。
  • sy (system): 内核空间进程占用CPU的时间百分比。
  • ni (nice): 用户进程以优先级调整过的占用CPU的时间百分比(通常不会有这个值)。
  • id (idle): CPU空闲的时间百分比。
  • wa (IO-wait): CPU等待I/O操作的时间百分比。
  • hi (hardware interrupt): CPU处理硬件中断的时间百分比。
  • si (software interrupt): CPU处理软件中断的时间百分比。
  • st: 被虚拟化环境偷取的时间百分比(通常不会有这个值)。

第四行

MiB Mem :  15703.7 total,   3993.7 free,   5015.4 used,   6694.5 buff/cache

第四行表示物理内存,分为total、 free、 used 、 buff/cache。 buff/cache表示用作内核缓存的内存量。

第五行

MiB Swap:      0.0 total,      0.0 free,      0.0 used.   9228.2 avail Mem 

第五行表示虚拟内存,分为total、free、used、avail

任务信息

可以按f编辑基本视图中的显示字段:
在这里插入图片描述

  • %CPU: CPU Usage,自上次屏幕更新以来任务占用的CPU时间份额,表示为总CPU时间的百分比。
  • %MEM: Memory Usage,进程使用的物理内存百分比
  • CODE:Code Size,可执行代码占用的物理内存量
  • COMMAND:Command Name or Command Line,用于显示输入的命令行或者程序名称
  • PID:Process Id,任务独立的ID,即进程ID
  • PPID:Parent Process Id,父进程ID
  • UID:User Id,任务所有者的用户ID
  • USER:User Name,用户名
  • RUSER:Real User Name,实际的用户名
  • TTY:Controlling Tty,控制终端名称
  • TIME:CPU TIME,该任务CPU总共运行的时间
  • TIME+:同TIME,其粒度更细
  • OOMa:Out of Memory Adjustment Factor,内存溢出调整机制,这个字段会被增加到当前内存溢出分数中,来决定什么任务会被杀掉,范围是-1000到+1000。
  • OOMs:Out of Memory Score,内存溢出分数,这个字段是用来选择当内存耗尽时杀掉的任务,范围是0到+1000。0的意思是绝不杀掉,1000的意思是总是杀掉。
  • S:Process Status,表示进程状态信息
    • D: 不可中断休眠
    • I:空闲
    • R:运行中
    • S:休眠
    • T:被任务控制信号停止
    • t:在跟踪期间被调试器停止
    • Z:僵尸

交互命令

在top命令显示的页面还可以输入以下按键执行相应的功能(注意大小写区分的):

  • ?:显示在top当中可以输入的命令

  • P:以CPU的使用资源排序显示

  • M:以内存的使用资源排序显示

  • N:以pid排序显示

  • T:由进程使用的时间累计排序显示

  • k:给某一个pid一个信号。可以用来杀死进程

  • r:给某个pid重新定制一个nice值(即优先级)

  • q:退出top(用ctrl+c也可以退出top)

iostat

在这里插入图片描述

参数说明:

  • -c: 仅显示CPU利用率相关信息;
  • -d: 仅显示磁盘I/O相关信息;
  • -k: 显示输出的数据单位为KB/s而不是默认的字节/s;
  • -t: 在输出中显示时间戳(时间戳格式YYYY-MM-DD HH:MM:SS);
  • -m:显示状态以兆字节每秒为单位;
  • -p:仅显示块设备和所有被使用的其他分区的状态;
  • -V:显示版号并退出;
  • -x:显示扩展状态;
  • -N:显示 lvm2 统计信息;
  • -j:显示持久设备名称统计信息;

cpu信息

avg-cpu:  %user   %nice %system %iowait  %steal   %idle6.25    0.01    4.16    0.03    0.00   89.55
  • %user : 表示用户空间程序执行的CPU时间百分比;
  • %nice : 表示以较高的优先级运行的用户进程的CPU时间百分比;
  • %system : 表示内核空间程序执行的CPU时间百分比;
  • %iowait : 表示CPU等待I/O操作完成的时间百分比;
  • %steal : 表示由于运行虚拟机等原因被其他虚拟机占用的CPU时间百分比;
  • %idle : 表示CPU空闲时间的百分比;

磁盘信息 iostat -x扩展

Device            r/s     rkB/s   rrqm/s  %rrqm r_await rareq-sz     w/s     wkB/s   wrqm/s  %wrqm w_await wareq-sz     d/s     dkB/s   drqm/s  %drqm d_await dareq-sz     f/s f_await  aqu-sz  %util
loop0            0.00      0.00     0.00   0.00    0.00     1.21    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00
loop1            0.01      0.06     0.00   0.00    2.38     7.78    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00
loop10           0.33      0.99     0.00   0.00    0.07     3.02    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00
loop11           0.04      0.64     0.00   0.00    0.58    15.32    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.01
loop12           0.01      0.06     0.00   0.00    0.37     8.09    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00
loop13           0.11      3.97     0.00   0.00    0.19    36.22    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.03
loop14           0.01      0.06     0.00   0.00    0.12     9.81    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00
loop15           0.00      0.00     0.00   0.00    0.00     1.27    0.00      0.00     0.00   0.00    0.00     0.00    0.00      0.00     0.00   0.00    0.00     0.00    0.00    0.00    0.00   0.00
  • r/s:每秒钟完成的读取次数(reads per second)。
  • rkB/s:每秒钟读取的数据量,以千字节为单位(read kilobytes per second)。
  • rrqm/s:每秒钟合并的读取请求次数(read requests merged per second)。
  • %rrqm:合并读取请求的百分比(percentage of merged read requests)。
  • r_await:读取请求的平均等待时间(average time for read requests to be served)。
  • rareq-sz:每个读取请求的平均大小(average size of read requests)。
  • w/s:每秒钟完成的写入次数(writes per second)。
  • wkB/s:每秒钟写入的数据量,以千字节为单位(write kilobytes per second)。
  • wrqm/s:每秒钟合并的写入请求次数(write requests merged per second)。
  • %wrqm:合并写入请求的百分比(percentage of merged write requests)。
  • w_await:写入请求的平均等待时间(average time for write requests to be served)。
  • wareq-sz:每个写入请求的平均大小(average size of write requests)。
  • d/s:每秒钟完成的删除请求次数(deletes per second)。
  • dkB/s:每秒钟删除的数据量,以千字节为单位(delete kilobytes per second)。
  • drqm/s:每秒钟合并的删除请求次数(delete requests merged per second)。
  • %drqm:合并删除请求的百分比(percentage of merged delete requests)。
  • d_await:删除请求的平均等待时间(average time for delete requests to be served)。
  • dareq-sz:每个删除请求的平均大小(average size of delete requests)。
  • f/s:每秒钟完成的同步刷新请求次数(flushes per second)。
  • f_await:同步刷新请求的平均等待时间(average time for flush requests to be served)。
  • aqu-sz:I/O队列长度的平均大小(average queue length)。
  • %util:磁盘利用率,即磁盘活动所占总时间的百分比,越接近100%表示磁盘繁忙。

free

在这里插入图片描述

  • -b 以Byte为单位显示内存使用情况
  • -k 以KB为单位显示内存使用情况
  • -m 以MB为单位显示内存使用情况
  • -g 以GB为单位显示内存使用情况
  • -h 以友好的方式显示内存的使用情况
  • -o 不显示缓冲区调节列
  • -s<间隔秒数> 持续观察内存使用状况
  • -t 显示内存总和列
  • -V 显示版本信息

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2804393.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

js设计模式:策略模式

作用: 根据不同的条件去进行相应的业务逻辑处理 就好比针对每种情况都制定对应的方案,触发条件就启动某项方案策略 示例: //策略对象const arrangeFun {model1:(value1,value2,value3,value4)>{return ${value1}${value2}${value3}:${value4}},model2:(value1,value2,va…

HubSpot出海营销的优势有哪些?

HubSpot在出海营销方面的优势可以更为详细地分析如下&#xff1a; 全球化功能支持&#xff1a; HubSpot的多语言支持和多地区适配功能&#xff0c;使得企业能够在不同国家和地区进行营销活动&#xff0c;而不必担心语言和文化差异的障碍。 通过全球化的模板和内容管理系统&a…

微信小程序 --- wx.request网络请求封装

网络请求封装 网络请求模块难度较大&#xff0c;如果学习起来感觉吃力&#xff0c;可以直接学习 [请求封装-使用 npm 包发送请求] 以后的模块 01. 为什么要封装 wx.request 小程序大多数 API 都是异步 API&#xff0c;如 wx.request()&#xff0c;wx.login() 等。这类 API 接口…

后端经典面试题合集

目录 1. Java基础1-1. JDK 和 JRE 和 JVM 分别是什么&#xff0c;有什么区别&#xff1f;1-2. 什么是字节码&#xff1f;采用字节码的最大好处是什么&#xff1f; 1. Java基础 1-1. JDK 和 JRE 和 JVM 分别是什么&#xff0c;有什么区别&#xff1f; JDK 是Java开发工具包&am…

实现Slider 滑块组件标记动态变化

实现以上效果&#xff0c;下拉框、slider滑块、按钮都在同一行&#xff0c;设置flex布局后&#xff0c;发现silider滑块最右边的标记数字一直都如下竖着显示&#xff0c;后来通过给源组件的标记区.el-slider__marks-text增加一个宽度后解决该问题。 <template><div>…

基于PID控制器的直流电机位置控制系统simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 1. PID控制器原理 2. 位置控制环 5.完整工程文件 1.课题概述 基于PID控制器的直流电机位置控制系统。直流电机位置控制系统是工业自动化领域中的一个重要应用。为了实现精确的位置控制&#xff0c;常采…

模板注入 [WesternCTF2018]shrine1

打开题目 直接查看源代码 发现注册了一个名为FLAG的config&#xff0c;这里可能有flag&#xff0c; 存在flask-jinja2模板注入&#xff0c; 并且存在黑名单过滤 输入shrine/{{7*7}}验证成功 通过url_for()与globals()函数&#xff0c;绕过黑名单 /shrine/{{url_for.__globa…

线程安全基础

文章目录 概要线程安全的三个体现一 、原子性二 、可见性三 、有序性 小结 概要 什么是线程安全&#xff1f;&#xff1f;&#xff1f; 当多个线程访问某个类时&#xff0c;不管运行时环境采用 何种调度方式 或者这些进程将如何交替执行&#xff0c;并且在主调代码中不需要任…

线性规划--状态转移(打家劫舍)

打家劫舍I 1.题目 2.思路 要解决这个问题&#xff0c;我们可以使用动态规划的方法。我们将问题分为两个子问题&#xff1a;偷窃前n-1家或者偷窃前n-2家。如果我们选择偷窃第n家&#xff0c;那么我们就不能偷窃第n-1家&#xff0c;因为它们是相邻的。所以&#xff0c;我们可以…

UnityWebGL 设置全屏

这是Unity导出Web默认打开的页面尺寸 修改后效果 修改 index.html 文件 1.div元素的id属性值为"unity-container"&#xff0c;宽度和高度都设置为100%&#xff0c;意味着该div元素将占据整个父容器的空间。canvas元素的id属性值为"unity-canvas"&#xff…

网卡本质,网络发展(局域网,广域网概念)

目录 引入 网卡的本质 网络的发展 引入 早期 局域网LAN&#xff08;Local Area Network&#xff09; 广域网WAN&#xff08;Wide Area Network&#xff09; 注意 引入 前面我们已经学习了很多关于linux系统的知识,其中文件系统和线程尤为繁杂 而网络其实也算系统的一部…

嵌入式学习-qt-Day4

嵌入式学习-qt-Day4 一、思维导图 二、作业 1.设计一个界面&#xff1a;显示系统时间&#xff1b;可以设置闹钟&#xff0c;在设置的时间到达后&#xff0c;显示五次字符串&#xff0c;并且语音播报。 Wight.h #ifndef WIDGET_H #define WIDGET_H #include <QWidget>…

Day 1.进程的基本概念、相关命令、函数结口

进程基本概念 一、进程&#xff1a; 程序&#xff1a;存放在外存中的一段数据组成的文件 进程&#xff1a;是一个程序动态执行的过程&#xff0c;包括进程的创建、进程的调度、进程的消亡 二、进程相关的命令 1.top 动态查看当前系统中所有的进程信息&#xff08;根据CPU…

Nginx网络服务二-----(虚拟机和location)

一、HTTP设置 1.设置虚拟主机 1.1Nginx 基于域名---虚拟主机 include /apps/nginx/conf.d/*.conf; 1.2Nginx 基于端口---虚拟主机 在做了域名的基础上&#xff0c;按照以下步骤继续 1.3Nginx 基于IP---虚拟主机 2.server下的root root路径格式 指定文件的路径 url …

Visual Paradigm 工具使用思考

大型项目的管理与实施&#xff0c;需要有高效的管理工具&#xff0c;VP算是不错的&#xff0c;美中不足是界面太死板&#xff0c;使用不便利&#xff0c;对于小型项目按照这个模式来&#xff0c;相当麻烦。 当然肯定会有人觉得不错&#xff0c;需要的&#xff0c;联系我

面试经典150题 -- 二叉树 (总结)

总的地址 : 面试经典 150 题 - 学习计划 - 力扣&#xff08;LeetCode&#xff09;全球极客挚爱的技术成长平台 104 . 二叉树的最大深度 104 . 二叉树的最大深度 递归 : 直接用递归访问 &#xff0c; 访问左孩子 和 右孩子 &#xff0c; 如果 存在 &#xff0c; 深度就1 &…

vue-router 三级路由,路由跳转页面异常白屏或404,或刷新三级路由页面后一级和二级路由菜单丢失

问题描述 情况1. vue-router 定义三级路由&#xff0c;路由跳转了&#xff0c;页面404或者白屏情况2. 点击菜单三级路由后&#xff0c;刷新页面后一级和二级路由菜单丢失 解决方案&#xff1a; 某些时候是因为二级和三级的路由共用router-view&#xff0c;可以使用router-vi…

基于springboot+vue的大创管理系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

【Android 性能优化:内存篇】——ExoPlayer 释放后内存没有恢复问题探索

背景 最近笔者承接项目的内存优化指标&#xff0c;在内存调研的过程中发现项目中视频播放结束后&#xff0c;内存没有恢复到播放前到水平。项目中用的 EXO 版本为2.19.1&#xff0c;并且笔者自己也写了个简单的 Demo&#xff0c;发现也是如此。虽然有一些偏门方法可以优化&…

阶段四python编程第四章循环

一级目录循环的基本使用 循环的作用&#xff1a;让指定的代码重复执行 while循环最常用的应用场景就是让执行的代码按照指定的次数重复执行 while基本语法&#xff1a; 如果要输出的是100个hello world,该怎么做&#xff1f; 死循环&#xff1a; 程序应该避免出现死循环 whi…