范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

那天服务器内存被Java线程撑爆了,简单的JVM问题诊断流程

  话说那天中午吃饭的时候,一个同事说:"那个项目组的人快气死我了,程序有问题,早晨在群里@了他们,到中午才回消息,然后竟然还说他们的程序没有问题,是我们这边调用的太频繁了。简直想笑。"
  一般来说,对接出现问题,如果不是错误太明显,我首先都会先怀疑是不是自己出了问题,以免到时候丢人。所以我说,吃完饭回去我帮你排查一下,看问题到底出在哪里。背景说明
  我们当前这个系统和很多的第三方系统做了集成,出问题的就是其中一个三方系统。其实很简单,他们的系统会产生一些个人待办任务,然后待办任务的个数需要推送到我们的 APP 上,作为图标的角标显示。
  用户数据已经打通,其实很简单的需求,角标通知也不要求实时,10分钟刷一次就可以。这个场景非常典型,用消息队列再合适不过了。他们把数据推到消息队列,我们去消息队列取,完美。
  可现实并不是这样,他们说系统是产品化,不支持消息队列,只能把待办任务接口开放出来。好的(微笑脸),你们是产品你们有理。可能有待办任务的用户不多,300多个,那就每隔 10 分钟请求 300 多次请求呗。也没用多线程,就是简单的循环 300 多次请求,每次耗时差不多的1分钟。
  也可以,那就这样呗。
  顺便说一下,这个服务的 JDK 是 1.6 版本,据说由于历史原因,现在已经不敢升级了。而且,服务要部署在 windows 上。(你说神奇不神奇)花明柳暗
  那就这样呗,做个定时任务,10分钟咔咔请求个 300 来次,也挺过瘾,也挺省心。
  但是好景不长,天不遂人愿,服务器不遂程序员愿。
  以下是同事的经历,我转述以下。
  就在定时任务跑起来后的第二个晚上,那本来该是一个平常的晚上,可是告警邮件扰人清梦。一看日志,内存使用空间过高,撑爆了,导致机器自动重启了。windows 就这点好啊,还会自动重启(尴尬脸)。然后手动上去把服务启动起来,解决。
  隔了一天,还是晚上,又报警了,服务器又自动重启了,又是内存使用空间过高。又手动上去把服务启动了。
  于是他反馈给这个服务的开发人员,结果得到的回复是:"我们的服务没有问题,肯定是你们的调用有问题,你们把定时任务停掉肯定就好了,所以是你们的问题"。
  于是,他过来找我,跟我说明情况,问我可能会是什么问题。
  我:你确定定时服务是 10 分钟一次,没有出现死循环吗?
  同事:确定。
  我:那他们的服务有使用 redis 之类的外部缓存吗?
  同事:不知道。
  我:… 既然你确定你调用的没问题,那肯定是他们程序出现问题把内存撑爆了呀,这有什么好怀疑的,让他们改吧。
  同事:他们现在说自己没问题啊。挖出真凶
  好吧,既然他们说没问题,那我就来帮他把问题找出来吧。于是,远程进了那台 windows 服务器。
  这时候已经把定时任务已经跑了两天了,16G 的内存已经用掉 15G 多了,眼看随时有可能崩溃,然后把定时任务停掉,内存使用量也并不会下来。
  我开始怀疑是不是用了 redis 之类的外部缓存,结果进服务器一查 redis 、memcached 之类的压根儿就没装,所以排除外部缓存。(随后使用 JVM 工具查看也证明了这一点)
  那既然不是外部缓存,那肯定出在 JVM 上了,要不然就是用了 JVM 缓存,要不然就是内存泄漏什么的。于是我想用 jinfo -flags看一下 JVM 初始参数,JDK 6 竟然还不支持 -flags 。
  然后我不知道是不是尝试了 jmap -heap 还是就看了一眼 jmap -help以为不支持 jamp -heap,反正最后我是通过 jconsole来观察的 JVM。一看 JVM 参数明显就是默认没特殊设置过,并且奇怪的是对内存一共采用了 700 多M。700M 和 15G 比,差哪儿去了,没道理啊,问题没出在堆上。
  然后我尝试执行 GC 操作,然而并没有任何改善。直到这里,我严重怀疑是出现了内存泄漏了。
  于是我执行了 jmap -dump,把堆、线程信息 dump 下来,然后拉到本地分析。不看不知道,一看吓一跳,线程多到令人窒息。
  不得不说,有一点他们做的非常好,竟然贴心的给线程编了号,没错,就是有这么多线程 10万多个。于是我们算了一下假设 10分钟请求 300 次,那就是 300 个线程,一小时就是 30 x 6=1800,一天24小时就是1800 x 24=43200,两天多的时间 10万多个线程那就正好对上了,好牛x的样子。
  一个线程默认占用空间大小 1M,10万多个线程那就是 10个多G,加上堆内存占用和机器上其他服务的内存占用,内存飙到 15G 就对的上了。谁的问题谁处理
  有问题就找问题就这么难吗,不承认自己的程序有问题是怎么想的呢。
  好啊,你们自己不查,我帮你找到问题原因了,满意了吧。
  于是,同事理直气壮的把上面那张截图发给他们,但是没有额外说一句话。
  下午,微信群里对方发来消息,问题已修改,可以再试试。
  然后,好多天过去了,问题没有再出现。规避问题
  有的同学问了,系统能创建10万多个线程吗,有可能的。这篇文章是「你假笨」大神写的 Linux 系统下能创建多少个线程的源码分析 club.perfma.com/article/244…,有兴趣可以上去看一看。
  这个问题产生的原因就是线程创建了但是没有销毁,估计是销毁逻辑写的有些问题吧。
  抛开逻辑错误不说,使用线程的正确做法是使用线程池,以免带来不必要的性能损耗和这种未加控制、未及时销毁带来的线程无止境创建的问题。
  作者:古时的风筝
  链接:https://juejin.im/post/5ea0f2a2f265da47aa3f7b0f

完美组合!中国飞人苏炳添,正式成为小米品牌代言人此前,在手机舆论场上,虽然苹果iOS15OPPOvivo系新机华为P50等,都曾是行业热点。但是,接下来,手机江湖,将只有一个主角,那就是雷军的小米。本以为,今天的高潮戏码,会等到iQOONeo5活力版到底如何?上手一周真实有感作为一名正儿八经的酷客,我使用过的iQOO手机少说有三台,对品牌的认知也随着iQOO产品系列轮廓逐渐清晰而更加立体,从一开始数字系列席卷主流电竞比赛,成为圈内的游戏小霸王,到Neo安卓手表天花板?OPPO发布Watch2手表近日,号称一出手就碰到了安卓手表的天花板的OPPOWatch2系列智能手表终于开售了,据悉此次销售的版本共有三个,分别是42mm蓝牙版42mmeSIM版46mmeSIM版三种配置,随缘的小知识更新CPU的超频与睿频说起CPU超频,大家都懂,而CPU睿频呢?相信大家买CPU的时候都会看到产品宣传图上写着睿频最高可达多少多少GHz,那么超频就是睿频吗?什么是超频?什么是睿频?今天咱们就来了解了解屏下摄像手机中兴Axon30开售5天,敞开卖,京东售出不到4000台这么快就能用上屏下摄像手机了,想想都觉得激动,终于不用再忍受挖孔屏和刘海屏了。没错,随着中兴手机的第一代屏下摄像手机Axon20的量产,就预示着后面的屏下摄像手机会越来越多,不到一三星1000寸巨屏来了,让你像玩乐高一样拼屏幕影院级视听体验一词,经常被电视厂商们拿来宣传自家电视机,试图证明电视体验足够好,但实际上大家都知道,大多数情况下都只是接近而已。万元级的电视要对标数十上乃至上百万的影院设备,这本身IntelDG2独显性能曝光玩家安心了,超RTX3070问题不大最近Intel独立显卡DG2的曝光越来越频繁了,从之前的消息来看,Intel大概率会在2022年的CES大展上正式发布DG2这系列的独立显卡,当然具体型号应该不会叫这个名字。不过这Win7右下角红X不能上网怎么办?Win7系统是Microsoft最经典的操作系统,许多用户使用计算机时选择使用Win7系统。但是,许多用户在Win7重新发明后找到了网络右下角的网络显示红色x,我该怎么办?让我们在联通UMAGIC优畅享2020Plus到底是不是华为手机?大家有没有发现这个问题,现在线下华为授权体验店悄悄的开始售卖了Umagic优畅享2020plus手机了,那到底是不是华为手机呢?到底和华为有什么关系呢?接下来由小编为大家解析!翡冷讯飞翻译笔S11评测国人的哑巴英语有救了因材施教有教无类是孔子在几千年前的教育思想,而这也深深影响着后世的莘莘学子。如今,随着AI在学情诊断个性化辅导等领域的技术突破,通过人工智能助力学生减负增效,已经逐渐得到孩子及家长一分钟资讯小米iQOO三星,最新消息及安卓排行榜排名哈喽,我是毛小毛。关注我,每日带你了解最新数码资讯!一分钟资讯第101期,感谢你的阅读。最新中高端手机性能TOP10近日,安兔兔更新了2021年7月份Android中高端手机性能榜
被判退一赔三后,特斯拉将胜诉车主告上法庭索赔505万元!车主称银行卡被冻结9月26日,特斯拉退一赔三案胜诉车主韩某表示,特斯拉方面近期以自己侵犯其名誉权为由,将自己告上法庭,并要求公开赔礼道歉,合计索赔505万元。据韩某发布的起诉书显示,原告(特斯拉)表拆解iPhone13核心元件,基本都是美国的,中国供应商要加油众所周知,在苹果的Top200供应链中,中国厂商的数量是越来越多,2020年甚至占到了57,高达114家。但有一个比较客观的事实,大家也要承认,那就是中国供应链再多,提供的其实也是焦点访谈丨人工智能云计算聚焦互联网最新发展趋势乌镇见证中国数字经济蓬勃发展2021年世界互联网大会乌镇峰会9月26日开幕。国家主席习近平向峰会致贺信。今年大会的主题为迈向数字文明新时代携手构建网络空间命运共同体。近2000名来自80多个国家和地区的代表通iPhone13mini真实续航体验,提升明显,日常完全够用从6S一直到12mini,一直钟爱小屏手机,一手掌握的感觉真的是太好了。毕竟对于玩游戏电脑和主机更好玩,看视频电视和平板屏幕更大体验更好。对于非手机重度用户,小屏手机这种轻便顺手才杨浦区的发展现状和前景怎么样,适合投资吗?个人感觉杨浦区可以的,尤其是东外滩板块,12号线,18号线投资可以选择近地铁一些的,出租便利,出手方便杨浦这边拥有大学城,数一数二的教育和医疗资源,现在杨浦大力发展五角场,整个杨浦国产手机中,华为小米魅族哪个更好?感谢邀请。客观的说,三个手机品牌并没有绝对的好与坏,可以说各有千秋,也有个自的优势和短板,我个人比较喜欢小米,对华为和魅族也不排斥。小米手机,创办于2010年,2011年8月16日高通华为都没有全部5G专利,为什么总听说要向高通交专利费,高通需要向华为交吗?极客谈科技局,全新视角全新思路,伴你遨游神奇的科技世界。高通与华为之间均具有部分5G网络的专利,并且华为专利数量领先于高通。为何华为需要向高通交纳5G专利费,反之高通不需要向华为交俄罗斯为什么不担心芯片和光刻机的问题?众所周知,如今的汽车,飞机等交通工具手机,电脑,基站等通讯工具,都离不开芯片。当然,芯片也可以称为广义的CPU。也就是说,芯片已经涉及我们生活中的方方面面。不仅如此,芯片也成为一条什么是隐私计算技术?在数字化浪潮推动下,数据领域的技术创新场景应用与管理服务日益成为各个行业领域数字化转型发展的重要驱动力。同时,数据流通与数据安全间的矛盾也日益升级,成为影响数字化发展的制约因素。安如何干掉阿里巴巴?只有不希望国家好的人才希望干掉阿里巴巴为啥要干掉阿里巴巴?阿里是外资控股80的互联网巨头,它的财富是8亿消费者创造的!为什么这样说呢?今天是流量为王,如果消费者的手机不下载他们的A财经金融企业负面舆情监测怎么做?做法一构建舆情监测系统当前,网上的财经金融数据信息多且杂,又是实时在更新,依靠传统的方式监测行不通。因此,可以通过构建一套专业的网络舆情监测系统辅助监测。如鹰眼速读网系统就支持全网