java 内存很高_Java服务器内存和CPU占用过高的原因
一、内存占用过高
1、造成服务器内存占用过高只有两种情况:内存溢出或内存泄漏
(1)内存溢出:程序分配的内存超出物理内存的大小,导致无法继续分配物理内存,出现OOM报错。
(2)内存泄漏:不再调用的对象一直占用着内存不释放,导致所占用的这块内存被浪费掉,久而久之,内存泄漏的对象堆积起来,也会导致物理机的内存被耗尽,出现OOM报错。
2、内存过高的检测办法:
一般我们的Java服务器都是部署在Linux机器上面,可以通过jvm自带的命令进行一些检测:
(1)查看对象的数目和占用内存大小;
(2)如果需要进一步定位问题代码,那么就需要把Java程序的内存镜像导出,再具体分析了,通过如下命令导出程序的内存镜像。
二、CPU使用过高
1、当程序发现CPU使用过高的情况时,可以使用Windows系统的ProcessExplorer工具来找到CPU高消耗的线程,所以需要在Windows机器上面搭建好服务器的测试环境,尽量模拟出线上CPU飙升的情况;
2、模拟好环境后,通过任务管理器,在进程一栏中找到Java程序的进程号;
3、下载ProcessExplorer工具:
4、打开工具后,根据刚才的进程号找到进程;
5、然后右键-->Properties,再选择Threads选项卡,点进CPU排序,可以找到消耗CPU最多的那个线程;
6、使用科学计算器,将十进制的线程号转成十六进制,比如493620-->78834;
7、到此已经拿到了可能出问题的进程号和线程号,接下来使用jvm内置的命令来导出Java的堆栈信息:
jstack-l>
8、打开导出的堆栈信息,并全文搜索刚刚拿到的十六进制的线程号,就可以找到出问题的代码具体位置了。
java 内存很高_Java服务器内存和CPU占用过高的原因相关推荐
- linux 进程 kswapd0 cpu占用过高
1核1G虚拟机,启动两个jar后cpu飙升直接卡死,查看cpu及内存占用 发现kswapd0进程cpu占用一直居高不下,于是查询资料,总结如下. swap分区的作用是当物理内存不足时,会将一部分硬盘当 ...
- 性能优化-CPU占用过高问题排查
1. 性能优化是什么? 1.1 性能优化就是发挥机器本来的性能 1.2 性能瓶颈在哪里,木桶效应. CPU占用过高 1.现象重现 CPU占用过高一般情况是代码中出现了循环调用,最容易出现的情况有几种: ...
- kswapd0 进程CPU占用过高
前几天遇到的一个问题,自己本地用VM配置的虚拟机,一般会top查看进程以及CPU占用的一些情况.又一次用laravel 打印对象,里面的内容比较多,浏览器当时就卡了. 然后看进程的情况.我以为会是ng ...
- “RESOURCE MONITOR“CPU占用特别高
背景: SQL Server 2008 R2 10.50.1600 没有设置页面文件,内存为64G,数据库分配50G cpu使用占了50%以上,平时只有10-20%,某台服务器"RESOUR ...
- 无盘服务器内存问题,无盘服务器内存占用过高
无盘服务器内存占用过高 内容精选 换一换 Windows操作系统云服务器蓝屏,如图1所示.使用了来源不明的第三方软件.CPU占用过高导致.因为误操作或者病毒引起的系统文件.注册表损坏.操作系统在蓝屏的 ...
- 服务器内存 知乎_服务器内存和普通内存有什么区别?可以通用吗?
平时大家接触最多的应该是普通内存,也就是我们所说的PC内存,一般来说,内存越大,可用的缓存就越大,电脑的运行速度就越快.用在服务器上是同理,服务器的内存越大,可用缓存就越大,网站的速度也越快. 服务器 ...
- 服务器内存超频性能,服务器内存可以超频么
服务器内存可以超频么 内容精选 换一换 在昆仑服务器高可用的场景下可以采用ISCSI盘用作SBD卷作为存储方案,若采用此方案则可以跳过DESS相关步骤.用户也可选择DESS作为存储方案,详细方案请参考 ...
- 服务器芯片市场容量,未来内存接口芯片市场规模 使用内存接口芯片的服务器内存模组主要有寄存内存模组(RDIMM)和减载内存模组(LRDIMM)两种。RDIMM需要一颗寄... - 雪球...
来源:雪球App,作者: 炒股基本靠蒙,(https://xueqiu.com/9446807039/129589023) 使用内存接口芯片的服务器内存模组主要有寄存内存模组(RDIMM)和减载内存模 ...
- windows服务器java项目cpu占用较高原因分析
前言 在windows平台上要找出到底是哪个线程占用的cpu还不那么容易,linux用top就简单多了最后的解决方法: 1.找到java进程对应的pid. 找pid的方法是:打开任务管理器,然后点击 ...
最新文章
- 爬虫之 lxml模块和xpath语法
- 如何停止电脑正在运行的VBS程序?
- linux 内核 fork,《Linux内核分析》之分析fork函数对应的系统调用处理过程
- 【风之语】至贱城市之成都
- html判断是否有父节点,Jquery判断$(#id)获取的对象是否存在的方法
- Android中onInterceptTouchEvent、dispatchTouchEvent及onTouchEvent的调用顺序及内部原理
- 自定义按钮动态变化_新闻价值的变化定义
- ANSI,Unicode,UTF-8网页编码的区别【转】
- mysql查阅建立的库_mysql 怎么查看创建的数据库和表
- kafka的消费顺序_Kafka原理和实践云平台技术栈13
- 不必仰望他人,用自己的方式活着就好
- javax.xml.ws.WebServiceException: Provider com.sun.xml.ws.spi.ProviderImpl not found
- 数据通信--大小端转换
- 使用苹果账号登录你的应用
- RHCE(五)HTTP、SSL协议综合实验
- 光合作用c3和c5变化语言叙述,浅议光合作用中C3和C5的含量变化
- 台式计算机硬盘的尺寸通常为多少英寸,电脑硬件参数之硬盘
- 代写硕士论文 计算机 代码,天大、厦大两硕士代写买卖论文被撤销学位
- 期货市场倒挂什么意思(期货市场倒挂什么意思啊)
- Oracle 12c 的安装步骤教程
热门文章
- 不等式大两边小中间_不等式取值范围口诀
- 疾病研究:DMD及BMD的机理和临床表现(译稿)
- 页面找不到了无法解析服务器,win10下搜狗浏览器无法解析服务器的dns地址如何解决...
- Linux环境下安装python并编写简单程序
- ActivityNet 2018介绍
- 蚌埠市哪有学计算机编程的,蚌埠小孩学习编程
- 吉林大学计算机技术(电子信息)专业(专硕)解读
- cox(Quaro)对设计的崭新定义,改变我的人生
- 一建课件下载2019年一级建造师报考流程图,报考步骤一目了然
- flutter安装_在macOS上搭建Flutter开发环境