100ms的SQL把服务器搞崩溃了

100ms的SQL把服务器搞崩溃了,第1张

一个项目上线了两个月,除了一些反馈的优化和小Bug之外,项目一切顺利;前期是属于推广阶段,可能使用人员没那么多,当然对于项目部署肯定提前想到并发量了,所以早就把集群安排上,而且还在测试环境搞了一下压测,绝对是没得问题的;但是,就在两个月后的一天,系统突然跑的比乌龟还慢,投诉开始就陆续反馈过来了。

经过排查,原来是频繁执行一条耗时100ms的SQL导致,100ms感觉不长,但就是把系统搞崩了,具体细节如下。

项目采用ABP进行开发,集成统一的认证中心(IDS4),部分数据对接第三方系统,拆分后的这个项目架构相对简单。

考虑并发量不高,就算是高峰期也不会超过1000,于是就搞了个单台的数据库服务器(MySQL),测试环境中经过压测,完全能抗住。

上线时,由于线上资源的关系,DB服务器的配置没有按测试环境的标准来分配,相关人员想着后续看情况进行补配。上线推的比较紧,简单评估了配置风险,初步判断没啥大问题,于是就推上线了。

相关技术栈:ABP、IdentityServer4、Autofac、AutoMapper、QuartzNET、EF Core、Redis、MySQL等,这都不重要,重要的是100ms的SQL把系统搞崩了。

由于系统相对不大,并没有把分布式日志、调度监控,性能监控集成上去。

上线期间,前期处于使用推广阶段,一切正常。两个月后的一天,系统处于使用高峰时段,突然陆续收到反馈:系统有点卡!!!于是赶紧进行排查。

由于系统已经是集群部署的,慢这个问题首先怀疑是数据库服务器,于是让DBA的同事排查了一下,没有锁,只是有大量事务等待提交(waiting for handler commit),通过如下命令可查的:

看到都是插入审计日志记录导致,一看日志记录频率,差不多一秒500条记录。DBA同事说可能是记录插入频繁导致,此时CPU已经爆到100%了,为了快速解决问题,于是就赶紧关掉了一些不必要的日志记录。

这么一改,稍微降了一点,没有事务提交的记录,系统勉强可以撑着用,但是CPU还是在85%~97%波动;

看到这种情况,当然还是不放心,继续排查。 中间有对服务器的配置产生过怀疑,但非常肯定的是这不是主要原因,于是和DBA的同事继续排查。

系统虽然可以正常使用,但时不时的也看看监控屏,CPU一直处于高水位状态,还是有点慌的,因为一有问题,信息和电话都要爆。

突然DBA同事发现有一个单表查询的SQL执行比较频繁,于是单独拿出来试了一下,查询时间150ms左右,这个表的数据量不大,8万左右,但没有加任何索引,因为想着数据量不大,查询时长还可接受,所以当时就没有加相关索引。

定位到这条SQL后,想到的第一步就是增加索引,在测试环境上试了一把,执行效率直接飞速提高到1ms;效果如下:

所以和DBA同事达成一致意见,在生成环境上增加复合索引( 创建索引一定要注意字段顺序 ),在中午时候,系统使用频率不太高,于是就在生成上快速加了索引,我去,CPU一下降到了20%以内,意不意外;就算在使用高峰期,也没超过20%,通过zabbix工具监控看到CPU的效果:

问题算是解决了,总算松了一口气。

这里有个问题: CPU都爆了为什么没有报警提醒,这块DBA同事正在排查相关配置。这里发现CPU爆了,还是无意的远程到服务器,发现很卡,一看CPU才知道爆了。

系统虽小,问题不大,但其实暴露的问题还是挺多。

这次线上小事故暂时分享到这,因为项目不大,所以没有做那么多监控,但以下建议,小伙伴可以参考一下:

文章来自>

相信一些魔力宝贝玩家手里都还有个那么几张以前留下来的旧版网星欢乐卡吧?就是以前的网星游戏乐园通用点卡。随着魔力正式回家以及魔力新版易玩通卡的推出,很多玩家会担心自己手中的“网星欢乐卡”会不会“无疾而终”?恩,现在易玩通给了玩家明确的答复:不会,绝对不会!

说到这里,很多玩家肯定已经迫不及待的想知道,自己以前购买的“网星欢乐卡”怎么向“易玩通”网充值了吧?请看下面的说明:

首先,玩家在JOYPARK的[网星游戏乐园首页]上登录自己的会员账号,并开卡。

接下来,进入“储值中心”,这时玩家会看到,储值中心页面中有一个[储值到SEC]的选项。

接下来点击[储值到SEC],并输入自己要储值的点数。

在这里有个关键的部分需要玩家注意,05年11月28后注册的JOYPARK新会员,在储值时,必须在屏幕下边的[2005年11月28日以后的新用户请填写易玩通网通行证账号::]处输入自己的易玩通网通行证的账号才能储值成功,05年11月28前注册的JOYPARK会员则不必填写该项。

此后,如果页面显示“储值成功”的字样就表明 *** 作完成。接下来会由易玩通网对该JOYPARK账号及对应易玩通网通行账号进行验证,验证通过后,会把玩家通过网星网站储值的游戏点数存入中心数据库。此时玩家就可以通过易玩通网站进行游戏点数分配等其他 *** 作啦!

另外,特别提醒玩家,请认准所用点卡的特点,以避免不必要的麻烦:

旧版网星欢乐卡(JOYCARD)——可以通过网星游戏乐园网站来对魔力宝贝进行开卡储值,面值普遍为450点(开卡到易玩通后,转换为4500点);

新版网星点卡——在任何情况下都无法对《魔力宝贝》进行开卡储值,点卡面值为200点和600点;

易玩通卡——完全可以对《魔力宝贝》进行开卡储值,直接针对易玩通通行证的账号开卡储值,开卡 *** 作页面在易玩通网,点卡面值为4500点。

请广大玩家朋友务必认清这几种点卡的区别并了解其用途,再次说明:可以对《魔力宝贝》进行开卡储值的是旧版网星欢乐卡和易玩通卡!

不需要删除程序,你把这些服务项的开机启动给关掉就好了

点击"开始",输入msconfig,打开"系统配置"界面,选择"服务",找出关于这两个程序的服务关闭了就ok了这些后台服务在你开机的时候没有必要启动,当你启动vs2008的时候它相关的服务会自动启动的而对于sql,假如你要做服务器的话有些服务就要一直开着,假如不需要做服务器,那么你可以在需要的时候启动这些服务,或者说你打开sql的时候就会有一些服务自动开启了

假如在你关闭了这些服务的开机启动之后,使用sql2005出了问题,就说明有些服务没有打开,你可以从"开始"-〉“控制面板”-〉“管理工具”(假如你使用的是win7系统,请选择“小图标”方式显示“控制面板”)-〉“服务”,从里面选择没有启动的sql服务,右键启动就好了。

以上就是关于100ms的SQL把服务器搞崩溃了全部的内容,包括:100ms的SQL把服务器搞崩溃了、C#窗体中空间太多 combox基本都数据都从数据库中绑定的 加载速度慢 有点卡的行状态 主窗体上有一个、魔力宝贝的点卡怎么充值呀。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9445777.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存