当前位置: 首页 > news >正文

记一次线上Tomcat服务内存溢出的问题处理

背景:JavaWeb项目部署在Tomcat服务器上,服务器用的Windows。

问题表现:系统出现偶发性无法访问(隔几天就会在早上无法访问)

Tomcat的日志catalina中,有如下报错信息。

java.lang.OutOfMemoryError: GC overhead limit exceeded
通过查询资料,显示该错误表示 Java 虚拟机(JVM)花费了大量时间进行垃圾回收(GC),但回收的内存却很少,达到了一个限制,从而抛出该异常。这通常意味着应用程序存在内存泄漏或者内存使用效率极低的问题。

问题排查过程:

一开始通过重启Tomcat解决这个问题,后来隔一段时间就会出现这种情况,发现不对劲,此时意识到问题的严重性。

开始排查这个问题,因为项目中有定时任务,每天凌晨2点会执行。想到的是不是这个定时程序中内存出现了泄漏,没有及时关闭文件流或者链接什么的。

沿着这个思路,开始看定时任务每天执行的日志。

发现有个定时任务的日志,只有开始日志,没有看到结束的日志。

推测程序应该是在执行这个定时任务的过程中出现了问题,开始逐步调试这个任务的代码,这个任务的主要工作是把本地的文件转成pdf格式的文件,然后调用第三方接口,把pdf文件传输给对方。

通过代码调试,发现程序走到这个方法的时候,进程会卡死在这里,不会继续往下走,即使等待了很久也不会继续执行代码,基本上定位到问题发生的地方了。

这个方法是把ppt格式文件转为pdf格式文件。

执行save方法时,如果文件有10M大小,那么就会卡死这这个地方。

解决问题:

又查了一下资料,可以通过改变Tomcat内存的大小来解决,下面是一些建议:

因为服务器上的Tomcat是以服务的形式安装的,找到Tomcat配置页面:

最大内存根据实际情况来配置即可。

修改完点击应用,确定,再重启Tomcat服务器。

问题解决啦!

相关文章:

记一次线上Tomcat服务内存溢出的问题处理

背景:JavaWeb项目部署在Tomcat服务器上,服务器用的Windows。 问题表现:系统出现偶发性无法访问(隔几天就会在早上无法访问) Tomcat的日志catalina中,有如下报错信息。 java.lang.OutOfMemoryError: GC ov…...

nist关于rsa中p,q的要求

NIST.FIPS.186-4 美国国家标准与技术研究院(National Institute of Standards and Technology,NIST) FIPS,美国联邦信息处理标准(Federal Information Processing Standard) Criteria for IFC Key Pairs B.3.1 Crite…...

Vue3项目如何使用TailWind CSS保姆级教程

‌一、简单介绍一下TailWind CSS TailWind CSS是一个实用工具优先的 CSS 框架,它通过提供大量的原子化 CSS 类,允许开发者通过组合这些类来快速构建界面,而无需编写额外的 CSS 文件。这种设计理念使得开发过程更加直观和高效&#xff…...

NO.22十六届蓝桥杯备战|一维数组|七道练习|冒泡排序(C++)

B2093 查找特定的值 - 洛谷 题⽬要求下标是从0开始的,和数组的下标是吻合的,存放数据应该从下标0开始n的取值范围是1~10000数组中存放的值的绝对值不超10000,说明int类型就⾜够了找到了输出下标,找不到要输出-1,这⼀点…...

Mysql的索引失效

MySQL 的索引失效指的是:尽管在表上建立了索引,但在某些查询场景下,MySQL 优化器却没有利用这些索引,从而导致查询走了全表扫描,性能大大降低。下面详细说明几种常见的导致索引失效的情况及其原因: 1. 对索…...

现代前端框架渲染机制深度解析:虚拟DOM到编译时优化

引言:前端框架的性能进化论 TikTok Web将React 18迁移至Vue 3后,点击响应延迟降低42%,内存占用减少35%。Shopify采用Svelte重构核心交互模块,首帧渲染速度提升580%。Discord在Next.js 14中启用React Server Components后&#xf…...

set 和 map 的左右护卫 【刷题反思】

1. 相近的营业额 1.1 题目 题目描述&#xff1a;我们定义&#xff0c;一天营业额的最小波动 min { | 该天以前某一天的营业额 - 该天营业额 | } 特别的&#xff0c;第一天的营业额最小波动为第一天的营业额 输入描述&#xff1a;第一行 n &#xff08;n < 32767&#xf…...

【Linux高级IO】多路转接(poll epoll)

目录 1. poll 2. epoll 2.1 epoll_ctl 2.2 epoll_wait 2.3 epoll原理 2.4 epoll的工作模式 2.5 epoll的惊群效应 使用建议 总结 1. poll poll也是实现 I/O 多路复用的系统调用&#xff0c;可以解决select等待fd上限的问题&#xff0c;将输入输出参数分离&#xff0c;不需要…...

Linux上用C++和GCC开发程序实现两个不同PostgreSQL实例下单个数据库中多个Schema稳定高效的数据迁移到其它PostgreSQL实例

设计一个在Linux上运行的GCC C程序&#xff0c;同时连接三个不同的PostgreSQL实例&#xff0c;其中两个实例中分别有两个数据库中多个Schema的表结构分别与第三实例中两个数据库中多个Schema个结构完全相同&#xff0c;同时复制两个实例中两个数据库中多个Schema里的所有表的数…...

Linux下的网络通信编程

在不同主机之间&#xff0c;进行进程间的通信。 1解决主机之间硬件的互通 2.解决主机之间软件的互通. 3.IP地址&#xff1a;来区分不同的主机&#xff08;软件地址&#xff09; 4.MAC地址&#xff1a;硬件地址 5.端口号&#xff1a;区分同一主机上的不同应用进程 网络协议…...

Windows在多网络下指定上网接口

Windows在多网络下指定上网接口 一、说明 设备情况&#xff1a;win11&#xff0c;同时连接了有线网和WLAN&#xff0c;有线网连接着NAS必须保持连接。需求&#xff1a;有些情况时&#xff0c;有线网无网络而WLAN有网&#xff0c;但系统仍走着有线导致无法上网。 二、方法 过…...

网络安全员证书

软考网络安全员证书&#xff1a;信息安全领域的黄金标准 随着信息技术的飞速发展&#xff0c;网络安全问题日益凸显&#xff0c;网络安全员的需求也日益增加。软考网络安全员证书作为信息安全领域的黄金标准&#xff0c;对于网络安全从业者来说具有重要意义。本文将详细介绍…...

CMU15445(2023fall) Project #4 - Concurrency Control踩坑历程

把树木磨成月亮最亮时的样子&#xff0c; 就能让它更快地滚下山坡&#xff0c; 有时会比骑马还快。 完整代码见&#xff1a; SnowLegend-star/CMU15445-2023fall: Having Conquered the Loftiest Peak, We Stand But a Step Away from Victory in This Stage. With unwavering…...

医疗AR眼镜:FPC如何赋能科技医疗的未来之眼?【新立电子】

随着科技的飞速发展&#xff0c;增强现实&#xff08;AR&#xff09;技术在医疗领域的应用逐渐成为焦点。医疗AR眼镜作为一种前沿的智能设备&#xff0c;正在为医疗行业带来深刻的变革。它不仅能够提升医生的工作效率&#xff0c;还能改善患者的就医体验&#xff0c;成为医疗科…...

Python从0到100(八十九):Resnet、LSTM、Shufflenet、CNN四种网络分析及对比

前言&#xff1a; 零基础学Python&#xff1a;Python从0到100最新最全教程。 想做这件事情很久了&#xff0c;这次我更新了自己所写过的所有博客&#xff0c;汇集成了Python从0到100&#xff0c;共一百节课&#xff0c;帮助大家一个月时间里从零基础到学习Python基础语法、Pyth…...

服务器迁移记录【腾讯云-->阿里云】

准备工作 压缩/root /usr/local/nginx /data三个目录到zip&#xff0c;并下载到本地。 zip root.zip /root zip nginx.zip /usr/local/nginx zip data.zip /datasz root.zip sz nginx.zip sz data.zip连接mysql数据库&#xff0c;导出数据库结构与数据到dzs_mysql.sql 安装l…...

序列化选型:字节流抑或字符串

序列化既可以将对象转换为字节流&#xff0c;也可以转换为字符串&#xff0c;具体取决于使用的序列化方式和场景。 转换为字节流 常见工具及原理&#xff1a;在许多编程语言中&#xff0c;都有将对象序列化为字节流的机制。例如 Python 中的 pickle 模块、Java 中的对象序列化…...

面向实时性的超轻量级动态感知视觉SLAM系统

一、重构后的技术架构设计(基于ROS1 ORB-SLAM2增强) #mermaid-svg-JEJte8kZd7qlnq3E {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-JEJte8kZd7qlnq3E .error-icon{fill:#552222;}#mermaid-svg-JEJte8kZd7qlnq3E .…...

4-3自定义加载器,并添加功能

一、自定义类加载器的实现步骤 ​继承ClassLoader类​ 自定义类加载器需继承java.lang.ClassLoader&#xff0c;并选择性地重写以下方法&#xff1a; ​findClass(String name)&#xff1a;核心方法&#xff0c;用于根据类名查找并加载类的字节码。需从自定义路径&#xff08…...

Python Scrapy爬虫面试题及参考答案

目录 简述 Scrapy 框架的基本工作流程,并说明各组件的作用 Scrapy 中的 Spider、CrawlSpider 和 Rule 的作用及区别? 如何通过 Scrapy Shell 快速调试页面解析逻辑? Scrapy 的 start_requests 方法与 start_urls 的关系是什么? 解释 Scrapy 的 Request 和 Response 对象…...

vscode里如何用git

打开vs终端执行如下&#xff1a; 1 初始化 Git 仓库&#xff08;如果尚未初始化&#xff09; git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

手游刚开服就被攻击怎么办?如何防御DDoS?

开服初期是手游最脆弱的阶段&#xff0c;极易成为DDoS攻击的目标。一旦遭遇攻击&#xff0c;可能导致服务器瘫痪、玩家流失&#xff0c;甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案&#xff0c;帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中&#xff0c;可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行&#xff0c;可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令&#xff0c;并忽略错误 rm somefile…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上&#xff0c;看到基于小智 AI DIY 玩具的演示&#xff0c;感觉有点意思&#xff0c;想着自己也来试试。 如果只是想烧录现成的固件&#xff0c;乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外&#xff0c;还提供了基于网页版的 ESP LA…...

如何为服务器生成TLS证书

TLS&#xff08;Transport Layer Security&#xff09;证书是确保网络通信安全的重要手段&#xff0c;它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书&#xff0c;可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

Java 加密常用的各种算法及其选择

在数字化时代&#xff0c;数据安全至关重要&#xff0c;Java 作为广泛应用的编程语言&#xff0c;提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景&#xff0c;有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...