Linux性能系统学习之监控工具

目录

  • 前言
  • linux性能度量标准
  • 监控工具
    • top
    • uptime
    • ps/pstree
    • free
    • mpstat
    • vmstat

前言

在实际产品开发过程中遇到一些莫名其妙的问题,比如swap交换分区随着时间增多影响到系统调用,或CPU占用以及内存的监测等,所以有必要系统了解Linux的性能问题。


linux性能度量标准

  • 处理器度量标准

    • CPU使用率
    • 用户进程消耗CPU的时间
    • 内核操作消耗CPU的时间
    • 等待
    • CPU空闲时间
    • Nice消耗CPU时间
    • 平均负载
    • 可运行的进程
    • 阻塞的进程
    • 上下文切换
    • 中断
  • 内存度量标准

    • 空闲内存
    • 使用的swap
    • 缓冲和缓存
    • Slab
    • **活跃与非活跃内存 **。
  • 块设备度量标准

    • I/O等待
    • 平均队列长度
    • 平均等待时间
    • 每秒传输
    • 每秒读取/写入块的数量
    • 每秒读取/写入的字节
  • 网络接口度量标准

    • 收和发送的数据包
    • 接收和发送的字节。 这个指标描述了一个给定网络接口接收和发送的字节数。
    • 每秒钟的冲突数量 。 这个值给出了在网络上连接的每个接口发出冲突的相对数量。如果发生持续冲突通常要关注网络基础设施的问题,而不是服务器。
    • 丢弃的数据包 。已经被内核丢弃的数据包的统计数。丢弃的原因可能是由于防火漆配置,也可能是由于缺乏网络缓冲区。
    • 溢出
    • 错误

监控工具

工具最有用的工具功能
top提供运行系统的动态实时试图
uptime显示系统平均负载
ps/pstree提供当前进程列表
free显示系统中空闲内存和已使用内存的数量
mpstat报告处理器相关的统计数据
vmstat报告进程、内存、磁盘、系统、cpu的统计信息
iostat报告cpu统计数据,还有设备和分区的输入、输出统计数据
netstat,ss显示相关网络统计信息
sar收集报告系统活动信息
numastat显示每个NUMA节点的内存统计信息
pmap报告一个进程的内存映射
iptraf交互式局域网监控程序
tcpdump/wireshark用来捕捉和分析网络流量
straceltrace系统调用和库调用跟踪程序
gnuplot命令行绘图工具
Gnome System MonitorGnome桌面环境的图形性能分析工具
KDE System GuardKDE任务管理器和性能监控器

top

  • 系统摘要信息
    top - 15:34:43 up 21:09, 2 users, load average: 1.22, 1.24, 1.37
  • 任务和CPU状态
    • Tasks: 235 total/*总共任务数量*/, 1 running/*正在运行的任务数*/, 234 sleeping/*睡眠*/, 0 stopped/*中止*/, 0 zombie/*僵尸状态数*/
    • %Cpu(s): 8.5 us(c.1), 13.1 sy(c.2), 0.0 ni(c.3), 64.9 id(c.4), 0.0 wa(c.5), 12.7 hi(c.6), 0.8 si(c.7), 0.0 st(c.8)
      c.1:运行非nice的用户进程时间
      c.2:运行内核进程的时间
      c.3:运行nice的用户进程时间
      c.4:空闲花费的时间
      c.5:IO等待花费的时间
      c.6:服务硬件中断花费的时间
      c.7:服务软件中断花费的时间
      c.8:通过pypervisor虚拟机偷走的时间
  • 内存使用情况
    • KiB Mem : 4059384 total, 135604 free, 1840076 used, 2083704 buff/cache
    • KiB Swap: 2029680 total, 1789196 free, 240484 used. 2001496 avail Mem
  • 内核管理的任务列表
    • PIDd.1 USER``d.2 PRd.3NId.4VIRTd.5RESd.6SHRd.7 Sd.8 %CPUd.9 %MEMd.10 TIME+d.11COMMANDd.12
      d.1:进程标识符
      d.2:任务拥有者(或启用者)的有效用户名
      d.3:任务的优先级
      d.4:任务的nice值。正数nice值意味着较高的优先级
      d.5:任务使用的虚拟内存的总量,包括所有代码,数据,共享库交换出的分页
      d.6:常驻内存的大小。任务所使用的非交换的物理内存。rescode+data
      d.7:任务所使用的共享内存量。它只反映了可与其他进程共享的内存。
      d.8:进程状态。D:不可中断的睡眠R:正在运行 S:睡眠 T:跟踪或停止 Z: 僵尸
      d.9:CPU总时间的百分比
      d.10:任务当前使用的可用物理内存
      d.11:自系统启动开始任务所使用的总共CPU时间
      d.12:显示用于启动任务的命令行或相关程序的名称
  • 热键 详细按h查看

uptime

16:23:33a. up 21:58b., 2 usersc., load average: 0.29, 1.00, 1.23d.
a.: 系统时间 b.:cpu时间 c.:当前用户登录数 d.:服务器在过去1分钟,5分钟和15分钟的系统平均负载

  • 系统平均负载是可运行状态进程或不可中断状态进程的平均数。处在可运行状态的进程要么是正在使用CPU,要么是等待使用CPU。处在不可中断状态的进程正在等待一些I/O访问,例如等待磁盘。平均值有3个时间间隔。因为系统中CPU的数量、平均负载不是规范化的,所以,平均负载为1意味着一个单CPU系统始终是有负载的,在一个4核CPU系统上则意味着它有75%的空闲时间。

  • 平均负载最佳值为1,这意味着每个进程都能立刻访问CPU,并且没有丢失CPU周期。对于单(核)处理器工作站,1或2是可以接受的,而在多处理器服务器上你可能会看到8到10的数字(单核CPU负载是2,4核CPU负载可能是8)。

  • 可以使用uptime确定问题出在服务器还是网络。例如,如果一个网络应用程序运行很糟糕,则可以运行uptime,查看系统负载是否很高。如果没有,则这个问题很可能关系到你的网络,而不是你的服务器。

ps/pstree

  • 查看进程号的几种方式
ps -ef |grep P1 |grep -v color |awk '{print $2}' 
ps -C P1 -o pid=
pgrep  P1
  • pstree
    • 可能使用的最多的是确认多进程和当前进程有多少线程吧。pstree -p
      一个main函数中增加2个线程确认如下,main作为一个进程也是一个线程,增加复杂线程或内存使用多样化的线程中可以增加线程名,后续方便排查问题。
      在这里插入图片描述

free

基本的用法不在此展开,只做一些自己开发过程中的需求记录。

  • 在使用过程中需要申请大块内存,可能导致OOM问题,所以在申请过程中按照剩余内存的.9系数申请 ,
    代码获取剩余内存方式:
    • 使用popen方式获取系统调用返回值,然后解析返回的剩余内存
    • 读取虚拟/proc/meminfo获取剩余内存

mpstat

因为开发板没有该命令,因此再次不做更新记录

vmstat

vmstat用来报告关于进程,内存,分页,块io,中断,cpu活动的信息。
vmstat命令显示平均数据或实际样本。通过vmstat命令提供一个采样频率和采样次数可启用采样模式。

  • vmstat -n {n为采样频率}

第一行产生的报告是自上次重启之后的平均值,因此应该考虑排除它。可以使用delay给出采样周期的长度报告更多的信息。进程和内存的报告是瞬时的。
运行结果

  • Procs

    • r, 可运行进程的数量(正在运行或等待运行时间。)
    • b, 不可中断睡眠状态进程的数量。
  • memory

    • swpd,虚拟内存使用的数量。
    • free,用作空闲内存的数量。
    • buff,用作缓冲区的内存数量。
    • cache,用作缓存的内存数量。
    • nact,非活跃内存的数量(使用-a选项)。
    • active,活跃内存的数量(使用-a选项)。
  • swap

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

待办事项app推荐哪一款?每日待办事项提醒用什么APP

每天的生活中,我们总是充满着各种待办事项,如果不及时处理,就会导致各种问题的出现。在众多的待办事项app中,如何选择一款最适合自己的app呢?所谓待办事项,通常是指尚未着手的事项。在日常生活中&#xff0…

Mysql进阶-事务锁

前置知识-事务 事务简介 事务 是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。 就比如: 张三给李四转账1000块钱&#xff0…

3D模型制作木质纹理贴图

在线工具推荐: 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 本文将讲解如何使用GLTF 编辑器 -NSDT 在线材质编辑工具为3D模型设置…

jQuery选择器、操作DOM、事件处理机制、动画、ADJX操作知识点梳理

jQuery 核心理念就是写的更少,做的更多实现的代码更加简洁有效的提高开发效率 jQuery跟JavaScript的用法是不一样的 跟jQuery相继诞生的JavaScript库还有很多,不包括node.js 关于代码$("li").get(0),获取DOM对象 jQuery对象声明,是通过($)符号来实现的 如…

【【FPGA 之 MicroBlaze XADC 实验】】

FPGA 之 MicroBlaze XADC 实验 Vivado IP 核提供了 XADC 软核,XADC 包含两个模数转换器(ADC),一个模拟多路复用器,片上温度和片上电压传感器等。我们可以利用这个模块监测芯片温度和供电电压,也可以用来测…

Spring Cloud Gateway常见问题

Spring Cloud Gateway常见问题 什么是 Spring Cloud Gateway? Spring Cloud Gateway 属于 Spring Cloud 生态系统中的网关,其诞生的目标是为了替代老牌网关 Zuul。准确点来说,应该是 Zuul 1.x。Spring Cloud Gateway 起步要比 Zuul 2.x 更早…

4、类和对象、this指针、常对象和常函数

类和对象 类的一般形式 访问控制限定符 public 公有成员,谁都可以访问protected 保护成员,只有类自己和子类可以访问private 私有成员,只有类自己可以访问 类和结构的访问控制限定符区别 类的缺省访问控制限定为私有(private)结构的缺省访…

禅道不同系统迁移详解及Linux安装(windows->linux)

一、禅道迁移前提 官网下载链接 一定要用相同版本,一定要相同版本,一定要相同版本。负责导入数据必然有问题(完全一致的那种,小版本也要一样) 可以在后台哪里看版本,或者在右下角哪里看版本,然后去官网搜索 二、安…

掌控安全 -- header注入

http header注入 该注入是指利用后端验证客户端口信息(比如常用的cookie验证)或者通过http header中获取客户端的一些信息(比如useragent用户代理等其他http header字段信息),因为这些信息是会重新返回拼接到后台中的&…

基于PIPNet的人脸106关键点检测

做美颜需要使用到人脸关键点,所以整理了一下最近的想法。 按模型结构分类: 1.Top-Down: 分为两个步骤,首先,对于原始输入图片做目标检测,比如做人脸检测,将人脸区域抠出,单独送进关键点检测模…

天津python培训课程,普通人学python有用吗?

选择一个正确的行业对于个人的发展至关重要,在当今时代,IT行业高薪的特点吸引了越来越多的人转行“入坑”,而作为目前的热门编程语言,python也是很多人转行的选择。 Python培训学费选择 python培训班学费可能会因为培训机构所在…

C#简化工作之实现网页爬虫获取数据

1、需求 想要获取网站上所有的气象信息,网站如下所示: 目前总共有67页,随便点开一个如下所示: 需要获取所有天气数据,如果靠一个个点开再一个个复制粘贴那么也不知道什么时候才能完成,这个时候就可以使用C…

Isaac Sim教程06 OmniGraph图编程

Isaac Sim OmniGraph图编程 版权信息 Copyright 2023 Herman YeAuromix. All rights reserved.This course and all of its associated content, including but not limited to text, images, videos, and any other materials, are protected by copyright law. The autho…

mac shortcut keys cheat sheet【mac 快捷键清单】

文章目录 剪切、拷贝、粘贴和其他常用快捷键访达和系统快捷键 Mac 键盘快捷键 Command(或 Cmd)⌘ Shift ⇧ Option(或 Alt)⌥ Control(或 Ctrl)⌃ Caps Lock ⇪ Fn 剪切、拷贝、粘贴和其他常用快捷…

【数据结构与算法】JavaScript实现二叉搜索树

文章目录 一、二叉搜索树的封装1.插入数据2.遍历数据2.1.先序遍历2.2.中序遍历2.3.后续遍历 3.查找数据3.1.查找最大值&最小值3.2.查找特定值 4.删除数据4.1.情况1:没有子节点4.2.情况2:有一个子节点4.3.情况3:有两个子节点4.4.完整实现 …

【性能测试】LR录制回放事务检查点

前言 上一次推文我们分享了性能测试分类和应用领域,今天带大家学习性能测试工作原理、事务、检查点!后续文章都会系统分享干货,带大家从0到1学会性能测试,另外还有教程等同步资料,文末免费获取~ 01、LR工作原理 ​通…

CSS特效026:扇骨打开关闭的动画

CSS常用示例100专栏目录 本专栏记录的是经常使用的CSS示例与技巧,主要包含CSS布局,CSS特效,CSS花边信息三部分内容。其中CSS布局主要是列出一些常用的CSS布局信息点,CSS特效主要是一些动画示例,CSS花边是描述了一些CSS…

Vue项目图片预览v-viewer插件使用,图片预览,图片查看;antdesign+vue2+v-viewer实现图片查看器并可删除图片

Vue项目图片预览v-viewer插件使用 1. 安装 v-viewer 你可以使用 npm 或者 yarn 来安装 v-viewer: npm install v-viewer 或者 yarn add v-viewer 2. 导入和配置 v-viewer 在你的 Vue 项目中,你需要在入口文件(通常是 main.js&#xff09…

做一个类似东郊到家的上门服务类系统有哪些功能?

上门服务系统是一款便捷的技师接单、上门提供理疗服务的软件。我们拥有优秀的开发团队,为您量身定制解决方案,价格合理,用心服务。 预约上门:该功能是预约上门推拿理疗按摩系统软件小程序APP的核心功能。消费者通过系统预约下单&a…

python打包exe,打包好后,启动exe报错找不到paddleocr

目录 1、安装pyinstaller 2、生成脚本文件的.spce文件 3、资源文件配置 4、生成exe文件 5、使用了paddleocr启动exe后报错 6、配置.spce文件 7、重新生成exe文件 8、关于图片找不到的问题 参考:PaddleOCR打包exe--Pyinstaller_paddleocr 打包exe_mjiansun的博…