首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【全局出发,追根溯源】一则集群故障案例分析

    好在现场各种手段对数据库及服务器的运行状态进行了监控和记录,很方便进行场景推演。...首先,查看数据库的运行监控图表,发现在节点1崩溃前,数据库IO负载有非常明显的增加: 引起数据库逻辑读和物理读飙升的原因基本的是因为糟糕的SQL代码被突然并发调用或者是因为异常的维护操作造成索引失效,一般伴随的是大量操作系统...先看内存,发现节点1宕机之前有物理内存大量消耗的趋势: 再看CPU 负载,在故障时间点前(16:00)也有较明显的升高趋势: 另外还通过ZABBIX查看了包括网卡、IO负载等信息。...很遗憾的是,由于从16点开始节点1服务器就无法响应了,外部监控采集到的信息出现的断档。虽然趋势但是没有绝对的证据显示资源最终的消耗情况。...-->服务器物理内存资源耗尽-->数据库集群软件状态异常-->系统进程夯死-->服务器重启 现在回到开始关于运行稳定的生产系统突然出现高负载SQL的话题,一般遇到这个情况,可以尝试先排除在关键业务表上是否出现失效的索引

    1.3K60

    复盘一次线上 OOM 和性能优化

    本文来源:http://r6d.cn/ZazN 上周五,发布前一周的服务器小动荡 事情回顾 上周五,通过Grafana监控,线上环境突然出现CPU和内存飙升的情况: 但是看到网络输入和输入流量都不是很高...](traceId=5da451277e14418abf5eea18fd2b61bf) 上述语句是查询在15:14那一分钟内,在common-dal-digest.log文件中,耗时超过1000ms的SQL...还有根据该traceId,定位到整个调用流程所使用到的服务,发现的确十分耗时… 于是拿到了该请求具体信息,包括用户的登录手机号码,因为这个时候,其它几台服务器也出现了CPU和内存负载升高,于是根据手机号查询了其它几台服务器的访问日志...查询了该用户在这个接口的所调用的数据量,需要查询三个表,然后for循环中大概会计算个100w+次,导致阻塞了其它请求,线上的服务器CPU和内存使用情况一直飙升。...然后我就开始做代码性能优化,首先仔细梳理了一下整个业务流程,通过增加SQL查询条件,减少数据库IO和查询数据量,优化判断条件,减少for嵌套、循环次数和计算量。

    56510

    线上问题解决:java的CPU100%问题分析,定位及解决

    感觉网络问题,可以通过ping,或者curl请求下指定接口,看看反应时间。 老铁活可以通过 JvisualVM 查看,但是生产环境一般都不让开发人员直接操作的,中间可能存在跳板机。...CPU升高,任务处理不过来了,肯定会堆积,堆积的结果,内存也会升高,这是一个相辅相成的。...很多买人买的云服务器内存比较低,可能java进程突然就消失了,其实就是linux本身个机制,超过内存值的时候就会kill。...PS:一般的生产服务器CPU稳定在80-85以内,不会让资源利用率太高,也不会太低,资源利用率很高的话,留一些剩余的空间,证明你的机器买了那么多可能就是浪费,CPU和内存都是一样的。...网络突然慢了,请求慢了,都可以按照这个思路来定位问题。

    88910

    服务器硬盘和内存有什么区别 SSD云硬盘应用场景什么?

    最近几年许多大品牌推出了一些高智能的云产品,包括云服务器,云硬盘等等。这些云产品的出现革新了传统的服务器和硬盘市场,给互联网以及网站建设系统带来更大的便利。云服务器硬盘和内存有什么区别呢?...云服务器硬盘和内存有什么区别? 在了解云服务器硬盘和内存有什么区别之前,先来看一看什么是服务器硬盘和内存。云服务器硬盘是一种用来读写数据以及存储联网信息的空间。这种硬盘可以挂载到服务器当中来使用。...硬盘是一种存储文件和信息的空间,而内存是电脑在运行过程当中需要及时使用的空间。保存在硬盘上的东西是可以暂时不用的,而内存在使用过程当中里面的信息是运行的。 SSD云硬盘应用场景什么?...上面已经了解过云服务器硬盘和内存有什么区别?现在来看一看SSD云硬盘应用场景都有哪些? SSD云硬盘作为一种高级云硬盘,它的应用场景是比较广泛的,包括以下这些。...以上就是云服务器硬盘和内存有什么区别的相关内容。计算机知识先进而又复杂,若想了解更多,可以多关注一些相关的云技术网站。

    4.7K20

    golang 服务大量 CLOSE_WAIT 故障排查

    事故经过 排查 总结 事故经过 【2019-12-27 18:00 周五】 业务方突然找来说调用我们程序大量提示“触发限流”,但是我们没有收到任何监控报警。...查看机器监控,发现故障期间 socket fd 升高到了3w多,随着fd升高内存也在持续占用,但是远没有到系统瓶颈,DB、redis 还是出现故障窗口期间 qps 同步下掉的情况。...可以很清楚看到 HTTP 请求进来没有返回的。第一个红框是请求超时,上游主动关闭连接,超时时间大概是1s,服务器正常返回了 fin ack。...为了验证这个请求为什么没有返回,我们提取 tcpdump 中的 HTTP 请求到后端日志查看发现到了服务器,我们再从 Mysql 服务器请求 sql 中查看发现没有这个请求没有进来,同时我们发现一个规律...发现代码中有一个方法问题,这个方法之前一直没有业务规则命中,故障前一天26号一个业务方开始走到这个方法。这个方法一个隐藏bug,会导致 go 连接无法关闭。

    1.1K30

    golang 服务大量 CLOSE_WAIT 故障排查

    事故经过 排查 总结 事故经过 【2019-12-27 18:00 周五】 业务方突然找来说调用我们程序大量提示“触发限流”,但是我们没有收到任何监控报警。...查看机器监控,发现故障期间 socket fd 升高到了3w多,随着fd升高内存也在持续占用,但是远没有到系统瓶颈,DB、redis 还是出现故障窗口期间 qps 同步下掉的情况。...[vim] 可以很清楚看到 HTTP 请求进来没有返回的。第一个红框是请求超时,上游主动关闭连接,超时时间大概是1s,服务器正常返回了 fin ack。...为了验证这个请求为什么没有返回,我们提取 tcpdump 中的 HTTP 请求到后端日志查看发现到了服务器,我们再从 Mysql 服务器请求 sql 中查看发现没有这个请求没有进来,同时我们发现一个规律...发现代码中有一个方法问题,这个方法之前一直没有业务规则命中,故障前一天26号一个业务方开始走到这个方法。这个方法一个隐藏bug,会导致 go 连接无法关闭。

    65300

    【升职加薪秘籍】我在服务监控方面的实践(6)-业务维度的mysql监控

    大家好,我是蓝胖子,关于性能分析的视频和文章我也大大小小出了一二十篇了,算是已经了一个系列,之前的代码已经上传到github.com/HobbyBear/performance-analyze,接下来这段时间我将在之前内容的基础上...对于流量而言可以体现在mysql数据库操作的qps,数据库服务器进行流量大小。...对于延迟,可以体现在慢查询记录上,饱和度可以用数据库的连接数,线程数,或者磁盘空间,cpu,内存等各种硬件资源来反映数据库的饱和情况。...比如,当你发现数据库的qps突然升高,但是接口qps比较低的时候,如何确定数据库qps升高的原因呢?...比如按表级别建立单个表的qps,当发现数据库整体的qps升高时,可以发现这是由于哪张表引起的,进而定位到具体业务,查看代码逻辑看看是哪部分逻辑会操作这张表那么多次。

    35210

    一次线上 Redis 高负载排查经历,步步惊心!

    周一早上刚上班,突然大量用户反馈进入网页很慢,登录服务器一看,Redis调用时间严重超时,这样高速的缓存反而变成了短板,由于数据一直没有返回,导致了请求响应变慢。...网页监控 通过阿里的 Grafana 监控,服务器的 CPU 负载、内存、网络输入输出都挺正常的,所以肯定是 Redis 出现了问题。...临时方案:先租用一台新的 Redis 服务器,更换应用服务器的 Redis 配置,重启应用,避免影响更多用户。 然后我们继续跟踪 Redis 的具体情况。...完整的命令是 keys mucury:* 所以通过这些参数,基本可以确定,是突然大量的keys *命令导致CPU负载升高,导致响应延迟,问题我们应用中没有开放keys *命令Σ(o゚д゚oノ) 最后将这些统计结果和慢命令发到研发群...,发现是别的应用配置配成了我们的Redis,然后他们个业务场景是爬数据,突然涌入大量的调用,不断的keys *,导致我们的Redis不堪重负,于是将配置修改正确,不再调用我们的Redis。

    82310

    .NET Core多线 (5) 常见性能问题

    这常常发生部署在IIS上的.NET Framework Web应用程序: 32bit最高只能吃4G内存; 32bit的临时代(Gen0+Gen1)大概只有不到100M的内存空间; 在IIS服务器模式下,...(2)优化了一堆慢SQL 未优化之前存在的问题:随着数据量的不断增加,老业务的SQL脚本包含了很多聚合函数、临时表操作 以及 未命中索引的查询条件,解决办法就是SQL优化,对比执行计划 + DBA...(3)优化了IIS的基本配置 未优化之前的问题:部分应用服务器特别是自建的文件服务,经常发生由于配置了“启用32位应用程序”导致的内存不够(因为32位应用最大可用4G内存)用进而引发GC频繁回收进而导致...当然,根本解法还是去分析自建文件服务中耗内存的地方去优化代码。不过由于当时的物理服务器都是128G的内存且业务场景中也确实存在上传大文件的需求,因此耗内存的地方也暂时搁置去解决了。...(5)新增了一台DB服务器分摊压力 一次因为XXXXXReadDB少了一台,本来是1台写库,2台读库,突然少了一台,导致XXXXXReadDB CPU暴高,应用程序段的DB连接超时严重进而造成延时较多

    22420

    一次TiDB GC阻塞引发的性能问题分析

    背景 前不久从项目一线同学得到某集群的告警信息,某个时间段 TiDB duration 突然异常升高,持续时间6小时左右,需要定位到具体原因。...既然是duration升高,那就先看看集群的心电图,试图找出一点线索。一般来说,duration升高会有以下两种情况。...第一种是高百分位(比如99、999)明显升高,类似这种: 它的特点是除了高百分位异常,低分位线没有明显波动,这是典型的长尾反应,分位线越高波动越大,说明集群那段时间慢SQL变多,重点关注慢查询辅助排查其他监控即可...第二种是所有分位线都有明显升高,类似这种: 这说明集群内部受到了影响,慢SQL不是导致duration上升的根本原因,而是集群异常表现出来的结果。...第五招,还原真相 整理一下所有思路,得出以下结论: duration升高的原因是数据的历史版本太多,前面说到的频繁delete操作导致tikv节点资源压力较大,从而影响其他SQL(从其他SQL的Coprocessor

    52320

    告警数量减少95%:去哪儿数据库巡检报警系统做了哪些优化?

    在主机层面,主要关注四个方面:CPU、内存、网络和磁盘。具体来说,监控CPU使用率、内存的Free空间、网络的流入流出带宽、磁盘的IO以及剩余空间等。...自动分析:我们一个自动分析工具,它会对抓取上来的信息进行自动分析,识别出是哪一类SQL的并发高,总并发是多少,这一类SQL的平均执行时间以及最慢的SQL是哪些等。...场景说明: 例如,在某个时间段内,可能存在以下指标异常,如 主机磁盘IO升高或者网络带宽使用异常升高或数据库扫描行数指标异常升高等。...比如,假设一个集群几十个实例,当Redis突然间负载变高,所有实例都会告警,作为值班人员来说,一边要处理问题,一边还要接告警电话,极其影响告警处理效率。...应用案例-2: 此外,在处理主从复制的问题时,也曾遇到过IO线程或SQL线程突然中断的情况。如果自动化处理不当,可能就需要手动重启复制,这无疑增加了工作量。

    17410

    为什么数据库的慢SQL会导致CPU的IO WAIT升高

    关于xxl-job中的慢sql引发的磁盘I/O飙升导致拖垮整个数据库服务 背景: 某天突然发现服务探测接口疯狂告警、同时数据库CPU消耗也告警,最后系统都无法访问; 查看服务端日志,发现大量的报错如下...会导致CPU的IO WAIT升高呢 我们先看一下计算机是怎么管理磁盘IO操作的。...计算机发展早期,磁盘和内存的数据传输是由CPU控制的,也就是说从磁盘读取数据到内存中,是需要CPU存储和转发的,期间CPU一直会被占用。我们知道磁盘的读写速度远远比不上CPU的运转速度。...所以,假如CPU大部分消耗在IO等待(wa)上时,即便CPU空闲率(id)是0%,也并不意味着CPU资源完全耗尽了,如果有新的任务来了,CPU仍然精力执行任务。...减少计算 1)  减少逻辑运算: 避免使用函数,将运算转移至易扩展的应用服务器中 如substr等字符运算,dateadd/datesub等日期运算,abs等数学函数 减少排序,利用索引取得有序数据或避免不必要排序

    1.4K10

    实例解析:MySQL性能瓶颈排查定位,实现毫秒级完成180秒的任务

    通常来说,服务器上最容易成为瓶颈的是磁盘I/O子系统,因为它的读写速度通常是最慢的。即便是现在的PCIe SSD,其随机I/O读写速度也是不如内存来得快。...---------------------------------------------------------------------------------------------+ 可以看到不少慢查询还未完成...,从slow query log中也能发现,这类SQL发生的频率很高。.../COUNT/AVG等),添加索引或者进行SQL改写吧; 瞬间突发有大量请求,这种一般只要能扛过峰值就好,保险起见还是要适当提高服务器的配置,万一峰值抗不过去就可能发生雪崩效应; 因为某些定时任务引起的负载升高...,比如做数据统计分析和备份,这种对CPU、内存、磁盘I/O消耗都很大,最好放在独立的slave服务器上执行; 服务器自身的节能策略发现负载较低时会让CPU降频,当发现负载升高时再自动升频,但通常不是那么及时

    63820

    梁老师小课堂|谈谈线程池

    比如对多张图片进行校验,校验项多个。 在这种场景下,很容易出现父子任务,父子任务共用一个线程池的话可能会出现死锁,这个是需要特别留心的。...另外,当使用Future接收多线程的执行结果时,不要在循环中出现结果为失败或者获取超时就中断,这样后面的Future就无处安放了,长时间运行突然并发升高可能会引起服务不可用。...但是不能无视的一点是,服务器的CPU资源是固定的,大家都在抢占资源,显然这种做法并不能达到理想的隔离效果。...这里说的,存放排队任务的队列,在并发突然变大时起着缓冲作用,但是会增大响应时长,对于实时交互场景来说是不能接受的。因此,核心线程数配置成多少,是性能压力测试重点关注的关键指标。...使用这种线程池策略,我们需要提前检查服务器ulimit资源限制情况,还需要避免频繁回收线程。 另外,为了避免服务器的CPU利用率、内存利用率出现过载,通常采用限流、降级来保护系统。

    39810

    强化学习技巧四:模型训练速度过慢、GPU利用率较低,CPU利用率很低问题总结与分析。

    1.PyTorchGPU利用率较低问题原因: 在服务器端或者本地pc端, 输入nvidia-smi 来观察显卡的GPU内存占用率(Memory-Usage),显卡的GPU利用率(GPU-util),然后采用...GPU的内存占用率主要是模型的大小,包括网络的宽度,深度,参数量,中间每一层的缓存,都会在内存中开辟空间来进行保存,所以模型本身会占用很大一部分内存。...其实是GPU在等待数据从CPU传输过来,当从总线传输到GPU之后,GPU逐渐起计算来,利用率会突然升高,但是GPU的算力很强大,0.5秒就基本能处理完数据,所以利用率接下来又会降下去,等待下一个batch...第一:是增加batch size,增加GPU的内存占用率,尽量用完内存,而不要剩一半,空的内存给另外的程序用,两个任务的效率都会非常低。...减少日志IO操作频率 使用pin_memory和num_workers 使用半精度训练 更好的显卡,更轻的模型 另外也可以通过增大batch size提高epoch速度,但是收敛速度也会变慢,需要再适当升高学习率

    2.8K11

    CPU突然被打满的原因(全方位分析)

    1️⃣ CPU打满原因解析 当Java应用程序突然出现CPU打满的情况时,可能的原因以下几种: 1.1 死循环 代码中存在无限循环或者条件判断错误导致的死循环,使得CPU一直在执行相同的操作,导致CPU...6.检查内存使用情况,排查是否存在内存泄漏问题,及时释放不再使用的对象。 7.检查第三方库或框架的版本,并查看是否已知的性能问题,考虑升级或者替换版本。...3.1.4 线程执行的计算密集型任务 如果某些线程执行了大量的计算密集型任务,那么它们可能会长时间占用CPU资源,导致CPU利用率升高。...3.5 外部资源问题 3.5.1 磁盘I/O瓶颈 如果应用程序频繁地进行大量的磁盘读写操作,而磁盘I/O性能无法满足需求,那么CPU可能会被阻塞等待磁盘I/O完成,从而导致CPU利用率升高。...通过综合分析线程、IO、内存和外部资源等模块,找出对应问题并进行优化,可以解决Java应用程序突然CPU打满的问题。 术因分享而日新,每获新知,喜溢心扉。

    62810

    大数据与云计算技术周报(第142期)

    https://mp.weixin.qq.com/s/kMv3J9tbiKVRxV_hHk8HAA 3Spark 本文介绍了基于SparkSQL的一次SQL查询优化实例。...此WebSocket API可在用户的浏览器和服务器之间进行双向通信。用户可以向服务器发送消息并接收事件驱动的响应,而无需轮询服务器。...https://mp.weixin.qq.com/s/RxiYHX7-RwKTI-hEhYDjVg 5Redis Redis数据库是一个基于内存的 key-value存储系统,现在redis最常用的使用场景就是存储缓存用的数据...https://mp.weixin.qq.com/s/kiI-TiLev2PC39enpCzs7A 7MongoDB 本文讲述了MongoDB升级之后的CPU负载升高的问题,通过监控日志发现CPU负载升高主要由于迁移数据之后的删除导致...六出祈山,七进中原,鞠躬尽瘁,死而后已的诸葛亮只因为一个错误的case-马谡,整个结构就被break了!

    80420
    领券