JVM系统优化实践(19):GC生产环境案例(二)

您好,这里是码农镖局CSDN博客,欢迎您来,欢迎您再来~


接昨天的问题继续来说,在高并发场景中,对象过多容易导致OOM。由于高并发导致Young GC存活对象过多,因此会有太多对象进入老年代,导致老年代也被填满,频繁触发Full GC,而老年代空间也很快被塞满。可以用图来表示:

 

 

 

 

 

因此,有限的内存中存放了过多的对象,而且大多数也都是存活的时候很容易发生OOM。而且系统本身的代码可能也存在着内存泄漏。例如,利用CGLIB动态生成类,来造成Metaspace的内存溢出。JVM的参数设置:-XX:MetaspaceSize=10M -XX:MaxMetaspaceSize=10M

然后输入如下代码:

 

运行代码后,通过jstat,会发现Metaspace数据异常。

再通过JVM栈溢出来实现OOM。JVM参数设置:-Xss1M

代码如下:

 

然后是JVM堆溢出来实现OOM。JVM参数设置:-Xms10M -Xmx10M

代码如下:

 

在一个试用kafka的超大数据量处理的案例中,架构大概是这个样子的:

 

这里面的系统隐患是:

1、一旦kafka故障,那么当前计算对应的数据必须全部驻留内存,并且一直重试等待kafka恢复;

2、计算没有停止的时候,会不停加载更多数据直到OOM。


感谢您的大驾光临!欢迎骚扰,不胜荣幸~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/26733.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2.3Listbox列表部件

2.3Listbox列表部件 创建主窗口 window tk.Tk() window.title(my window) window.geometry(200x200)创建一个label用于显示 var1 tk.StringVar() #创建变量 l tk.Label(window,bgyellow,width4,textvariablevar1) l.pack()创建一个方法用于按钮的点击事件 def print_s…

Python自动化测试基础必备知识点总结

一、自动化测试的概念 性能系统负载能力稳定性过载操作下的系统瓶颈自动化测试,使用程序代替人工,可以提高测试效率性,自动化测试能自动化使用代码模拟大量用户,让用户请求多页和多用户并发请求收集参数,并对系统负载…

FPGA实现UART协议的接收与发送

一、接收模块uart_rx.v UART协议,空闲时,TX和RX数据线都是通过上拉电阻拉高的状态,这样才能在起始位到来时检测到一个下降的边沿。 UART数据格式 uart_rx.v模块输入输出示意图 RX_start。首先,找到起始位的开始时刻RX_start&…

ElasticSearch学习(1) 基础操作

目前使用的ES版本是7,借用下其他的文档。说明下ES的存储。 ES首先是index 对应的是数据库,7以前有type的概念,7没有type的概念,也就是说现在ES7 一个库(index)只有一个表(type)。 一个表(type)可以有多行(doc) 一行(doc)有多列…

Web自动化 —— Selenium元素定位与防踩坑

1. 基本元素定位一 from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.common.by import By # selenium Service("../../chromedriver.exe") # driver webdriver.Chrome(serviceService) # driver.…

react+unittest+flask 接口自动化测试平台

目录 1 前言 2 框架 2-1 框架简介 2-2 框架介绍 2-3 框架结构 3 平台 3-1 平台组件图 1 新建用例 2 生成测试任务 3 执行并查看测试报告 3-2 用例管理 3-2-1 用例设计 3-3 任务管理 3-3-1 创建任务 3-3-2 执行任务 3-3-3 测试报告 3-3-4 邮件通知 1 前言 在现…

神经网络模型在深度学习中的作用

神经网络模型是一种模拟人脑神经元之间连接和相互作用的数学模型。它由多个神经元(节点)以层次结构相互连接而成,每个神经元通过学习权重和偏置,根据输入数据产生相应的输出。 在深度学习中,神经网络模型被广泛应用于…

【LeetCode 75】第三题(1431)拥有最多糖果的孩子

题目: 示例: 分析: 题目是简单题,也确实简单,不过示例给出的解释有些复杂,甚至有些误导.我们只需要遍历得出分配糖果之前的糖果最大值,然后再依次遍历每个孩子拥有的糖果数,若某孩子原有的糖果数加上待分配的所有糖果数大于等于分配前的糖果最大值,则给该孩子对应下标的结果置…

在After Effects 加速渲染的 21个技巧,记得收藏!

如何减少After Effects 渲染时间? 1.升级内存 减少渲染时间的一种有效方法是升级 RAM(随机存取存储器)。RAM 在渲染过程中起着至关重要的作用,因为它存储并快速访问渲染任务所需的数据。增加系统中的 RAM 量可提供更多的数据存储…

MinUv2靶场详解

MinUv2靶场详解 这个靶场我学到了.bash_history文件,每个用户都有一个名为 .bash_history 的文件,它位于用户的主目录中,默认有500行最近执行的命令。 这个靶场我用vmware是不能打开的,用virtualBox就可以,并且打开时…

Java设计模式之行为型-命令模式(UML类图+案例分析)

目录 一、基础概念 二、UML类图 三、角色设计 四、案例分析 1、基本实现 2、点餐案例 五、总结 一、基础概念 1、将一个请求封装为一个对象,使您可以用不同的请求对客户进行参数化。 2、对请求排队或记录请求日志,以及支持可撤销的操作。 3、…

用Python采用Modbus-Tcp的方式读取PLC模块数据

使用计算器得到需要的寄存器地址 这里PLC地址是83,对应的程序16进制读取地址是53 实际上由于PLC地址从1开始,所以这里实际地址应该是52,因为计算机从0开始 使用网络调试助手生成报文 使用Python中的内置函数int()。以下是将人员卡号’b’3b44’转换为十…