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

linux:关于Linux系统中 CPU Memory IO Network的性能监测 我们知道:系统优化是一项复杂、繁琐、长期的工作.通常监测的子系统有以下这些: CPU Memory IO Network 下面是常用的监测工具 Linux 系统包括很多子系统(包括刚刚介绍的CPU,Memory,IO,Network,等),下面这张图片很好的总结了 Linux 各个子系统以及监控这些子系统所需要的工具, 上面 阅读详情

前言

在实际产品开发过程中遇到一些莫名其妙的问题,比如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

JAVA进阶面试题:如何设计一个高并发系统? 如何设计一个高并发系统? 面试官心理分析 说实话,如果面试官问你这个题目,那么你必须要使出全身吃奶劲了。为啥?因为你没看到现在很多公司招聘的 JD 里都是说啥,有高并发就经验者优先。 如果你确实有真才实学,在互联网公司里干过高并发系统,那你确实拿 offer 基本如探囊取物,没啥问题。面试官也绝对不会这样来问你,否则他就是蠢。 假设你在某知名电商公司干过高并发系统,用户上亿,一天流量几十亿,高峰期并发量上万,甚至是十万。那么人家一定会仔细盘问你的系统架构,你们系统啥架构?怎么部署的?部署了多少台机器 阅读详情

相关推荐

brother的PT-9800PCN标签打印机二次开发

本来想通过esc/p指令打印标签,但是无奈能找到的资料太少,而且打电话给客服,也没有sample可以提供参考,后来客服说使用template功能的话,打印很方便。于是下载手册学习了一下, 先下载P-touch Editor软件,制作标签模板。 制作的模板就是普通的标签,不需要连接数据库之类的,模板里有3个object,分别是文本1,文本2,条形码3。这个很关键,后面的代码传送数据,就是按这...

3563

Linux内存监控的12种方法全面掌握系统资源使用情况

更多Python学习内容:ipengtao.com监控系统的内存使用情况是系统管理和性能优化的关键部分之一。在 Linux 环境下,有多种方法来实现对内存的监控和管理。本文将介绍 12 种常用的方法,涵盖了从基本的命令行工具到更高级的监控工具的使用,帮助您全面掌握系统的资源使用情况。1. free 命令free命令用于显示系统内存的使用情况,包括总内存、已使用内存、空闲内存等。free-h示例...

GitHub_miao的博客 3088

uniapp开发AndroidAPP集成支付宝支付及问题处理(商家订单参数异常等),集成微信小程序支付及问题处理(运行真机调试白屏)

2、选择支付宝支付,调用支付接口唤起支付宝支付。

qq_16785561的博客 3486

深度学习环境配置:Linux系统性能监控工具

本文介绍了如何在星图GPU平台上自动化部署深度学习项目训练环境镜像,快速构建高性能训练基础设施。该镜像预装主流框架与监控工具,支持Linux下GPU利用率、内存及IO瓶颈的实时诊断与优化,典型应用于模型训练过程中的性能调优与资源瓶颈定位。

weixin_33773084的博客 173

飞腾X100芯片GPU状态查询

本文档对在linux系统下查看X100芯片GPU状态信息进行说明,可以帮助大家了解芯片的实时工作状态。

乌拉大喵喵 2813

Open3D点云数据处理(五):点云、mesh可视化(draw_geometries方法)

本文介绍了Open3D中的draw_geometries可视化方法,可以用于可视化点云和mesh。详细讲述了该方法的各个参数的作用,给出了代码示例。

孙悟空 3137

超全整理!Linux性能分析工具汇总合集(1),涨知识

内存不足的表现:free memory急剧减少,回收buffer和cacher也无济于事,大量使用交换分区(swpd),页面交换(swap)频繁,读写磁盘数量(io)增多,缺页中断(in)增多,上下文切换(cs)次数增多,等待IO的进程数(b)增多,大量CPU时间用于等待IO(wa)在使用时,直接输入命令即可,当然也可以使用特定参数。任务区域默认显示:进程ID,有效用户,进程优先级,NICE值,进程使用的虚拟内存,物理内存和共享内存,进程状态,CPU占用率,内存占用率,累计CPU时间,进程命令行信息。

2401_84140302的博客 721

ResNet改进(20):融合Swin Transformer与ResNet

这种混合架构的设计理念是:在保留CNN强大局部特征提取能力的同时,引入Transformer的全局建模优势。我们实现的模型在ResNet18的基础上嵌入了一个简化版的Swin Transformer Block,旨在探索两种范式结合的可能性。通过在ResNet早期阶段引入Transformer模块,我们既保留了CNN强大的局部特征提取能力,又获得了Transformer的全局建模优势。本文提出的ResNet与Swin Transformer混合架构,探索了CNN与Transformer结合的可能性。

2401_82355416的博客 858

三张图看遍Linux 性能监控、测试、优化工具

Linux 平台上的性能工具有很多,眼花缭乱,长期的摸索和经验发现最好用的还是那些久经考验的、简单的小工具。系统性能专家 Brendan D. Gregg 在最近的 LinuxCon NA 2014 大会上更新了他那个有名的关于 Linux 性能方面的 talk (http://www.brendangregg.com/linuxperf.html) 和幻灯片。 和 Brend...

dbna5213的博客 78

从一个 ASIN 看透亚马逊:商品模型背后的增长飞轮

在亚马逊电商体系中,每件商品背后都有一套严密的商品建模逻辑。本篇文章以“ASIN 的一生”为线索,系统拆解了亚马逊的商品模型:从飞轮战略出发,剖析 SDP(Single Detail Page)机制如何实现标准化展示;再到 ASIN 编码、父子变体结构与 Offer 分离模型,逐层解析商品信息如何被建构、聚合与呈现。通过图解与案例,文章帮助读者理解商品建品流程、同款聚合原则、价格控制机制等核心逻辑,避免常见运营误区,是一份面向运营、产品、技术人员的实用参考指南。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 13万+

软考中级-软件设计师 Python基础

软考中级-软件设计师 Python知识点整理

片言可决讼,半纸能缚龙 3641

Linux:系统磁盘性能监测与诊断_linux磁盘性能测试工具(1)

iostat- 用于监视系统输入/输出设备加载情况的工具。vmstat- 报告虚拟内存统计。iotop- 实时监控磁盘I/O使用情况。hdparm- 测试磁盘读写性能的工具。sar- 收集、报告或保存系统活动信息。

2401_84765537的博客 643

A2A 协议详解:Agent Card 的设计与实现

Agent Card 是 Agent2Agent (A2A) 协议中实现智能体发现与互操作性的核心组件。本文将深入剖析 Agent Card 的设计理念、关键字段及其在智能体生态系统中的作用。我们将通过详细的 JSON Schema 解析和 Python SDK 示例,帮助您理解如何精确地定义和发布智能体能力,为构建可发现、可协作的 AI 智能体奠定基础。当您使用a2a.Agent类初始化一个智能体时,SDK 会根据您提供的参数(nameversion等)自动构建内部的 Agent Card 表示。

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 1476

Linux性能分析工具

综合监控可视化分析数据导出连接状态端口监控网络统计调用优化性能提升系统编程依赖分析动态链接库管理平台建设最佳实践运维体系。

苦哈哈的 C++ 程序员,写这个技术博客不是为了装逼,也不是为了立人设,是为了收割流量 993

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

你可以需要了解的Linux 性能工具,(非常详细)零基础入门到精通,收藏这一篇就够了

介绍一些常用的Linux性能工具,这些工具可以帮助系统管理员和开发人员监控、分析和优化系统性能。文中梳理常见的性能工具,从 CPU、内存、文件系统和磁盘 I/O、网络以及基准测试等不同的角度,汇总了各类性能指标所对应的性能工具速查表Brendan Gregg 整理的性能工具谱图。

Libra1313的博客 736

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Linux服务器性能监控利器 —— Nmon实战

简单介绍下,Nmon是一款系统性能监控工具,因为它免费,体积小,安装简单,耗费资源低,广泛应用于AIX和Linux系统。

测试界的彭于晏的博客 305

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

服务端性能测试:行业流行性能监控工具介绍

vmstat 和 top 都是Linux 系统自带的命令,提供了实时的监控信息,对于系统管理员和开发人员来说非常有用。vmstat 是一个命令行工具,用于报告 Linux 系统的虚拟内存、进程、CPU 和 IO 状态。它可以提供实时的系统监控信息。vmstat 命令可以通过指定不同的参数和时间间隔来控制输出的频率和详细程度。它对于监测系统的性能问题和调优非常有用。top 是一个交互式命令行工具,用于实时监控系统的进程和资源使用情况。

2301_80119579的博客 400

Windows用户文件夹重定向到D盘原理与安全脚本实现

用户文件夹重定向是Windows系统管理中优化磁盘空间与提升系统稳定性的关键技术,其核心在于通过注册表Shell Folders键值修改和符号链接(Junction)机制,动态映射桌面、文档等虚拟路径至非系统盘(如D盘)。该技术依托Windows用户配置文件(User Profile)加载流程,确保应用程序无感兼容。相比简单移动或快捷方式,重定向具备策略可控、权限继承、跨版本稳定等工程优势,广泛应用于企业终端管控、双硬盘性能优化及内容创作者数据隔离场景。本文深入解析useprofile上下文绑定、User

weixin_34189116的博客 274

超全整理!Linux性能分析工具汇总合集,80后程序员月薪30K+感慨中年危机

最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!

2401_84140302的博客 1085

Jmeter(十九):nmon性能系统监控工具_jmeter nmon(1)

*

2301_79099473的博客 1580

Linux:系统磁盘性能监测与诊断_linux磁盘性能测试工具(2)

iostat- 用于监视系统输入/输出设备加载情况的工具。vmstat- 报告虚拟内存统计。iotop- 实时监控磁盘I/O使用情况。hdparm- 测试磁盘读写性能的工具。sar- 收集、报告或保存系统活动信息。

m0_55004058的博客 673

程序员必备的Linux命令——用户管理及系统管理与性能监控指令

Linux命令就是我们对Linux系统进行管理的操作指令。类似于我们操作windows系统中可视化的各种操作动作。在Linux系统中,我们任何东西都被认做是文件,比如cpu、内存、键盘以及用户全是文件。Linux命令类似于之前的DOS命令。Linux系统中命令分为两种:Linux命令以及Shell命令。小步慢跑,一天10——20条命令,好好消化,基本的linux操作命令信手拈来上一篇信息显示以及搜索文件的操作指令,今天我们看一下用户管理及系统管理与性能监控。

ybb_ymm的专栏 218

你可以需要了解的Linux 性能工具,零基础入门到精通,收藏这一篇就够了

介绍一些常用的Linux性能工具,这些工具可以帮助系统管理员和开发人员监控、分析和优化系统性能。文中梳理常见的性能工具,从 CPU、内存、文件系统和磁盘 I/O、网络以及基准测试等不同的角度,汇总了各类性能指标所对应的性能工具速查表Brendan Gregg 整理的性能工具谱图。

leah126的博客 576

linux 监视ssh登录输出,rtop - 通过SSH监视远程Linux服务器的交互式工具

rtop是一个基于SSH的直接和交互式远程系统监控工具 ,它收集并显示重要的系统性能值,如CPU , 磁盘 , 内存和网络指标 。它以Go语言编写,不需要在要监视的服务器上安装任何额外的程序,除了SSH服务器和工作凭据。rtop基本上是通过启动SSH会话,并在远程服务器上执行特定命令来收集各种系统性能信息。一旦建立了SSH会话,它就会每隔几秒(默认为5秒)持续刷新从远程服务器收集的信息,类似于Li...

weixin_42494628的博客 502

Linux 运维必备的 13 款实用工具,赶紧收藏~(非常详细)从零基础入门到精通,看完这一篇就够了_linux运维工具

本文介绍几款Linux运维比较实用的工具,希望对Linux管理员有所帮助。

2401_89213290的博客 1203
上一篇: FFMPEG编译安装、简单使用
下一篇: 图像叠加中文字体
帘下有白绿
博客等级 码龄12年 165粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值