0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Java服务器内存和CPU占用过高的原因

汽车玩家 来源:今日头条 作者:太平洋海角 2020-03-21 15:50 次阅读

一、内存占用过高

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、打开导出的堆栈信息,并全文搜索刚刚拿到的十六进制的线程号,就可以找到出问题的代码具体位置了。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10901

    浏览量

    212805
  • 内存
    +关注

    关注

    8

    文章

    3052

    浏览量

    74257
  • JAVA
    +关注

    关注

    19

    文章

    2974

    浏览量

    105045
收藏 人收藏

    评论

    相关推荐

    新加坡云服务器网络中断的常见原因有哪些

    此类问题。 服务器硬件故障:服务器本身的硬件出现问题,如CPU内存、硬盘或电源等故障,会影响服务器的正常运行,进而导致网络中断。比如硬盘损
    的头像 发表于 01-13 17:03 106次阅读

    服务器 Flexus X 实例,镜像切换与服务器压力测试

    服务器 Flexus X 压力测试 1、购买华为云 Flexus X 实例 Flexus云服务器X实例-华为云 (huaweicloud.com)   2、xshell 远程连接服务器 3、安装
    的头像 发表于 01-03 09:23 155次阅读
    云<b class='flag-5'>服务器</b> Flexus X 实例,镜像切换与<b class='flag-5'>服务器</b>压力测试

    CPU占用过高的常见原因

    排查系统问题时,CPU 飙升是一个常见的问题。
    的头像 发表于 10-23 09:33 653次阅读

    服务器cpu占用率高怎么解决

    服务器CPU占用率高是一个常见的问题,它可能会导致服务器性能下降,甚至影响用户体验。 一、了解服务器CP
    的头像 发表于 10-10 15:14 1093次阅读

    服务器cpu和台式机cpu区别

    CPU通常设计用于处理多任务和多用户操作,因此它们通常具有更多的核心和线程。 稳定性和可靠性: 服务器需要24/7不间断运行,因此服务器CPU设计时会考虑更高的稳定性和可靠性。 扩展性
    的头像 发表于 10-10 15:12 1500次阅读

    香港服务器选择CPU需要考虑的因素

    选择适合香港服务器CPU是一项细致的工作,涉及到多方面的考量。正确的选择不仅能够满足当前的业务需求,还能为未来的发展预留空间。以下是选择香港服务器CPU时需要考虑的一些重要因素:
    的头像 发表于 09-30 09:50 227次阅读

    服务器连接不上是什么原因引起的?

    服务器连接不上是一个常见的问题,常见的原因有网络连接、账户权限、安全组设置、服务器状态、端口占用、远程登录未开启、云服务器已关闭或到期、防
    的头像 发表于 09-26 11:11 261次阅读

    gpu服务器cpu服务器的区别对比,终于知道怎么选了!

    gpu服务器cpu服务器的区别主要体现在架构设计、性能特点、能耗效率、应用场景、市场定位等方面,在以上几个方面均存在显著差异。CPU服务器
    的头像 发表于 08-01 11:41 556次阅读

    揭秘服务器CPU内存与硬盘的作用

    一般服务器后面插的硬盘我们称为本地盘(安装服务器的操作系统、应用软件等)。   前面的硬盘可以用作配超融合的虚拟存储(即:在服务器上配置虚拟机的时候,一般分配前置硬盘的资源)。
    的头像 发表于 03-25 10:50 749次阅读
    揭秘<b class='flag-5'>服务器</b><b class='flag-5'>CPU</b>、<b class='flag-5'>内存</b>与硬盘的作用

    掌握服务器基础知识(CPU内存、硬盘)

    服务器是在网络中为其他客户机提供服务的高性能计算机;具有高速的CPU运算能力,能够长时间的可靠运行,有强大的I/O外部数据吞吐能力以及更好的扩展性
    的头像 发表于 03-08 15:02 2769次阅读
    掌握<b class='flag-5'>服务器</b>基础知识(<b class='flag-5'>CPU</b>、<b class='flag-5'>内存</b>、硬盘)

    站群服务器需要多大内存

    站群服务器内存需求取决于网站的数量和流量,以及服务器需要运行的应用和服务。RAKsmart小编为您整理发布站群服务器需要多大
    的头像 发表于 03-04 09:48 434次阅读

    服务器远程不上服务器怎么办?服务器无法远程的原因是什么?

    产生问题的原因,检查硬盘和服务器系统。通过日志和检查数据来确认问题出 现的原因以及如何解决。 三、端口问题 1.端口错误 找回正确的端口或更换远程端口 2.端口被扫爆 更改端口,并在防火墙禁止扫爆的IP
    发表于 02-27 16:21

    服务器内存条和普通内存条的区别

    服务器内存条和普通内存条的区别  服务器内存条和普通内存条是计算机中常见的两种
    的头像 发表于 02-19 10:19 9106次阅读

    服务器cpu和普通电脑cpu的区别

    服务器CPU和普通电脑CPU之间存在许多区别。在以下文章中,我们将详细介绍服务器CPU和普通电脑CPU
    的头像 发表于 02-01 11:14 6863次阅读