您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    顺序员不小心把效劳器CPU打到100%,展现教科书排查进程
    时间:2020-04-03 12:11 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    顺序员不小心把效劳器CPU打到100%,展现教科书排查进程

    你们没发现我最近的原创原创少了很多嘛,一是最近花了很多时间做视频,本来我写文章就是应用周末的两天时间,但是如今基本上两天都要拍摄剪辑了,虽然请了小同伴做字幕,还是得消耗少量时间在拍摄和剪辑上。

    所以我只能应用任务日熬一下才能写出来了,这周由于要发布,本来是没排期写文章的,你们也看到了我发了两个视频嘛。

    但是明天我一发布就吓尿了….

    事情是这样的…..

    我和小组同伴最近担任的系统明天上线了,由于触及到的业务特别多所以选择白天发布,怕出成绩找不到对应的担任人。

    看到3点25那个full gc没,我发布上去一分钟不到就疯狂GC,我事先就吓尿了,马上点了回滚按钮。

    而且我发现cpu简直在我发布的瞬间,直接打到了峰值。

    所幸只发布了一台,我紧张的望向了周围,发现周围的同事没留意到我,我顿时没那么紧张了,拿起桌上用剩下的纸巾搽掉了我鬓角马上留下的汗水。

    我其实曾经知道大约是什么成绩了,无非就是死循环,或许大对象什么的。

    但是我还是想找团体承当这个锅。

    我马上找到三歪,我问他:你刚才是不是点过我的系统?

    他说:对啊,我刚才点了,我本来就常常运用你的系统,咋了?(刚好正中下怀嘻嘻)

    我说过多少次啊,叫你不要乱点,这曾经不是第一次了,如今把我的系统点坏了,怎样办?都怪你。

    他:冤枉巴巴一副要哭的样子。

    我:诶,算了算了,下次留意哈,我去排查下什么状况,看看你点坏了哪里。

    他:丙哥真好,丙哥真棒,丙哥我爱你。

    总算是找到背锅侠了,我就末尾排查成绩吧。

    注:以下代码都是伪代码,为了恢复排查进程

    普通CPU100%疯狂GC,都是死循环的锅,那怎样排查呢?

    先进效劳器,用top -c 命令找出当行进程的运转列表

    按一下 P 可以按照CPU运用率停止排序

    显示Java进程 PID 为 2609 的java进程消耗最高

    顺序员不小心把效劳器CPU打到100%,展现教科书排查进程

    然后我们需求依据PID 查出CPU外面消耗最高的进程

    运用命令 top -Hp 2609 找出这个进程下面的线程,继续按P排序

    可以看到 2854 CPU消耗最高

    2854是十进制的,我们需求转换为十六进制,转换结果:b26

    接上去就需求导出我们的进程快照了,看看这个线程做了啥

    jstack -l 2609 > ./2609.stack 

    再用grep查看一下线程在文件里做了啥

    cat 2609.stack |grep 'b26' -C 8 

    我这里就随意定位一个,基本上这样查都可以定位到你死循环的那个类,那一行,这里你还可以在jstack出来的文件中看到很多熟习的名词,至于是啥,你们留言通知我好了,就当是个课后作业了。

    顺序员不小心把效劳器CPU打到100%,展现教科书排查进程

    我写了个伪代码,看看事先我为啥会写出这个死循环,对了事先我上线的是预发,也是后台系统非线上的,虽然都是本人在玩,但是大家还是要引以为戒。

    我事先写了个代码预备去查出数据库的数据,修订下日期,细心看没成绩,但是我忘了数据库的偏移值本人去计算了,由于以前都是框架,本人暂时写的就没管。

    招致每次都能查出10个数据,在最后判别的时分就不断true不参加了,其实最后会参加,但是得循环很屡次。

    我这里参加的逻辑比较取巧,就是想着最后一次查询一定跟我的页数不一样,那就是最后一页了,那我就处置完参加。

    结果没想到也是个坑了。

    大家写的时分也要留意很多小坑,这次我就给个demo特地带大家温习一下线上缺点的排查,下次我能够搞点内存泄露,集群宕机什么的缺点,这样就有素材了呀。

    假设真出成绩,第一时间找个三歪这样的背锅侠,排查进程本人去电脑上操作一下,最近有点忙,预备写个散布式锁的文章,如何?

    我是敖丙,一个在互联网苟且偷生的工具人。

    【编辑引荐】

    3 月全球 Web 效劳器调查报告:Nginx 域名份额首超 Apache

    效率工具横评:钉钉、飞书、企业微信哪家强?

    首款Jupyter官方可视化Debug工具,JupyterLab未来可默许支持Debug

    IDC:2020年效劳器和存储市场受冲击,形成短期影响

    您需求知晓的20款测试工具库

    (责任编辑:admin)