`

java web应用服务器CPU过高原因及解决思路

阅读更多

 

1、方法中存在读写文件流的操作,高并发时每个请求产生一个文件流,导致系统CPU急增

 

解决思路:

a、使用http://sky425509.iteye.com/admin/blogs/2031391 提到的方法,找出CPU高的java线程

b、从线程栈日志信息中,找出导致CPU高的线程方法

c、读写文件流操作移出方法中,避免每次请求都产生一个文件流

 

2、方法中使用了多线程,未使用连接池或使用了Executors.newCachedThreadPool()创建的接连池,高并发时创建出过多的后台线程

 

解决思路:

a、使用jstack命令统计出线程数量

b、找出程序中创建线程代码

c、使用Executors.newFixedThreadPool(thread_size)创建固定数量的线程池(线程数固定,无法无收),或者使用new ThreadPoolExecutor(coreSize, maxSize, 60L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>())直接构造线程池,

 

ps:ThreadPoolExecutor线程池的使用请参考另一篇博文http://sky425509.iteye.com/admin/blogs/2040794

 

3、gc线程比较费时

 

解决思路:

a、查看一下gc策略是否合理

b、用命令jmap -histo [PID] 分析是哪个类占用内存比较多,分析出可能存在内存泄露的地方

c、jvm内存调优,可使用Jconsole、visalvm、probe等工具查看java虚拟机中方法区、堆区(新生代、幸存代、老年代)、线程栈的内存分配,根据实际情况进行优化

 

4、代码中存在死循环

 

解决思路:参考问题1的处理思路

分享到:
评论

相关推荐

    JavaMelody JAVA Web项目服务器性能监控工具

    JavaMelody是一款强大的JAVA Web项目服务器性能监控工具,它能够实时、全面地监控应用程序的运行状态,帮助开发者和运维人员了解系统性能瓶颈,及时发现并解决问题。通过在Java Web应用中简单集成,JavaMelody就能...

    JAVA-WEB应用服务器调优方案.pptx

    JAVA-WEB应用服务器调优方案 本文档主要介绍了JAVA-WEB应用服务器的调优方案,涵盖了操作系统、JVM、TOMCAT服务器和NGINX反向代理等方面的优化方法。 一、 操作系统参数优化 在选择操作系统时,需要根据项目情况...

    java语言写的web服务器

    Java语言编写的Web服务器是一种基于Java技术实现的服务器软件,用于托管Web应用程序并处理HTTP请求。在本项目中,开发者使用Java编程语言构建了一个能够响应HTTP请求并返回HTML页面的简单Web服务器。以下是对这个...

    基于Java应用的高并发高可用集群服务器的设计与实现_王瑛.pdf

    【基于Java应用的高并发高可用集群服务器设计与实现】 在当今互联网高度发达的时代,构建一个稳定、高效、可扩展的服务器集群对于任何单位或企业来说都是至关重要的。本文主要探讨了如何利用Java应用程序构建一个高...

    一次因Java应用造成CPU过高的排查实践过程

    在Java应用开发中,CPU过高通常是一个棘手的问题,它可能导致服务器性能急剧下降,甚至影响整个系统的稳定性。本文将深入探讨一次由于Java应用导致CPU占用过高的排查实践过程。 首先,当发现应用CPU使用率异常时,...

    嵌入式WEB服务器及远程测控应用详解V0.1

    ### 嵌入式WEB服务器及远程测控应用详解 #### 一、嵌入式WEB服务器概述 **嵌入式WEB服务器**是一种专门为嵌入式系统设计的小型化WEB服务器,用于实现远程监控和管理的功能。它通常运行于资源受限的设备上,如微...

    JavaMelody能够监测Java或Java EE应用程序服务器.rar

    JavaMelody 能够监测Java或Java EE应用程序服务器,并以图表的方式显示:Java内存和Java CPU使用情况,用户Session数量,JDBC连接数,和http请求、sql请求、jsp页面与业务接口方法(EJB3、Spring、 Guice)的执行...

    基于Java+web的在线Java编辑器.pdf

    1. **实验环境**:编辑器可以在多平台环境中运行,如Windows 10和Ubuntu 18.04,依赖JDK 11和Spring Boot作为Web服务器。此外,可能使用Python3作为辅助工具。 2. **应用场景**:在线Java编辑器不仅适合编程初学者...

    金蝶应用服务器的安装部署

    金蝶应用服务器是企业级的信息管理系统,主要用于支持企业的业务流程和服务。它的安装部署是一个关键步骤,确保系统的稳定运行。在本文中,我们将深入探讨金蝶应用服务器的安装和部署过程,以及相关的源码管理和工具...

    Java Web应用开发 01 学习指南.doc

    Java Web应用开发是软件技术专业中一门重要的课程,主要针对基于Java的Web应用程序开发,旨在提升学生的JSP技术应用能力,以及培养良好的编程规范和职业习惯。本课程要求学习者具备Java编程、页面设计和数据库设计的...

    nginx高性能web服务器详解

    Nginx是一款开源、高性能、轻量级的Web服务器/反向代理服务器,广泛应用于互联网和企业级应用中。它的设计目标是高并发、低内存占用,使得Nginx在处理静态内容和作为反向代理时表现出色。本文将深入探讨Nginx的核心...

    嵌入式web服务器及远程测控应用详解v0.1

    ### 嵌入式Web服务器及远程测控应用详解 #### 概述 嵌入式Web服务器技术在现代远程监控和测控系统中扮演着关键角色,尤其在核辐射实验等高风险环境下,其实时性、可靠性和易用性优势显著。通过普通浏览器即可实现...

    常用的应用服务器的区别

    在IT行业中,应用服务器是支撑企业级Web应用程序运行的核心组件,它们为开发人员提供了一个平台,以便部署和管理他们的服务。本篇文章将深入探讨两个常用的应用服务器——Jboss和Tomcat之间的区别,以及它们各自的...

    Java web Service性能监视

    Java Web Service性能监视是针对基于Java的Web服务应用程序的性能监控过程,主要目的是确保系统高效稳定运行,并在问题出现时能够快速定位和解决。在大型企业如电信或移动级别公司的运营中,数据库管理员(DBA)的...

    图表技术在Java Web应用程序中的应用研究.zip

    在Java Web应用程序开发中,图表技术扮演着至关重要的角色,它能够将复杂的数据以直观、易理解的方式展示出来,帮助用户快速分析和解读信息。本文将深入探讨图表技术在这一领域的应用及其重要性。 首先,Java Web...

    多租户Web应用的CPU资源动态评估方法.pdf

    该方法应用于Java中间件服务器,能够在不直接测量CPU资源的情况下,预测和评估各租户的CPU消耗。 文章通过两个实验案例展示了该方法的效果、影响因素以及面临的挑战。实验结果显示,通过适当参数设置,该方法能够...

    JavaMelody应用监控使用指南

    JavaMelody是一款强大的Java应用程序和应用服务器监控工具,它提供了实时的数据分析,帮助开发者和运维人员了解系统的健康状况和性能指标。通过图表形式展示内存使用、垃圾回收、Session管理、JDBC连接、SQL查询、...

    深入JVM和调优+高性能并发Web服务器实现核心内幕

    《深入JVM和调优+高性能并发Web服务器实现核心内幕》这一主题涵盖了Java开发中的关键领域,包括Java虚拟机(JVM)的工作原理、性能优化以及高性能并发Web服务器的实现策略。以下是对这些知识点的详细阐述: 1. **...

    java web开发性能监测工具

    Java Web开发性能监测工具是开发者用来优化应用程序性能的关键工具,它们可以帮助我们识别并解决系统中的瓶颈,提升用户体验,以及确保服务的稳定性和高效性。在Java Web开发领域,有许多这样的工具,它们各自拥有...

    提升高并发量服务器性能解决思路.docx

    【提升高并发量服务器性能解决思路】 随着互联网业务的飞速发展,小型的HTML静态网站已无法满足大型网站的需求。大型网站,如门户网站,需要处理大量用户访问和高并发请求,这涉及到服务器性能优化的多个层面。以下...

Global site tag (gtag.js) - Google Analytics