linux CPU性能监控(进阶)和杂谈

2023-11-17

线程与进程的区别:
    进程:是执行一段程序,即一旦程序被载入到内存中准备执行,它就是一个进程。
    
    线程:单个进程中执行每一个任务就是一个线程
    
    一个线程只属于一个进程,一个进程里可以有多个线程
    

上下文切换:
    在处理器执行期间,运行进程的信息被存储在处理器的寄存器和高速缓存中,执行的进程被加载到寄存器的数据集被称为上下文
    
    在切换过程中,先存储运行进程的上下文,然后将下一个要执行的进程的下文恢复到寄存器中。
    
    简单的说就是指CPU 从一个进程或线程切换到另一个进程或线程。

中断处理:
    中断处理是优先级最高的任务之一,中断通常由I/O设备产生,比如网卡,键盘,磁盘等;    
    在linux实现中,存在两种类型的中断,硬中断和软中断;
    
    硬中断:是有硬件设备产生的,需要快速响应(比如:磁盘I/O中断,网络适配器中断,键盘中断,鼠标中断等)
    
    软中断:软中断被用来处理可以推迟的任务,如:TCP/IP操作,SCSI协议操作等,可以在/proc/interrupts下看到硬件中断的相关信息。
    
    在一个多处理的环境中,中断是由每个处理器处理的,将中断绑定到单个处理器上可以提高系统性能。
    
CPU监控常用命令:
    cat /proc/cpuinfo            查看cpu配置信息
    pgrep sshd                    查看sshd进程的ID
    kill -l                        列出所有可以有kill发送的信号
    kill -9                        进程号#强制终止进程
    pkill                        #根据进程名强制终止进程
    
MPSTAT监控工具
    mpstat是实时监控工具
    其报告与cpu的一些统计信息,这些信息存放在/proc/stat文件中
    在多CPUs系统里,不但能查看所以CPU的平均状况信息,而且能够查看特定CPU的信息
    
    mpstat [-P {|all}] [internal [count]]
    参数接受:
        -P {|all}            表示监控哪个CPU,CPU在[0,CPU格式-1]中取值
        internal            相邻的两次采样的间隔时间
        count                采样的次数,count只能和delay一起使用
    
    当没有参数时,mpstat则显示系统启动以后所有信息的平均值。有internal时,第一行的信息自系统启动以来的平均信息。从第二行开始,输出为前一个internal时间段的信息。

SAR 命令
    sar---系统活动情况报告,可以从多方面对系统的活动进行报告,包括:文件的读写情况,系统调用的使用情况,磁盘I/O,CPU效率,内存使用情况,进程活动以及IPC有关的活动等
    
    使用方法:
        sar [option] [<internal> [<count>]]
        
    sar 监控CPU:
        sar -u 5 3            #每五秒采集一次,连续采集三次,观察CPU的使用情况
        sar -u -o output 5 3            #采集,并将采集结果以二进制的形式存入
        sar -f output        #查看output文件
        
        输出格式:
            CPU    %user %nice %system %iowait %steal %idle
                关键指标:
                    %iowait            显示用于等待I/O操作占用CPU总时间的百分比
                    %idle             显示CPU空闲时间占用CPU总时间的百分比
            
            系统瓶颈定位:
                若%iowait的值过高,表示硬盘存在I/O瓶颈
                若%idle的值高但系统响应慢,有可能是CPU等待分配内存,此时应加大内存容量
                
STRACE    命令
    starce常用来跟踪进程执行时的系统调用和所接收的信号
    starce可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间
    
    例1:跟踪2345进程的所有系统调用,并统计系统调用所花费的时间
    strace -o strace.txt -T -tt -e trace=all -p 2345
    
    例2:跟踪configure脚本里面的execve的系统调用
    starce -f -o configure-strace.txt -e execve ./configure
    
    
杂谈:
    1:面试的时候让我讲解一下我们的项目,项目应该怎么合理的阐述?
        参考:面试官考查的目的=》应聘的职位=》功能测试、性能测试?
        
        如:性能测试岗位:我们公司的是xxx项目,该项目是web系统,该系统运行的硬件环境是什么,软件配置是什么,同时可以支持多少个tps,延迟是多少,web系统持续稳定工作多久,我们测试过程中,采用的是SEI,我们在这个项目里面开展了哪些类型的测试,测试过程中,发现了哪些深刻的测试问题,问题是什么,我使用jmeter负载工具,在后台用到了xxx性能监控
        
    2:问你怎么用linux做性能监控,就说用到了哪些命令,怎么分析这些数据?
        参考:CPU、内存、磁盘、网络     top、vmstat、dstat、netstat
        cpu:sy+us大于80%,wa值为0,认为CPU存在瓶颈
        内存:free空间很少,swap使用了,so数值不断变化,而且量很大,认为内存瓶颈
        磁盘:top,wa数值很高,CPU的us不高,发现sy很高
        网络:netstat -tans 有没有丢包,有没有重传等。
        
    3:如果让我压测上线的网站,会影响到用户?
        参考:不可能在上线压测,通常在实验室中压测性能
        
    4:tps上下波动一般是什么问题?
        参考:1、流量波动吗? 2、网络是否有问题(在公司内部一般都是交换机压测,一般很少出现此问题) 3、业务逻辑(定时作业) 4、有没有失败  5、Java(垃圾回收GC FULL GC)
    
    5:验证码如何处理?
        参考:自动化测试:叫开发拿掉        性能测试:验证码只是针对界面的,性能是直接用接口的,一般不会出现这个情况
    

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux CPU性能监控(进阶)和杂谈 的相关文章

  • 设计模式之六大原则

    设计模式之六大原则 转载 关于设计模式的六大设计原则的资料网上很多 但是很多地方解释地都太过于笼统化 我也找了很多资料来看 发现CSDN上有几篇关于设计模式的六大原则讲述的比较通俗易懂 因此转载过来 原作者博客链接 http blog cs
  • Parallels desktop 10 虚拟机支持 USB 3.0

    自Parallels Desktop 8 0 18305 起虚拟机可支持USB 3 0 以Parallels Desktop 10 for Mac为例 如何在虚拟机启用USB 3 0 为了在虚拟机中启用 USB 3 0 请首先在配置中启用功
  • 快速排序————非递归实现

    二 递归实现快速排序 2 1 为什么我们要去通过递归实现我们的快速排序呢 大家有可能会想是不是因为递归非常的占用空间 我们都知道我们的局部变量是保存在栈上的我们的函数参数也是在栈上开辟的 所以说递归是不是会占用我们非常多的栈空间 同时呢我们
  • 【小沐学NLP】Python实现聊天机器人(ChatterBot,代码示例)

    NLP开发系列相关文章编写如下 1 小沐学NLP Python实现词云图 2 小沐学NLP Python实现图片文字识别 3 小沐学NLP Python实现中文 英文分词 4 小沐学NLP Python实现聊天机器人 ELIZA 5 小沐学
  • 矩阵复习三-正交矩阵

    如果ATA I 则A为正交矩阵 A为正交矩阵 则有 A的列向量组为一组标准正交基 若A B都为n阶正交矩阵 则有 A 1或 A 1 A的列向量组为一组标准正交基 A 1 AT A 1 AT也是正交矩阵 AB也是正交矩阵 Rn空间的线性变换矩
  • 创建分区表及分区索引(本地)

    创建表空间 SQL gt create tablespace myTableSpace 1 datafile dat DBData oradata NACEC myTableSpace1 dbf size 100m Tablespace c
  • ControlNet精准控制AI绘画教程

    ControlNet精准控制AI绘画教程 AI绘画相信大家都已经不陌生了 虽然AI绘画出图很方便 但是要让其生成一副自己满意的图 还是需要费一番心思 有时候多次调整关键词就是生成不了自己想要的画面 这些一直以来都是AI绘画的痛点但就在最近
  • Vue前端框架入门,真好学,都给我学起来

    前言 今天要分享的知识是Vue前端框架 码字不易 点个赞 转载请说明 开发工具 HBuilderX Eclipse 目录 一 Vue是什么 二 库和框架的区别 三 MVVM介绍 四 cdn的下载及入门案例 定义边界和绑定边界 案例二 数据双
  • bigdecimal加减乘除运算方法

    BigDecimal是Java中的一个类 用于处理高精度的十进制数值计算 在进行浮点数计算时 由于浮点数的精度有限 可能会出现精度丢失的情况 而BigDecimal可以避免这种情况的发生 因此在需要高精度计算的场合 使用BigDecimal
  • CentOS7安装oracle19c教程

    参考 https zhuanlan zhihu com p 571737575 1创建组和用户 vi etc hosts root rhel cat etc redhat release Red Hat Enterprise Linux S
  • 使用designer写pyqt程序

    1 创建一个qt程序 复制其ui文件至python文件夹 ui界面如下 2 vscode 配置pyqt集成环境 右击ui文件进行编译 生成UI mainwindow py文件
  • LNK2019: 无法解析的外部符号 整理

    无法解析的外部符号是Windows下C 编译的常见链接错误 收集整理备忘 本文随遇到的问题长期更新 我目前遇到的错误可以分为3类 1 编译工具链修改了对应库函数的定义 2 编译参数导致定义和链接库不一致 3 库依赖冲突 4 未导入对应库 常
  • WiFi密码别问了,这神器帮你搞定一切!

    我们经常会遇见朋好去你家做客 第一句就是问你家WiFi 密码 如果密码负责不仅说的麻烦 还有可能暴露自己的密码 毕竟很多人密码都喜欢设置的一样 但是今天这个GitHub 工具WiFi Card完全就能解决这个问题 这个工具就是把 WiFi
  • C++小白课本练习4

    练习目录 ConsoleApplication1 h 头文件定义类 Student myDate Student 类 myDate 类 第二章课本测试3验证类功能的驱动程序 cpp 第二章课本测试4使用指针的方式驱动程序 cpp 第二章课本
  • mysql数据库中文乱码的问题

    今天下午 在Qt中往mysql数据库中插入数据时 中文显示乱码 如下图所示 开始以为是数据库字符编码的问题 1 使用set character set database utf8 在命令行上修改字符编码 但是重启mysql之后 字符编码并没
  • Centos7系统防火墙使用教程【详解】

    CentOS 7是一种常见的Linux操作系统 防火墙作为网络安全的第一道防线 对于服务器的安全至关重要 本文将介绍CentOS 7系统中防火墙的使用教程 包括如何开启 关闭 配置以及防火墙规则的添加和删除 一 查看防火墙状态 在开始操作之

随机推荐

  • 关于Android Service真正的完全详解,你需要知道的一切

    Service全部内容基本会在本篇涉及到 我们将围绕以下主要知识点进行分析 Service简单概述 Service在清单文件中的声明 Service启动服务实现方式及其详解 Service绑定服务的三种实现方式 关于启动服务与绑定服务间的转
  • Verilog--CDC跨时钟域处理(快时钟域到慢时钟域)

    Verilog CDC跨时钟域处理 快时钟域到慢时钟域 CDC问题 单比特信号的跨时钟域问题 从快时钟域到慢时钟域 从慢时钟域到快时钟域 多比特信号的跨时钟域问题 异步FIFO 握手协议 DMUX 格雷码 双D触发器 今天先写单比特信号从快
  • 开始前准备

    开始前准备 一 环境预览 二 安装Ubuntu 三 安装arm gcc工具链 四 Ubuntu构建LiteOS所需要的工具链 五 安装STM32CubeMX软件 六 串口调试助手下载 七 ST Link和USB转TTL串口调试工具 一 环境
  • Express_2 Express Generator

    本文为课程笔记 总体来说 express generator可以帮助我们快速搭建一个express环境 首先 要将它安装在全局环境里 npm install express generator g 然后 就可以使用express 项目名 创
  • 数组入门练习:螺旋遍历二维数组

    NC38 螺旋矩阵 给出一个 n n n 行 m m m 列的二维数组 按螺旋的顺序返回矩阵中的所有元素 比如 输入为 1 2 3 4 5 6 7 8 9 输出为 1 2 3 6 9 8 7 4 5 观察上图
  • 关于mmsegmentation的自定义数据集格式的一些坑(2)

    这次又有任务要跑mmseg 我本意是拒绝的 奈何老板喜欢 mm系列的东西 那一套流程 真心玩不转 玩着玩着心就累了 mm系列和detectron差不多 要找其代码流转 都是要先看配置文件 比较麻烦 需要一定的经验 然后前面两篇都写了我是怎么
  • Android SELinux

    Google参考链接 https source android com docs core architecture aidl aidl hals sepolicy A 通信框架SE文件修改 public attributes vendor
  • 【canal系】canal集群异常Could not find first log file name in binary log index file

    这里先说明下这边使用的canal版本号为1 1 5 在描述这个问题之前 首先需要简单对于canal架构有个基本的了解 canal工作原理 canal 模拟 MySQL slave 的交互协议 伪装自己为 MySQL slave 向 MySQ
  • 详解@Override注解

    目录 1 是什么 2 为什么用 3 举例说明 1 示例一 2 示例二 3 示例三 1 是什么 Override注解是伪代码 用于表示被标注的方法是一个重写方法 Override注解 只能用于标记方法 并且它只在编译期生效 不会保留在clas
  • QT中添加Q_OBJECT出现的问题

    Multiple Inheritance Requires QObject to Be First 多重继承QObject一定要放在前面 我在用class My Node public QGraphicsItem public QObjec
  • 产业互联网-构建智能+时代数字生态新图景

    在2019腾讯全球数字生态大会新闻发布会上 腾讯云联合腾讯研究院 共同发布了行业重磅报告 产业互联网 构建智能 时代数字生态新图景 报告首次阐述了产业互联网的战略框架和实践方法论 报告指出 产业互联网的实现 需要跨界共建数字生态共同体 形成
  • linux安装telnet工具下载,Linux下安装telnet的方法

    一 安装telnet 1 检测telnet server的rpm包是否安装 root localhost rpm qa telnet server 若无输入内容 则表示没有安装 出于安全考虑telnet server rpm是默认没有安装的
  • NestedScrolling机制(一)——概述

    http blog csdn net al4fun article details 53888990 如今 NestedScrolling机制 可以称为嵌套滚动或嵌套滑动 在各种app中的应用已经十分广泛了 下图是 饿了么 中的一个例子 当
  • 虹膜识别 Iris_Osiris_v4.1源码,mfc测试用例

    01 资源 win10 vs2015 git opencv3 3 0 cmake 参考虹膜识别文档 开源虹膜识别软件OSIRIS4 1的使用入门 将开源虹膜识别算法OSIRIS4 1移植到Windows opencv3 3 0的配置参考 也
  • Leetcode 202. 快乐数(找规律注意回环)

    快乐数 编写一个算法来判断一个数 n 是不是快乐数 快乐数 定义为 对于一个正整数 每一次将该数替换为它每个位置上的数字的平方和 然后重复这个过程直到这个数变为 1 也可能是 无限循环 但始终变不到 1 如果 可以变为 1 那么这个数就是快
  • 记录几个CentOS安装包(rpm)的下载地址-离线安装必备

    1 http rpmfind net linux RPM index html 2 https centos pkgs org 3 http mirror centos org centos 7 extras x86 64 Packages
  • Java处理SSH

    JSch 登录 密码方式 session setPassword password 公私秘钥方式 jsch addIdentity ssh id rsaxxx SFTP简介 SFTP是Secure File Transfer Protoco
  • 【YOLOv7/YOLOv5系列算法改进NO.49】模型剪枝、蒸馏、压缩

    文章目录 前言 一 解决问题 二 基本原理 三 剪枝操作 四 知识蒸馏操作 前言 作为当前先进的深度学习目标检测算法YOLOv7 已经集合了大量的trick 但是还是有提高和改进的空间 针对具体应用场景下的检测难点 可以不同的改进方法 此后
  • go 设置 GOROOT 和 GOPATH

    点击在我的博客 xuxusheng com 中查看 有更好的排版哦 发表失败全部丢失 写完了又重写一遍 csdn 都没个自动保存功能 强烈吐槽 go 里面有两个非常重要的环境变量 GOROOT 和 GOPATH 其中 GOROOT 是安装
  • linux CPU性能监控(进阶)和杂谈

    线程与进程的区别 进程 是执行一段程序 即一旦程序被载入到内存中准备执行 它就是一个进程 线程 单个进程中执行每一个任务就是一个线程 一个线程只属于一个进程 一个进程里可以有多个线程 上下文切换 在处理器执行期间 运行进程的信息被存储在处理