一、内存占用过高

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占用过高的原因相关推荐

  1. linux 进程 kswapd0 cpu占用过高

    1核1G虚拟机,启动两个jar后cpu飙升直接卡死,查看cpu及内存占用 发现kswapd0进程cpu占用一直居高不下,于是查询资料,总结如下. swap分区的作用是当物理内存不足时,会将一部分硬盘当 ...

  2. 性能优化-CPU占用过高问题排查

    1. 性能优化是什么? 1.1 性能优化就是发挥机器本来的性能 1.2 性能瓶颈在哪里,木桶效应. CPU占用过高 1.现象重现 CPU占用过高一般情况是代码中出现了循环调用,最容易出现的情况有几种: ...

  3. kswapd0 进程CPU占用过高

    前几天遇到的一个问题,自己本地用VM配置的虚拟机,一般会top查看进程以及CPU占用的一些情况.又一次用laravel 打印对象,里面的内容比较多,浏览器当时就卡了. 然后看进程的情况.我以为会是ng ...

  4. “RESOURCE MONITOR“CPU占用特别高

    背景: SQL Server 2008 R2 10.50.1600 没有设置页面文件,内存为64G,数据库分配50G cpu使用占了50%以上,平时只有10-20%,某台服务器"RESOUR ...

  5. 无盘服务器内存问题,无盘服务器内存占用过高

    无盘服务器内存占用过高 内容精选 换一换 Windows操作系统云服务器蓝屏,如图1所示.使用了来源不明的第三方软件.CPU占用过高导致.因为误操作或者病毒引起的系统文件.注册表损坏.操作系统在蓝屏的 ...

  6. 服务器内存 知乎_服务器内存和普通内存有什么区别?可以通用吗?

    平时大家接触最多的应该是普通内存,也就是我们所说的PC内存,一般来说,内存越大,可用的缓存就越大,电脑的运行速度就越快.用在服务器上是同理,服务器的内存越大,可用缓存就越大,网站的速度也越快. 服务器 ...

  7. 服务器内存超频性能,服务器内存可以超频么

    服务器内存可以超频么 内容精选 换一换 在昆仑服务器高可用的场景下可以采用ISCSI盘用作SBD卷作为存储方案,若采用此方案则可以跳过DESS相关步骤.用户也可选择DESS作为存储方案,详细方案请参考 ...

  8. 服务器芯片市场容量,未来内存接口芯片市场规模 使用内存接口芯片的服务器内存模组主要有寄存内存模组(RDIMM)和减载内存模组(LRDIMM)两种。RDIMM需要一颗寄... - 雪球...

    来源:雪球App,作者: 炒股基本靠蒙,(https://xueqiu.com/9446807039/129589023) 使用内存接口芯片的服务器内存模组主要有寄存内存模组(RDIMM)和减载内存模 ...

  9. windows服务器java项目cpu占用较高原因分析

    前言 在windows平台上要找出到底是哪个线程占用的cpu还不那么容易,linux用top就简单多了最后的解决方法: 1.找到java进程对应的pid. 找pid的方法是:打开任务管理器,然后点击 ...

最新文章

  1. 爬虫之 lxml模块和xpath语法
  2. 如何停止电脑正在运行的VBS程序?
  3. linux 内核 fork,《Linux内核分析》之分析fork函数对应的系统调用处理过程
  4. 【风之语】至贱城市之成都
  5. html判断是否有父节点,Jquery判断$(#id)获取的对象是否存在的方法
  6. Android中onInterceptTouchEvent、dispatchTouchEvent及onTouchEvent的调用顺序及内部原理
  7. 自定义按钮动态变化_新闻价值的变化定义
  8. ANSI,Unicode,UTF-8网页编码的区别【转】
  9. mysql查阅建立的库_mysql 怎么查看创建的数据库和表
  10. kafka的消费顺序_Kafka原理和实践云平台技术栈13
  11. 不必仰望他人,用自己的方式活着就好
  12. javax.xml.ws.WebServiceException: Provider com.sun.xml.ws.spi.ProviderImpl not found
  13. 数据通信--大小端转换
  14. 使用苹果账号登录你的应用
  15. RHCE(五)HTTP、SSL协议综合实验
  16. 光合作用c3和c5变化语言叙述,浅议光合作用中C3和C5的含量变化
  17. 台式计算机硬盘的尺寸通常为多少英寸,电脑硬件参数之硬盘
  18. 代写硕士论文 计算机 代码,天大、厦大两硕士代写买卖论文被撤销学位
  19. 期货市场倒挂什么意思(期货市场倒挂什么意思啊)
  20. Oracle 12c 的安装步骤教程

热门文章

  1. 不等式大两边小中间_不等式取值范围口诀
  2. 疾病研究:DMD及BMD的机理和临床表现(译稿)
  3. 页面找不到了无法解析服务器,win10下搜狗浏览器无法解析服务器的dns地址如何解决...
  4. Linux环境下安装python并编写简单程序
  5. ActivityNet 2018介绍
  6. 蚌埠市哪有学计算机编程的,蚌埠小孩学习编程
  7. 吉林大学计算机技术(电子信息)专业(专硕)解读
  8. cox(Quaro)对设计的崭新定义,改变我的人生
  9. 一建课件下载2019年一级建造师报考流程图,报考步骤一目了然
  10. flutter安装_在macOS上搭建Flutter开发环境