这是我参与11月更文挑战的第6天,活动详情查看:2021最后一次更文挑战
吃饱饭才有力气写代码~
前言
依然是昨天的问题,本来是优先级比较高的一个问题,但是刚开始处理就被通知环境升级到发布环境之后就不能再进行性能测试(来自菜鸡的窃喜吼吼),但是这个处理的思路还是记录一下吧,等必须得立刻处理时也可以快速上手。
取日志
因为是性能压测,数据量很大,导致日志文件也很大。公司自己封装了一个docker云平台,直接在上面看日志(镜像日志和容器日志)导致网页直接加载崩溃了,然后就想把日志文件下载下来。旁边同事就执行了几条命令: xxx:相应服务的名;........:容器编号
- 获取docker中的容器编号
- 记录我们所需要的日志文件的名字路径
- 把容器里第2步查出来的文件路径的文件拷贝到服务器里的任一目录上
docker ps | grep xxx
docker cp ........:/logs /data
然后在/data/logs里就看到了所有的日志,这个对应的日志大小有2.69G,记事本之类的软件都打不开。又下载了一个可以打开超大文件的软件叫LogView,打开之后发现只有抛出的异常。
解决思路
这我一个新手,一开始根本没有思路,于是请教我师傅。他总结了压测接口报错的情况:空指针,或者类型转换异常,对方程序返回错误之类的。并且给我举了一个例子:对于抛异常的,低并发下并没有报错说明代码逻辑没有大的毛病;只需要解决高并发下的这些异常,就是让它在这些压力高的时候不抛出异常即可。
//原始
try{
处理逻辑
}catch(exception e){
}
//优化
try{
优化处理逻辑,排除一切可能抛出异常的情况,比如对一些重要参数判空操作等等
}catch(exception e){
}
现在只会处理这一种情况,其它还没看完~后续再补充吧!