昨天1024程序员节,我故意写了个死循环~
导致CPU100%的原因很多,而程序中出现死循环就是原因之一。然而,并不是每个人在工作中都有机会踩中这个坑。我就是其中一个没踩过的。人生似乎有些不完整。
所以,我做了一个很重要的决定:在程序中写一个死循环。看看会发生什么事情。
当然,不是在生产环境。 我搭建了一个实验环境来做实验。只是这个实验环境不仅可以用于这个死循环实验。以下是这个环境的结构图:
还是老样子,使用Vagrant + Virtualbox + Ansible自动化搭环境。
我们会写一个简单的Spring MVC 应用,然后其中一个接口里会有死循环代码:
以下是我自己尝试找出这个死循环的过程。
一、使用top,查看是哪个进程的问题
我请求一次:
http://192.168.88.10:9898/web/loop
然后,我打开新窗口,又请求一次
这里,我好奇CPU没有到200%。一直在120%和130%之间。P.S. 我一定是某个知识点不牢固,要不,不会有这个疑问。
二、堆空间
因为不涉及JVM堆空间问题,执行 jstat -gcutil 32593 1s 没看出什么问题。32593为Java进程ID,1s指1秒抽样一次。
三、栈
堆没问题,就看看是哪个线程占用得高。
列出java进程的线程,top -H -p <java 进程pid>
将jvm的栈dump下来 jstack -l <其中一个线程PID> >> stack.log,这里我选3596。
在日志中,找到相应的线程,我们需要从栈日志中找到相应的线程,但由于栈日志中使用的16进制,但是top中的PID又是10进制。所以,需要手工将10进制的PID转成16进制。3596的16进制转是0xe0c
四、小结
从这个解决的方式过程中,我们已经可以看出来一种基本的处理CPU 100%的情况了!希望对大家有所帮助!
欢迎工作一到五年的Java工程师朋友们加入Java填坑之路:860113481
群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!
昨天1024程序员节,我故意写了个死循环~相关推荐
- 同事:别加班了,今天可是你们1024程序员节啊!
今天是10月24日程序员节. 一大早,承旭元跟往常一样上班,作为一名普普通通的程序员,他知道1024程序员节纯属是大家调侃出来的非法定假日,不加班?不存在的,何况最近的项目也很赶. 别说1024程序员 ...
- 1024程序员节|去他的人傻钱多,码农的柔情,你永远不懂!
"别人笑我太疯癫,我笑别人看不穿." 在"1024程序员节"的今天,小编想把这句话送给广大的程序员们,希望你们能在代码的海洋中继续快乐地遨游. 由于互联网创业公 ...
- 【综合类型第 37 篇】又是一年 1024 程序员节
这是[综合类型第 37 篇],如果觉得有用的话,欢迎关注专栏. 到公司后才发现今天是 1024 程序员节,不过最近比较忙,忘记写博客了. 刚下班回到家,最近还是挺累的,不过也快完工了,fighting ...
- 1024 程序员节 | 请对身边的程序猿好一点
程序员节起源 程序员的工作我们都知道,编程嘛.但为什么程序员节要在1024呢?1024最早火起来是因为一个"不可描述"的论坛,那里的回帖机制是:新用户发过贴之后,过1024秒才能发 ...
- MySQL之父等国际数据库掌门人齐聚,1024 程序员节全体大会重磅官宣!
10月23-24日,由CSDN.长沙市政府及多家机构联合主办的第二届"长沙·中国1024程序员节"(1024.csdn.net)将盛大举行.今年程序员节活动囊括:岳麓书院尖峰对话, ...
- 1024程序员节,你是我们要找的那条锦鲤吗?
参加2018 AI开发者大会,请扫描海报二维码 叮咚,您有一封 #1024吐槽狂欢派对# 邀请函请查收. ▌什么是程序员? 全员格子.黑框眼镜,还是等于创造力+忍耐力? 刻板标签.思维定式,还是高阶自 ...
- 【1024程序员节】都有什么?现场亲历者告诉你...
前言 提起CSDN,基本上每个技术人或多或少都会有所耳闻,在实际学习和工作中大家遇到问题也都在CSDN中找到过解决方案.我自己使用CSDN的时间算下来也有将近十年左右的时间,在网站搜索解决方案的同时, ...
- 1024程序员节 | 我在腾讯自研数据库,我为技术代言
随着互联网的发展,"程序员"这个名字逐渐为人们所关注到,其所代表的标签印象也变得更加多样 -- 改变世界?Debug专业户?格子衫代言人?--事实上,有那么一群人,比如腾讯数据库工 ...
- 1024程序员节来啦!!.NET技术圈独家优惠劵,折后再折,赶紧来抢啊
1024程序员节 当当网计算机图书 每满100减50! 满200减100! 满300-150! 机械工业出版社华章公司联合当当网特意为[DotNET技术圈]用户申请了一批可与满减叠加使用的&quo ...
最新文章
- python爬取下拉列表数据_Python怎么爬取下拉式的网页?
- 单行Bash无限while循环的语法
- python 操作 postgresql 数据库
- 从零单排Java 8(2) —— Timestamp、String互转
- 2019牛客多校Monotonic Matrix
- python3多进程写时拷贝_python多进程实现复制文件
- SAP MM模块-实施顾问岗位-面试手册-面试准备
- 在本地测试一次成功的AJAX请求
- 跟我学习dubbo-简介(1)
- 成神之路——实施工程师
- win10安装PHP环境
- 基于Unity3D的PCAndroid端2D横屏冒险类闯关游戏
- V2X消息之SPAT消息解读
- 数据库的设计关键点总结
- resNet论文学习心得
- 基于机器学习的电力系统故障分类预测模型
- 钉钉的自动打卡上下班辅助android软件
- 给网站开发者推荐18个在线手册,值得收藏
- 微信支付与支付宝支付
- selenium 教程
热门文章
- Zookeeper与Kafka集群搭建
- 方法参数关键字:params、ref及out
- 25个恶意JavaScript 库通过NPM官方包仓库分发
- Bouncy Castle 加密库修复高危的认证绕过漏洞
- 关于 iOS 中 new Date()的坑
- Tomcat8配置Https协议,Tomcat配置Https安全访问,Tomcat Https配置
- InflateException:Bin file line #19:Error inflating class MyTextView
- 万达9.3亿美元并购北欧最大院线 全球市场份额逼近20%
- Leetcode题目:House Robber
- html5扫面二维码逻辑