java 内存使用过高_Java服务器内存和CPU占用过高的原因
描述
一、内存占用过高
1、造成服务器内存占用过高只有两种情况:内存溢出或内存泄漏
(1)内存溢出:程序分配的内存超出物理内存的大小,导致无法继续分配物理内存,出现OOM报错。
(2)内存泄漏:不再调用的对象一直占用着内存不释放,导致所占用的这块内存被浪费掉,久而久之,内存泄漏的对象堆积起来,也会导致物理机的内存被耗尽,出现OOM报错。
2、内存过高的检测办法:
一般我们的Java服务器都是部署在Linux机器上面,可以通过jvm自带的命令进行一些检测:
(1)查看对象的数目和占用内存大小;
(2)如果需要进一步定位问题代码,那么就需要把Java程序的内存镜像导出,再具体分析了,通过如下命令导出程序的内存镜像。
二、CPU使用过高
1、当程序发现CPU使用过高的情况时,可以使用Windows系统的Process Explorer工具来找到CPU高消耗的线程,所以需要在Windows机器上面搭建好服务器的测试环境,尽量模拟出线上CPU飙升的情况;
2、模拟好环境后,通过任务管理器,在进程一栏中找到Java程序的进程号;
3、下载Process Explorer工具:
4、打开工具后,根据刚才的进程号找到进程;
5、然后右键-->Properties,再选择Threads选项卡,点进CPU排序,可以找到消耗CPU最多的那个线程;
6、使用科学计算器,将十进制的线程号转成十六进制,比如493620-->78834;
7、到此已经拿到了可能出问题的进程号和线程号,接下来使用jvm内置的命令来导出Java的堆栈信息:
jstack -l >
8、打开导出的堆栈信息,并全文搜索刚刚拿到的十六进制的线程号,就可以找到出问题的代码具体位置了。
打开APP精彩内容
点击阅读全文
java 内存使用过高_Java服务器内存和CPU占用过高的原因相关推荐
- java 内存很高_Java服务器内存和CPU占用过高的原因
一.内存占用过高 1.造成服务器内存占用过高只有两种情况:内存溢出或内存泄漏 (1)内存溢出:程序分配的内存超出物理内存的大小,导致无法继续分配物理内存,出现OOM报错. (2)内存泄漏:不再调用的对 ...
- “RESOURCE MONITOR“CPU占用特别高
背景: SQL Server 2008 R2 10.50.1600 没有设置页面文件,内存为64G,数据库分配50G cpu使用占了50%以上,平时只有10-20%,某台服务器"RESOUR ...
- 性能优化-CPU占用过高问题排查
1. 性能优化是什么? 1.1 性能优化就是发挥机器本来的性能 1.2 性能瓶颈在哪里,木桶效应. CPU占用过高 1.现象重现 CPU占用过高一般情况是代码中出现了循环调用,最容易出现的情况有几种: ...
- java cpu 占用率高_java实战CPU占用过高问题的排查及解决
最近一段时间 某台服务器上的一个应用总是隔一段时间就自己挂掉 用top看了看 从重新部署应用开始没有多长时间CPU占用上升得很快 排查步骤 1.使用top 定位到占用CPU高的进程PID top 2. ...
- windows服务器java项目cpu占用较高原因分析
前言 在windows平台上要找出到底是哪个线程占用的cpu还不那么容易,linux用top就简单多了最后的解决方法: 1.找到java进程对应的pid. 找pid的方法是:打开任务管理器,然后点击 ...
- idea占用cpu过高_生产环境服务器变慢、CPU占用过高,诊断思路和性能评估谈谈?...
上篇: https://zhuanlan.zhihu.com/p/166162037zhuanlan.zhihu.com 一.生产环境服务器变慢,诊断思路和性能评估 1.在Linxu准备数据 (1) ...
- Top命令找出CPU占用较高的Java线程信息
Top命令找出CPU占用较高的Java线程信息 由于种种原因导致生产环境的应用CPU占用奇高, 这个时候就需要确定到底是哪些线程占用了较高的CPU, 然后再做针对性的优化, 可以使用jconsole/ ...
- 服务器CPU占用过高和哪些因素有关呢
服务器CPU占用过高和哪些因素有关呢 硬件因素 以下分别从CPU温度,CPU超线程,硬件配置,硬件驱动和待机方面分析. 1.CPU温度过高 如果CPU风扇散热不好,会导致CPU温度太高,使CPU自动降 ...
- samba服务器占用端口,SMB 服务器上的 CPU 使用率过高问题
SMB 服务器上的 CPU 使用率过高问题 12/25/2019 本文内容 本文介绍了如何排查 SMB 服务器上的 CPU 使用率高的问题. 由于存储性能问题导致的 CPU 使用率过高 存储性能问题可 ...
- java 一次CPU占用过高问题的排查及解决,java基础面试笔试题
我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...
最新文章
- javascript中的异步 macrotask 和 microtask 简介
- jquery对象和Dom对象的不同
- 44.更多replace案例
- 极限与连续知识点总结_高数上知识点期末复习 极限、连续、间断点(一)
- SqlServer Windows 可更新订阅立即更新启用分布式事务协调器(MSDTC)
- Oracle单组函数
- 在 Oracle 中使用正则表达式
- MySql存储引擎的比较及选择
- ArcGIS10.2的详细安装过程和下载方法
- 编译原理(第3版)第1章引论课后题答案
- MT【293】拐点处切线
- led灯光衰怎么解决_影响LED灯具光衰的原因及解决方法
- JavaScript基础-数组
- modelsim/Questasim中添加xilinx ip库,并仿真成功
- QA是干什么的?(职责所在????)
- 去掉最高分最低分求平均分
- 计算机无法自动排列,Win10电脑如何设置文件夹不再自动排列|取消电脑文件夹自动排列的方法...
- 史上最牛逼的导航网站(很全很详细)
- unity学习-委托(delegate),事件(event),Action,Func
- [排行榜]IT牛人排行榜
热门文章
- HTML5期末大作业:电影网站设计——电影动漫言叶之庭(4页) web前端课程设计_web前端课程设计代码,web课程设计-HTML网页制作代码
- 计算机网络面试基础知识
- 英制 mil 和公制 mm 的换算
- 微信小程序注册审核流程
- 手写实现bpnn神经网络
- html+移动端图片点击放大,移动端点击图片放大特效PhotoSwipe.js插件实现
- 最全iOS开发之第三方库
- 高通 MSM8K bootloader 之四: ramdump
- LTE时代的定位技术:OTDOA,LPP,SUPL2.0
- 【20211228】【信号处理】从 Matlab 仿真角度理解频谱泄露