网页响应慢,waiting(TTFB)时间过长,接口返回耗时,数据库占用CPU90%以上
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
⽹页响应慢,waiting(TTFB)时间过长,接⼝返回耗时,数据库
占⽤CPU90%以上
记⼀次⽹页响应慢,waiting(TTFB)时间过长,接⼝返回耗时,数据库占⽤CPU 90%以上问题排查
症状:H5页⾯打开⽩板,⼏⼗秒后出现页⾯,调试跟踪访问接⼝waiting(TTFB:全称 Time To First Byte,是指⽹络请求被发起到从服务器接收到第⼀个字节的这段时间,它包含了 TCP 连接时间、发送 HTTP 请求时间和获得响应消息第⼀个字节的时间)时间过长,查看服务器资源占⽤,SqlServer占⽤CPU90%以上
⽹上查询相关解决办法:1.⽹络原因,使⽤CDN。
2.⽹页去访问了其他插件/⽹络地址(百度翻译等)。
3.数据库连接使⽤
localhost(localhost要本地DNS解析,127.0.0.1⽆需解析,所以127.0.0.1会更快)
都不是本次问题所在!
过程:检查服务器SqlServer占⽤CPU90%以上,⾸先想到的是数据访问量⼤或者sql语句问题,但根据实际情况此原因排除。
怀疑接⼝代码问题,但只要请求到达接⼝,⾥⾯逻辑处理很快返回。
IIS问题?换了两台服务器不同IIS问题依旧。
后来发现只要停⽌SqlServer服务或断开数据库连接速度恢复正常,那接⼝没问题,换数据库。
重新配置数据库连接并设置应⽤程序池的队列长度为3000,最⼤⼯作进程数为2或者5
刚开始以为解决了,不久新服务器CPU也被SqlServer占⽤90%以上,但是发现数据库连接时断时好(断的时候访问很快)且数据库连接报错:(超时时间已到,但是尚未从池中获取连接。
出现这种情况可能是因为所有池连接均在使⽤,并且达到了最⼤池⼤⼩。
)(应该是设置了最⼤⼯作进程数导致),不是数据库本⾝问题。
再次诊断数据库连接查询,发现数据库短时间访问量很⼤,怀疑数据库被攻击。
⼜换数据库改默认端⼝,问题依旧。
⼜回来,分析前端到接⼝时间为什么要等待那么久,域名解析慢?改访问接⼝⽅式为IP地址(之前接⼝域名也在⽤),依然!
停⽌相关站点,前端,接⼝,后台,CPU恢复正常!恢复前端/接⼝(⽤IP访问接⼝,域名停⽌),响应正常!
接⼝域名问题?之前查看域名,服务器各种指标都正常,没从这⽅⾯去想。
验证⼀下,把接⼝域名加上去,问题⼜出现,数据库占⽤升⾼。
响应变慢!
OK,域名问题!换个新域名(加⼊阿⾥防⽕墙)⼀切运⾏正常!
那么...是域名解析问题,还是域名被攻击呢。