帮朋友定位一个线上问题,里面有个细节可以注意下!!!

点击上方“芋道源码”,选择“设为星标

管她前浪,还是后浪?

能浪的浪,才是好浪!

每天 10:33 更新文章,每天掉亿点点头发...

源码精品专栏

 

01、起因

f38bdd96846a429942ea0ee8bfd84812.png

朋友遇到个问题,我的回答是这样的:

9d645926de6a11465afb3dd85634446e.png

本来以为这样就结束了,其实才刚刚进入正题;

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能。

项目地址:https://github.com/YunaiV/ruoyi-vue-pro

02、问题原因定位

朋友把文件下载下来:

bc5e16fed0b07b8da0cbbc7a6d5d2cac.png

文件好大,这么大的文件咋统计出来是哪类线程最多呢?这就到了妥妥的文本处理内容了(关键时候这类文本命令可以帮助提供非常多的效率);

我们打开文本看看内容:

8b598d8b2bc00d799fdbcdad13c9a738.png

一共有 80 万行,我们来看下规律:

a2a65bf35e455ff51d05eeec4b12cb9c.png

每个线程的开始都是" 开头,我们仅仅是需要获取线程名即可,那么就简单了,不是的" 开头都删除即可;

输入命令:
:v/"/d
f358472c8f2e7900c790faff2293a2a1.png

之后效果:

3ab1057e88ab98214241a1ce7f8bf46f.png

80 万的文件仅仅只剩 6.66 万行了,每一行都是一个线程,我们需要提取线程名称进行排序:

85df075095e2a47d48c04ccdd5a69830.png

发现规律线程名称就是"线程名称" 被(双引号包围的)

c47aea90ab78e00b77c4266bfdff57e3.png
输入命令:
cat jstack.txt| awk -F '"' '{print $2}'>thread.txt

那么我们通过 awk 进行操作;

我们发现确实获取到了线程名称了,但是线程名称后面有后缀,我们需要把后缀给去掉,因为他们都是一类,等会我们还需要汇总统计的;7d0710379128c2442d8ae1975340b2e1.png

那么这个时候正则表达式就要起作用了,

输入命令:
:%s#\d\+$##g
0a6516037a32ac5037e0434bf4e75064.png

执行效果如下:

9db6a95da29f741f96853929a1adeb68.png

接下来就简单了,进行排序,之后获取重复次数的计数即可统计了;

输入命令:
cat thread.txt|sort |uniq -c |sort -nr |head -10

效果如下:

f24d56d468107c4a72834766cefb5034.png

到这里我们就基本知道是哪个线程了,接下来的事情就比较简单了,告诉朋友,朋友很快就定位解决了;

基于微服务的思想,构建在 B2C 电商场景下的项目实战。核心技术栈,是 Spring Boot + Dubbo 。未来,会重构成 Spring Cloud Alibaba 。

项目地址:https://github.com/YunaiV/onemall

03、总结

文本类的处理,还是需要熟悉的,很多时候排查定位问题还是需要这类技能的,希望今天的这个案例可以让你有所收获



欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢

4fa3744ce951973b85ed9b30213bb5d2.png

已在知识星球更新源码解析如下:

ff451af14fcea3c6274e4d80eb5d5362.png

cf5916b34177b27a5f111e41d22e2bc6.png

b239c4542c3fd83e4c8b237f5a8fcfa3.png

a00dfdecec128fcb9155baabbafd3f41.png

最近更新《芋道 SpringBoot 2.X 入门》系列,已经 101 余篇,覆盖了 MyBatis、Redis、MongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka、性能测试等等内容。

提供近 3W 行代码的 SpringBoot 示例,以及超 4W 行代码的电商微服务项目。

获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

文章有帮助的话,在看,转发吧。
谢谢支持哟 (*^__^*)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值