性能测试第十九课-linux服务器性能分析基础命令2

iostat ----监控 磁盘io的情况

  • iostat 显示设备,分区和网络文件系统的CPU统计信息和输入/ 输出统计信息
  • 重点的参数
    • -c 显示CPU使用率报告
    • -d 显示设备使用率报告
    • -k 以每秒千字节显示统计报告
    • -m 以每秒兆字节显示统计报告
    • -x 显示扩展统计信息
  • Device:
    • rrqm/s 读取磁盘队列数量/s
    • wrqm/s 写磁盘队列数量/s
    • r/s w/s 每秒的读\写的请求次数
    • rMB/s wMB/s 每秒读\写磁盘的大小
    • avgrq-sz 平均请求磁盘扇区数
    • avgqu-sz 等待队列的大小
    • **await r_await w_await ** 等待
    • svctm 请求用的时间

在项目的服务器中, 应用服务器,一般追求 计算能力, 我期望的是 cpu、内存性能要好。

但是,数据库服务器,追求的是稳定,是磁盘读写数据的速度 ----数据库要求 磁盘的性能要好。

补充知识:

  • linux的磁盘,有两种 sd , hd
    • sd盘===机械硬盘, 虚拟出来的磁盘,一般都是 sd盘;
    • hd 固态硬盘
  • 后面有字母, 字母代表第几个硬盘 sda 第1个机械硬盘 sdc 第三个机械硬盘
  • 再后面的数字,代表 第几个分区
    • sda1 第1个机械硬盘的第1个分区
    • sda2 第1个硬盘的第 2个分区

dstat:是一个用例替换vmstat、iostat等命令的工具,功能比较全,有彩色的界面

安装: yum install dstat -y

cpu的性能分析

CPU: 中央处理器(Central Processing Unit)

核心数量: cpu一般都是多核

架构: x86 powerpc arm

频率:GHz ----个人电脑 一般是 低于3GHz 这个数值越大,说明时钟就越短

  • cpu的结构: 运算器、控制器、寄存器、时钟
    • 运算器\运算单元: 计算
    • 控制器\控制单元: 把内存的指令、数据读入寄存器,控制计算机
    • 寄存器\存储单元:暂存指令、数据、地址
  • 内存:与CPU沟通的桥梁;存cpu的运算数据;硬盘、外存数据 cpu的内核、线程、架构
  • 查看cpu命令top 1
    • lscpu
    • cat /proc/cpuinfo
  • load average  和 CPU使用率之间的关系
    • 现在的linux服务器中,load average ≠CPU使用率
    • load average 是希特的整体负载体现
      • 他包括 CPU负载 == DIsk负载(磁盘负载)  + 网络负载 +外设负载
      • load average = cpuload + ioload
  • CPU的上下文: CPU寄存器和程序计数器
  • 在cpu中 有相关联的任务, 由一个任务切换到另外一个任务上,切换是 切换了任务在cpu中 程序计数器和 寄存器
  • CPU上下文切换:三种
  • 进程上下文切换 同一个进程:进程用户态 ---系统调用--> 进程内核态 ---系统调用---> 进程用户态
    • 由一个进程 切换到另外一个进程, 进程切换了,那么线程自然也就切换了
    • 进程是资源的拥有者, 先要保存原来的进程的资源, 然后,再打开另外一个进程的资源 ----这个会有一定时间的卡顿 (这个卡顿一般 是 纳秒)
  • 线程上下文切换
    • 线程 是 进程中 干活
    • 线程 可以是 ** 同一个进程间**的线程切换, 进程是 资源的拥有者,所以,这个时候,我们只需要保存线程的私有资源,然后, 打开另外线程的私有资源,不用去保存 进程的资源。
    • 也可以是 不同进程间的线程切换
  • 中断上下文切换: 硬件发出中断事件(cpu、缺少资源,异常...)

load高&CPU高

  • top
  • 情况1:sys系统态高=====排查CPU上下文切换
     
    • 如果'非自愿上下文切换'多,说明cpu不够用,进程时间片到,被迫切换
    • 如果自愿上下文切换'多,说明计算用的资源不够用,可能存在I/O、内存瓶颈
  • 情况2:si软中断高==CPU抢资源,资源不够用I/0问题
    • sys高+si高-------->推导出-------->内存or网络I/O问题--解决办法:排查内存和I/0
    • sys高+si不高-------->推导出-------->CPU瓶颈--解决办法之一:加CPU
  • 情况3:us用户态高===用户程序计算
    • 密集型计算、内存FGC、资源等待(线程池)--解决办法:逐个排查
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值