首页 > 其他分享 >一次IO性能问题的发现过程

一次IO性能问题的发现过程

时间:2024-05-01 16:33:21浏览次数:13  
标签:发现 一次 性能 iostat 问题 IO docker 虚拟机

一次IO性能问题的发现过程


背景

计划搭建两套完全的系统进行压测.
但是发现自己给自己挖了一个坑, 没注意到一个区别. 

邮件在三点钟发出去了, 但是问题是我在四点钟发现的.

问题现象

阿里云上面高一个虚拟机 的CPU出现异常的 CPU用量上升的问题. 

Busy IOwait 比较高. 有 60% 
感觉非常奇怪. 

我这边我一开始认为只跑了一个MySQL数据库, 理论上不应该如此. 
然后开始问题发现和解决的过程

故障图

image


问题确认

输入 top 进行确认. 
发现的确idle 只有 30% 是存在IO的瓶颈. 
立即使用 iostat 进行查看

发现了很诡异的问题

iostat 的结果

image


问题不对劲

iostat 里面看到很多的磁盘读取, 但是看不到具体的进程
所以机器有卡顿, 并且一号跑的内容可能存在有差池的情况.

立马就很诡异. 我理解iostat 应该能看到所有进程的相关信息
显然, 没有 
立即给阿里云提工单. 

提工单的工程中, 突然灵机一闪
docker ps 了下
果然发现有之前自己验证 telemetry的容器再跑
立马 systemctl stop docker
在进行 iostat 的查看 
大量的读取没有了.

问题反思

1. 虚拟机是我直接clone的. clone之前执行了 systemctl stop docker的处理
    但是没有关闭开机自启动. 
2. 早上检查机器没有发现异常, 就可以了压测. 并且系统表面上也没有问题. 
3. 因为测试结果与自己的预期非常相仿, 加深了自己的主观认识. 

当然了最大的收获是  iostat 竟然无法看到 容器内的读写. 
后续再进行相关工作时 必须要进行全方面的检查
容器没怎么占内存, 但是没想到占用了那么多的IO
是一个很大的教训. 

标签:发现,一次,性能,iostat,问题,IO,docker,虚拟机
From: https://www.cnblogs.com/jinanxiaolaohu/p/18169447

相关文章

  • Web Audio API
    WebAudioAPI:控制Web上的音频提供了一个功能强大的通用系统,允许开发人员选择音频源,为音频添加效果,创建音频可视化,应用空间效果(如平移)等等(oscillator)振荡器播放声音<buttontype="button"class="btn-play">play</button><script>//WebAudioAPI//创建一个Au......
  • 简单解决version 'GLIBC_2.34' not found,version 'GLIBC_2.25' not found
    简单解决version'GLIBC_2.34'notfound,version'GLIBC_2.25'notfound无需手动下载安装包编译前言很多博客都是要手动下载安装包进行编译升级,但这样很容易导致系统崩溃,本博文提供一个简单的方法,参考自博客1,博客2.检查版本strings/usr/lib64/libc.so.6|grepGLIBC_或者......
  • 报错“Please indicate a valid Swagger or OpenAPI version field”
    报错“PleaseindicateavalidSwaggerorOpenAPIversionfield”报错信息PleaseindicateavalidSwaggerorOpenAPIversionfield.Supportedversionfieldsareswagger:"2.0"andthosethatmatchopenapi:3.0.n(forexample,openapi:3.0.0). 原因分析根......
  • CF1967B2 Reverse Card (Hard Version) 题解
    题意:求有多少对\((a,b)\)满足\(b\times\gcd(a,b)\equiv0\pmod{a+b},1\lea\len,1\leb\lem\)。首先我们设\(\gcd(a,b)=G,a=i\timesG,b=j\timesG\),显然有\(\gcd(i,j)=1\)。那么可以把原条件转化为\(j\timesG\)是\((i+j)\)的倍数。因为\(\gcd(i+......
  • Reverse Card (Hard Version)
    事情是这样的,我验了这一场CF。显然我玩原神玩多了有一个很奇怪的、不能过的算法,哦,当然,在我本机可以过。为了展现自己的智慧糖,我写一下。出题人是先发给我了一个限制都是\(n\)的,因此只有这个。\(n,m\)改改就是了。要求\(1\lea\len,1\leb\len\)满足\(a+b\midb\times......
  • kafka核心概念Broker、Topic、Partition和Replication
    在Kafka中,Broker、Topic、Partition和Replication是四个核心概念,它们各自扮演了不同的角色并共同协作以确保数据的可靠性、可扩展性和高性能。以下是关于这四个概念的详细解释:Broker(代理)*Broker是Kafka集群中的一个节点,负责存储和转发消息。Kafka集群由多个Broker组成。*Brok......
  • ES Validation Failed: 1: this action would add [1] shards, but this cluster c
    [2024-05-01T08:56:52,606][ERROR][o.e.x.i.IndexLifecycleRunner][tools]policy[ilm-history-ilm-policy]forindex[.ds-ilm-history-5-2024.03.28-000001]failedonstep[{"phase":"hot","action":"rollover","name&qu......
  • 使用@lakehouse-rs/flight-sql-client nodejs api 快速访问dremio 服务
    @lakehouse-rs/flight-sql-client是基于rust开发的nodearrowflightsqlclient,dremio目前也是推荐基于arrowflightsql的访问模式参考代码package.json{"name":"node-arrow-flight-sql","version":"1.0.0","ma......
  • dbt Relation 扩展简单说明
    dbt的Relation实际上就是包含关系数据库表,数据库,schema一些信息的描述,dbt官方提供了api.Relation.create等操作进行Relation的维护,当然系统的builtins也提供了一些基本的操作能力,内部使用上会使用dbtBaseRelation中的各类实现比如pg就自己扩展了一个,同时在自己的m......
  • Audio Output Devices API
    AudioOutputDevicesAPI:音频输出设备API允许Web应用程序提示用户应使用什么输出设备进行音频播放。<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width,i......