Linux性能瓶颈分析之TOP指标分析

Linux性能瓶颈分析之TOP指标分析


文章目录

  • Linux性能瓶颈分析之TOP指标分析
  • 一、查看CPU
  • 二、监控CPU
  • 总结


一、查看CPU

1.查看cpu基础信息

lscpu

2.查看cpu详细信息

cat /proc/cpuinfo

3.统计cpu信息

cat /proc/cpuinfo |grep "physical id" |sort |uniq |wc -l  查看物理cpu数量
cat /proc/cpuinfo | grep "cpu cores" |uniq  查看CPU的core数,即核数
cat /proc/cpuinfo | grep "processor" |wc -l 查看逻辑CPU数量

如图所示:
在这里插入图片描述
在这里插入图片描述

二、监控CPU

  • us:表示 CPU 在用户态运行的时间百分比,通常用户态 CPU 高表示有应用程序比较繁忙。
  • sy:表示 CPU 在内核态运行的时间百分比,通常内核态 CPU 越低越好,否则表示系统存在某些瓶颈。
  • ni:表示用 nice 修正进程优先级的用户态进程执行的 CPU 时间。nice 是一个进程优先级的修正值,如果进程通过它修改了优先级,则会单独统计 CPU 开销
  • id:表示 CPU 处于空闲态的时间占比
  • wa:表示 CPU 在等待 I/O 操作完成所花费的时间,通常该指标越低越好,否则表示 I/O 存在瓶颈,可以用 iostat 等命令做进一步分析。
  • hi:表示 CPU 处理硬中断所花费的时间。硬中断是由外设硬件(如键盘控制器、硬件传感器等)发出的,需要有中断控制器参与,特点是快速执行
  • si:表示 CPU 处理软中断所花费的时间。软中断是由软件程序(如网络收发、定时调度等)发出的中断信号,特点是延迟执行。
  • st:表示 CPU 被其他虚拟机占用的时间,仅出现在多虚拟机场景。如果该指标过高,可以检查下宿主机或其他虚拟机是否异常。
  • load average值 & CPU使用率之间的关系
    load average != CPU使用率
    load average是系统的整体负载提现:
    包括:CPU负载 + Disk负载 + 网络负载 + 外设负载
    loadaverage = cpuload + ioload
    CPU的使用:用户进程使用时间us、系统内核运行时间sy、空闲时间idle、管理被强占时间st
    繁忙:us + sy + st + ni +hi +si == CPU使用率的时间(除以总时间)
    空闲:idle + wa

CPU的上下文

上下文切换就是cpu 寄存器里面的资源进行切换。
自愿上下文切换: 资源不够,自觉的切换到另外指令上。
非自愿上下文切换: 有可能有优先级更高的指令或者指令执行的时间已经到了,被迫中止当前的指令,去执行其他指令。

  • sy:做上下文切换—>可能遇到上线文问题
    自愿上下文切换 —> 内存瓶颈
    非自愿上下文切换 ----> cpu瓶颈(抢占资源)
  • us/ni : 用户运行计算 —> cpu密集计算 or FGC or 死循环
  • si :软中段 ---->cpu竞争抢资源 or 资源不够I/O问题
  • wa : 等待资源 —>I/O问题(磁盘/网络)
  • st : 抢占资源 —> 宿主机抢占资源

列举场景:

  • 情况1:sys 系统态高 === 排查cpu上下文切换
    如果“非自愿上下文切换”多,说明cpu不够用,进程时间片到,被迫切换
    如果“自愿上下文切换”多,说明计算机存的资源不够用,可能存在I/O、内存瓶颈
  • 情况2:si 软中断高 == cpu抢资源,资源不够用I/O问题
    sys高 + si高 ===>内存or网络I/O问题
    sys高 + si 不高 ===> CPU瓶颈
  • 情况3:us用户态高 === 用户程序计算
    密集型计算、内存FGC、资源等待(线程池)

总结

近期涉及到整理Linux相关培训,参考了其他博主文章,大多都是局部某个点的分析,系统性的很少,所以打算做一个Linux性能瓶颈分析的系列文章,工作原因,到7月底陆续完成初稿的几篇,涉及cpu、内存、缓存、io、磁盘等等相关文章。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Go语言使用net/http实现简单登录验证和文件上传功能

最近再看Go语言web编程,go语言搭建Web服务器,既可以用go原生的net/http包,也可以用gin/fasthttp/fiber等这些Web框架。本博客使用net/http模块编写了一个简单的登录验证和文件上传的功能,在此做个简单记录。 目录 1.文件目录结构…

Spring bean 生命周期

在互联网领域中,Spring框架扮演着重要的角色。作为一个开源的Java应用程序开发框架,Spring提供了一种灵活而强大的方式来构建可扩展的应用程序。Spring框架中的一个重要概念是Bean,它是Spring应用程序的基本构建块之一。了解Spring Bean的生命…

多元分类预测 | Matlab粒子群算法(PSO)优化混合核极限学习机(HKELM)分类预测,多特征输入模型,PSO-HKELM分类预测

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元分类预测 | Matlab粒子群算法(PSO)优化混合核极限学习机(HKELM)分类预测,多特征输入模型,PSO-HKELM分类预测 多特征输入单输出的二分类及多分类模型。程序内注释详细,直接替换数据就可以用。程序语言为matl…

Unity UGUI Canvas Overlay模式获取屏幕坐标

UGUI Canvas Overlay模式获取屏幕坐标 🍔效果🍱获取 🍔效果 🍱获取 ui的position就是屏幕坐标(●’◡’●) var screenPos new Vector2(transform.position.x, transform.position.y);

力扣 112. 路径总和

题目来源:https://leetcode.cn/problems/path-sum/description/ C题解1:递归法,前序遍历。先把当前节点加入sumtmp,再判断是不是叶子节点,如果是则判断sumtmp与targetSum的大小,不是则对其左右子树再次进行…

React解决setState异步带来的多次修改合一和修改后立即使用没有变化问题

我们编写这样一段代码 import React from "react" export default class App extends React.Component {constructor(props){super(props);this.state {cont: 0}}componentDidMount() {this.setState({cont: this.state.cont1})}render(){return (<div>{ thi…

【前端|CSS系列第2篇】CSS零基础入门之常用样式属性

欢迎来到CSS零基础入门系列的第二篇博客&#xff01;作为前端开发的关键技术之一&#xff0c;CSS&#xff08;层叠样式表&#xff09;能够为网页添加各种样式和布局效果。对于前端零基础的小白来说&#xff0c;了解和掌握CSS的常用样式属性是入门的关键。本篇博客将带你深入了解…

全志科技T507-H工业核心板规格书(4核ARM Cortex-A53,主频1.416GHz)

1 核心板简介 创龙科技SOM-TLT507是一款基于全志科技T507-H处理器设计的4核ARM Cortex-A53全国产工业核心板&#xff0c;主频高达1.416GHz。核心板CPU、ROM、RAM、电源、晶振等所有元器件均采用国产工业级方案&#xff0c;国产化率100%。 核心板通过邮票孔连接方式引出MIPI CS…

时间序列分解 | Matlab 互补集合经验模态分解(CEEMD)的信号分解

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 时间序列分解 | Matlab 互补集合经验模态分解(CEEMD)的信号分解 部分源码 %---------------------

TI AM64x工业核心板硬件说明书(双核ARM Cortex-A53 + 单/四核Cortex-R5F + 单核Cortex-M4F,主频1GHz)

1 硬件资源 创龙科技SOM-TL64x是一款基于TI Sitara系列AM64x双核ARM Cortex-A53 单/四核Cortex-R5F 单核Cortex-M4F设计的多核工业级核心板&#xff0c;通过工业级B2B连接器引出5x TSN Ethernet、9x UART、2x CAN-FD、GPMC、PCIe/USB 3.1等接口。核心板经过专业的P…

记录好项目D20

记录好项目 你好呀&#xff0c;这里是我专门记录一下从某些地方收集起来的项目&#xff0c;对项目修改&#xff0c;进行添砖加瓦&#xff0c;变成自己的闪亮项目。修修补补也可以成为毕设哦 本次的项目是个springbootvue的图书管理系统项目 一、系统介绍 本项目前后端分离 …

代码源 线段树模板

线段树1 思路&#xff1a; 我们需要维护的东西是序列的最小值和最小值个数 这道题没有修改操作&#xff0c;因此不考虑修改 然后考虑Pushup 最小值很简单&#xff0c;直接取min 最小值个数怎么维护呢&#xff1f;考虑这个区间需要维护的值如何从左右两个区间获得 如果左右…