CN113138893A - 一种解决Java Web应用报500 Internal Error的问题方法 - Google Patents
一种解决Java Web应用报500 Internal Error的问题方法 Download PDFInfo
- Publication number
- CN113138893A CN113138893A CN202110329612.5A CN202110329612A CN113138893A CN 113138893 A CN113138893 A CN 113138893A CN 202110329612 A CN202110329612 A CN 202110329612A CN 113138893 A CN113138893 A CN 113138893A
- Authority
- CN
- China
- Prior art keywords
- server
- nginx
- web server
- monitoring
- condition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000012544 monitoring process Methods 0.000 claims abstract description 27
- 238000005457 optimization Methods 0.000 claims abstract description 8
- 238000004904 shortening Methods 0.000 claims description 3
- 230000009286 beneficial effect Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 5
- 238000007405 data analysis Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Abstract
本发明公开了一种解决Java Web应用报500Internal Error的问题方法,属于软件服务安全管理技术领域。所述解决方法包括以下步骤:步骤一:监控负载均衡服务器Nginx的会话数情况;步骤二:监控Web服务器的会话数情况;步骤三:监控数据库的慢SQL情况;步骤四:依据监控情况进行服务器配置或者数据库优化。本发明基于整个软件系统的逻辑架构,根据其逻辑层级分类,从各种服务器的多个关键指标切入,对软件服务运行情况进行全方位分析,提高问题定位的准确性;有助于提高问题定位的高效性;对Nginx,Web服务器及数据库服务器采用的监控手段具有强可操作性,有助于提高问题定位便利性。
Description
技术领域
本发明涉及一种解决Java Web应用报500 Internal Error的问题方法,属于软件服务安全管理技术领域。
背景技术
企业级应用系统虽然会因为业务不同有很大的差异,但是不同的业务架构之间,会存在许多共同点,它们会遵守相同的架构原则,对于一个Java Web应用,其完整的架构体系自底而上大体如下:
1.冯诺依曼体系架构;
2.操作系统及编程语言;
3.中间件类基础软件,如Nginx、Oracle、MySQL、Tomcat等;
4.应用程序框架及各类基础库;
5.业务架构;
从底层的操作系统,到上层的各种基础软件,以及用户量访问并发量,对整个应用系统都有着重要的影响,如果某一环节出现问题,可能会影响整个系统正常使用,严重时会导致系统的崩溃,当遇到这种紧急情况时,就需要一种快速定位及解决问题的方法。
发明内容
本发明的目的是提出一种解决Java Web应用报500 Internal Error的问题方法,以解决现有技术中存在的问题。
一种解决Java Web应用报500 Internal Error的问题方法,解决方法包括以下步骤:
步骤一:监控负载均衡服务器Nginx的会话数情况;
步骤二:监控Web服务器的会话数情况;
步骤三:监控数据库的慢SQL情况;
步骤四:依据监控情况进行Nginx、Tomcat服务器配置或者数据库优化。
进一步的,在步骤一中,具体的,查看负载均衡服务器nginx请求数及错误日志文件,修改Nginx配置文件,在默认主机里面加上location参数配置。
进一步的,在步骤一中,具体的,还包括:如果监控到负载均衡服务器Nginx接收到的用户访问请求数超过负载均衡服务器Nginx配置文件中配置的可提供请求数,则修改负载均衡服务器Nginx配置文件,满足用户访问的最大请求数。
进一步的,在步骤二中,具体的,查看Web服务器的运行情况,确认连接数是否存在瓶颈,如果是,则修改Web服务器配置接数参数或者增加负载均衡的Web服务器节点;否则,通过访问Web服务器的管理平台,监控每个节点jvm使用情况、客户请求最大线程数、当前线程池的线程数、访问服务器这个点处于busy状态的线程。
进一步的,在步骤三中,还包括:将Web服务器当前的连接数与Web服务器配置的连接数进行比对,如果达到配置的连接数,则通过修改Web服务器配置的连接数参数或者增加负载均衡的Web服务器节点进行解决。
进一步的,在步骤三中,具体的,查看数据库连接数是否存在长时间执行的会话,找到对应执行语句并进行优化。
进一步的,在步骤三中,还包括:按照监控数据库服务器的慢SQL,针对查询慢的SQL进行优化,缩短SQL执行时间,使Web服务器快速释放连接;同时,针对更新慢的SQL通过创建主键或者批处理更新的方式进行优化,缩短SQL执行时间,使Web服务器快速释放连接。
进一步的,Web服务器为应用服务器Tomcat。
本发明的主要优点是:
1、本发明基于整个软件系统的逻辑架构,根据其逻辑层级分类,从各种服务器的多个关键指标切入,对软件服务运行情况进行全方位分析,提高问题定位的准确性。
2、本发明对Nginx,Tomcat及数据库服务器运行情况采用的分析方法,有助于提高问题定位的高效性。
3、本发明对Nginx,Tomcat及数据库服务器采用的监控手段具有强可操作性,有助于提高问题定位便利性。
附图说明
图1是增值税进销数据分析监控系统的系统框架图;
图2是本发明的一种解决Java Web应用报500 Internal Error的问题方法的方法流程图;
图3是Nginx服务器错误日志输出文件界面示意图;
图4是应用服务器Tomcat的管理平台界面示意图;
图5是数据库服务器会话管理界面示意图。
具体实施方式
下面将结合本发明实施例中的附图对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本实施例是针对河北省增值税进销数据分析监控系统由于用户访问量激增,导致正式系统崩溃,无法正常使用,出现500 Internal Error异常的一种快速定位及解决问题的方法。该方法首先要我们找到系统中每个组件(含应用服务器、数据库服务器)的监控方法。
该系统具体出现的具体问题如下:
在河北省增值税进销数据分析监控系统中新增风险任务审批功能,从系统下发一批风险任务需要各级税务机关进行核查,而风险任务量大,要求完成时间紧急,造成系统用户访问量急剧增加,用户在使用过程中,经常跳转到500 Internal Error错误页面,用户无法完成正常的风险任务处理,满意度降低。
该系统的架构图参照图1所示,系统使用Java开发,部署在Linux操作系统,系统负载均衡服务器使用Nginx,以iphash的方式进行访问分发,实现负载均衡,应用服务器使用Tomcat8,数据库服务器使用Oracle11g。
在出现500 Internal Error问题开始时,不确定问题出在哪,需要首先针对系统架构的各个节点找到合理、准确的监控方法,确认系统瓶颈,有针对性的解决问题。
出现该异常的原因总结为两类:
1、用户访问量大,而应用服务器(含Nginx、Tomcat等)配置的连接数不能支撑这么大的访问连接数,这一类问题是因为Nginx或者集群中单个节点配置的连接数不足;
2、应用服务器部署的程序存在问题,比如数据库查询慢或更新慢等造成每次用户发起请求后,连接不能释放,造成应用服务器连接数一直累积,最终导致服务器崩溃而不能再对外提供服务。
本实施例从系统CPU、内存、网络、磁盘、JVM、业务日志、外部连接服务等指标对系统进行全方位的分析诊断。
本实施例提出了一种解决Java Web应用报500 Internal Error的问题方法,所述解决方法包括以下步骤:
步骤一:监控负载均衡服务器Nginx的会话数情况;
步骤二:监控应用服务器Tomcat的会话数情况;
步骤三:监控数据库的慢SQL情况;
步骤四:依据监控情况进行服务器配置或者数据库优化。
进一步的,在步骤一中,具体的,查看负载均衡服务器nginx请求数及错误日志文件,修改配置nginx配置文件,在默认主机里面加上location。
具体的,修改配置nginx配置文件,在默认主机里面加上location,如下所示:
通过浏览器访问配置的监控地址,获得以下数据:
Active connections:2
server accepts handled requests
202479 202479 1920887
Reading:0Writing:1Waiting:1
参数说明:
1、Active connections:与后端建立的服务连接数;
2、server accepts handled requests:其中server表示nginx启动到现在共处理了多少个连接,accepts表示nginx启动到现在共处理了多少个连接,handled表示nginx启动到现在共处理了多少个连接;
3、Reading:nginx读取到客户端的Header信息数;
4、Writing:nginx返回到客户端的Header信息数;
5、Waiting:开启Keep-alive的情况下,这个值等于Active-(Reading+Writing)。表示nginx已经处理完成,正在等候下次一次请求的连接数。
参照图3所示,参看nginx错误日志文件error.log。
进一步的,在步骤一中,具体的,还包括:如果监控到负载均衡服务器Nginx接收到的用户访问请求数超过负载均衡服务器Nginx配置文件中配置的可提供请求数,则修改负载均衡服务器Nginx配置文件,满足用户访问的最大请求数。
具体的,我们在解决问题过程中发现,Nginx接到的访问请求数达到2000以上,而运行在Windows操作系统下的Nginx,配置连接数即使超过1024个,而实际能够接收并处理的最大连接数也不会超过1024,针对此情况需要修改Windows操作系统的注册表参数,正常修改该参数后,Nginx对外提供的最大连接数可以超过1024个。
进一步的,参照图4所示,在步骤二中,具体的,查看应用服务器Tomcat的运行情况,确认连接数是否存在瓶颈:通过访问应用服务器Tomcat的管理平台,监控每个节点jvm使用情况、客户请求最大线程数(maxThreads)、当前线程池的线程数(Current threadcount)、访问服务器这个点处于busy状态的线程(Current thread busy)。
进一步的,在步骤三中,将应用服务器Tomcat当前的连接数与应用服务器Tomcat配置的连接数进行比对,如果达到配置的连接数,则通过修改应用服务器Tomcat配置的连接数参数或者增加负载均衡的Tomcat节点进行解决。
具体的,我们在解决问题过程中发现,部分Tomcat的连接数迅速达到配置的最大连接数150,将链接数进行修改为300,仍迅速达到配置的最大连接数。此时,定位问题原因从Tomcat转移到Java程序编码逻辑和数据库服务器性能优化。
进一步的,参照图5所示,在步骤三中,具体的,查看数据库连接数是否存在长时间执行的会话,找到对应查询语句并进行优化。
进一步的,在步骤三中,还包括:按照监控数据库服务器的慢SQL,针对查询慢的SQL进行优化,缩短SQL执行时间,使应用服务器Tomcat快速释放连接;同时,针对更新慢的SQL通过创建主键或者批处理更新的方式进行优化,缩短SQL执行时间,使应用服务器快速释放连接。
具体的,按上述步骤依次采集系统运行参数,包括分析应用服务器的CPU,内存,IO及磁盘性能处于正常状态,是否存在资源不足的问题,java JVM是否存在内存不足或者溢出的问题,数据库查询会话是否超出正常值,是否存在慢SQL,Tomcat服务器连接数是否设置过小,导致连接数不够,Nginx服务器是否正常,连接数是否满足当前的并发量,从而快速发现问题,并解决。
Claims (8)
1.一种解决Java Web应用报500Internal Error的问题方法,其特征在于,所述解决方法包括以下步骤:
步骤一:监控负载均衡服务器Nginx的会话数情况;
步骤二:监控Web服务器的会话数情况;
步骤三:监控数据库的慢SQL情况;
步骤四:依据监控情况进行Nginx、Tomcat服务器配置或者数据库优化。
2.根据权利要求1所述的一种解决Java Web应用报500Internal Error的问题方法,其特征在于,在步骤一中,具体的,查看负载均衡服务器nginx请求数及错误日志文件,修改Nginx配置文件,在默认主机里面加上location参数配置。
3.根据权利要求2所述的一种解决Java Web应用报500Internal Error的问题方法,其特征在于,在步骤一中,具体的,还包括:如果监控到负载均衡服务器Nginx接收到的用户访问请求数超过负载均衡服务器Nginx配置文件中配置的可提供请求数,则修改负载均衡服务器Nginx配置文件,满足用户访问的最大请求数。
4.根据权利要求1所述的一种解决Java Web应用报500Internal Error的问题方法,其特征在于,在步骤二中,具体的,查看Web服务器的运行情况,确认连接数是否存在瓶颈,如果是,则修改Web服务器配置接数参数或者增加负载均衡的Web服务器节点;否则,通过访问Web服务器的管理平台,监控每个节点jvm使用情况、客户请求最大线程数、当前线程池的线程数、访问服务器这个点处于busy状态的线程。
5.根据权利要求4所述的一种解决Java Web应用报500Internal Error的问题方法,其特征在于,在步骤三中,还包括:将Web服务器当前的连接数与Web服务器配置的连接数进行比对,如果达到配置的连接数,则通过修改Web服务器配置的连接数参数或者增加负载均衡的Web服务器节点进行解决。
6.根据权利要求1所述的一种解决Java Web应用报500Internal Error的问题方法,其特征在于,在步骤三中,具体的,查看数据库连接数是否存在长时间执行的会话,找到对应执行语句并进行优化。
7.根据权利要求6所述的一种解决Java Web应用报500Internal Error的问题方法,其特征在于,在步骤三中,还包括:按照监控数据库服务器的慢SQL,针对查询慢的SQL进行优化,缩短SQL执行时间,使Web服务器快速释放连接;同时,针对更新慢的SQL通过创建主键或者批处理更新的方式进行优化,缩短SQL执行时间,使Web服务器快速释放连接。
8.根据权利要求1、4、5、7任一项的所述的一种解决Java Web应用报500InternalError的问题方法,其特征在于,所述Web服务器为应用服务器Tomcat。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110329612.5A CN113138893A (zh) | 2021-03-26 | 2021-03-26 | 一种解决Java Web应用报500 Internal Error的问题方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110329612.5A CN113138893A (zh) | 2021-03-26 | 2021-03-26 | 一种解决Java Web应用报500 Internal Error的问题方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113138893A true CN113138893A (zh) | 2021-07-20 |
Family
ID=76810536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110329612.5A Pending CN113138893A (zh) | 2021-03-26 | 2021-03-26 | 一种解决Java Web应用报500 Internal Error的问题方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113138893A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1968283A (zh) * | 2006-05-12 | 2007-05-23 | 华为技术有限公司 | 一种网络管理的系统和方法 |
CN102217247A (zh) * | 2009-12-24 | 2011-10-12 | 华为技术有限公司 | 实现多Web应用请求调度的方法、装置及系统 |
CN104219080A (zh) * | 2013-06-05 | 2014-12-17 | 北京齐尔布莱特科技有限公司 | 一种网站错误页日志记录方法 |
CN106603695A (zh) * | 2016-12-28 | 2017-04-26 | 北京奇艺世纪科技有限公司 | 一种每秒查询率的调整方法及装置 |
CN109901969A (zh) * | 2019-02-01 | 2019-06-18 | 广东安可云科技有限公司 | 一种集中监控管理平台的设计方法及装置 |
CN110569060A (zh) * | 2019-09-19 | 2019-12-13 | 山东浪潮通软信息科技有限公司 | 一种基于微服务框架的高并发实现方法 |
-
2021
- 2021-03-26 CN CN202110329612.5A patent/CN113138893A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1968283A (zh) * | 2006-05-12 | 2007-05-23 | 华为技术有限公司 | 一种网络管理的系统和方法 |
CN102217247A (zh) * | 2009-12-24 | 2011-10-12 | 华为技术有限公司 | 实现多Web应用请求调度的方法、装置及系统 |
CN104219080A (zh) * | 2013-06-05 | 2014-12-17 | 北京齐尔布莱特科技有限公司 | 一种网站错误页日志记录方法 |
CN106603695A (zh) * | 2016-12-28 | 2017-04-26 | 北京奇艺世纪科技有限公司 | 一种每秒查询率的调整方法及装置 |
CN109901969A (zh) * | 2019-02-01 | 2019-06-18 | 广东安可云科技有限公司 | 一种集中监控管理平台的设计方法及装置 |
CN110569060A (zh) * | 2019-09-19 | 2019-12-13 | 山东浪潮通软信息科技有限公司 | 一种基于微服务框架的高并发实现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8621278B2 (en) | System and method for automated solution of functionality problems in computer systems | |
US8572437B2 (en) | Multi-platform test automation enhancement | |
US9026655B2 (en) | Method and system for load balancing | |
EP2866408A1 (en) | System and method for processing updates to installed software on a computer system | |
CN109543891B (zh) | 容量预测模型的建立方法、设备及计算机可读存储介质 | |
CA3128540C (en) | Cache system hotspot data access method, apparatus, computer device and storage medium | |
US20240054128A1 (en) | Automatic database query load assessment and adaptive handling | |
CA3147339C (en) | Method and device for writing blockchain data in parallel, computer equipment and storage medium thereof | |
CN112306383B (zh) | 执行作业的方法、计算节点、管理节点及计算设备 | |
CN113157411B (zh) | 一种基于Celery的可靠可配置任务系统及装置 | |
CN114090113B (zh) | 数据源处理插件动态加载的方法、装置、设备及存储介质 | |
US20230342494A1 (en) | Data anonymization method and apparatus, and storage system | |
CN113138893A (zh) | 一种解决Java Web应用报500 Internal Error的问题方法 | |
CN108345541A (zh) | 一种程序检测方法及系统 | |
CN115190010A (zh) | 基于软件服务依赖关系的分布推荐方法和装置 | |
CN113986537A (zh) | 中间件管理方法及装置 | |
CN114020446A (zh) | 一种跨多引擎的路由处理方法、装置、设备及存储介质 | |
CN112711606A (zh) | 数据库访问方法、装置、计算机设备和存储介质 | |
CN112181831A (zh) | 基于关键词的脚本性能校验方法、装置、设备及存储介质 | |
CN116842299B (zh) | 动态数据访问风险控制系统与方法 | |
CN113076178B (zh) | 报文存储方法、装置及设备 | |
CN116170514B (zh) | 一种用于中台业务的服务策略调用实现方法及系统 | |
CN112817699B (zh) | 一种批量部署的自动化性能测试方法及终端装置 | |
CN109901997B (zh) | 金融系统升级方法及装置、电子设备、存储介质 | |
CN110286937B (zh) | 一种分布式软件运行的方法及其系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210720 |
|
RJ01 | Rejection of invention patent application after publication |