我们在进行GC调优的过程中,经常是发现出现问题后(比如OOM或者应用长时间暂停),再进行调优的过程。能不能做到在问题出现之前,就先进行调优呢?让我们来给GC算算卦吧!
首先,我们需要拿到一些系统运行状况才能推算出GC的情况,比如:
- 系统内存大小
- 系统高峰时的TPS/QPS
- 高峰时平均每个请求的耗时
根据这些数据,就可以开始“算命”了(以下是我针对某个线上应用的推算过程):
- 系统每秒钟分配的内存大小:因为新分配的内存都是放在EdenSpace的,所以我们可以根据jstat的观测推算出这个值来(jstat -gcutil [pid] 1000)。
多次观测取Eden的差值平均(排除GC前后的),既可以算出Eden在一秒钟内的内存增长比例,再根据jmap -heap(注意在HotSpot1.6.0_20版本之前的bug)拿到Eden大小,即可推出在当前QPS下,每秒钟系统分配的内存大小
- 将每秒钟分配的内存大小/当前应用的QPS量,就推算出当前系统平均每个请求分配的内存大小
- 观测jstat在每次MinorGC后Suvivor的大小(取多次中的最大值)+从New晋升到Old的大小(OldGen的前后差值),可以近似的认为此值就是实际需要的SurvivorSpace空间,再将此值增加一定比例(为了留出一些冗余吞吐量)就得出了需要调优的SurvivorSpace。
- 根据Survivor和Eden的比例(-XX:SurvivorRatio)即可算出整个New需要多少空间。
- 估算出的EdenSpace大小/(平均每个请求分配内存的大小*系统QPS峰值),就可以推出在峰值时大概几秒钟会发生一次MinorGC。注意如果MinorGC发生的频率过快,可以考虑放大New的空间,这样就可以让一些Eden中存活的对象多活一段时间,好处是MinorGC时应该会回收更多的内存,减少新对象晋升到Old的可能;坏处是增加每次MinorGC的耗时。
这样就可以将系统的QPS和内存的分配频率、分配大小结合在一起,通过一些监控,就可以实现当QPS到达一定值时,就要准备做性能调优或对服务器扩容了。当然,系统的内存分配监控可能不是这么简单的,系统每个请求的耗时、系统版本更新、外部资源的变更等可能都会导致系统内存分配的变化,所以这种“算命”只是针对稳态系统的情况下的一种测算方法。
转载请注明出处:http://blueswind8306.iteye.com/blog/1217770
分享到:
相关推荐
集体剂量在核电厂中的预估方法是辐射防护领域里的一项重要技术,其主要目的是为了评估和控制在核电站运行、维修过程中工作人员所受的辐射剂量,确保辐射风险处于可接受的范围内。集体剂量是一种安全绩效指标,其预估...
史密斯预估补偿控制是一种广泛应用于纯滞后系统的控制方法。它通过引入一个预估补偿环节,抵消纯滞后特性所造成的影响,明显地减小超调量和加速调节过程,提高了控制质量。该方法的基本控制策略是构造一个过程参考...
根据给定对象特性设计smith预估控制器算法,并利用Matlab软件进行仿真,同时与PID算法控制算法进行比较
本篇文章将深入探讨分数阶系统、数值解法以及预估校正算法,特别是预估校正LIU方法在MATLAB环境中的应用。 首先,分数阶系统(Fractional-Order System, FOS)的阶数不再是整数,而是可以取到任何实数或复数。分数...
**史密斯预估器(Smith Predictor)**是一种在控制理论中广泛应用的预测控制器,它结合了模型预测控制(Model Predictive Control, MPC)的概念,能够处理延迟和非线性问题。在C++语言中实现史密斯预估器,可以提供...
文中提到,这些预估方法的结果与电波暗室测量结果具有较好的吻合性,而不同的频率段预估精度有所差异。 辐射干扰分为共模辐射和差模辐射。共模辐射是由于电路中不平衡导致的辐射,通常表现为电路中某点对地的电压...
1. **内存配置**:调整新生代、老年代的大小,以平衡GC频率和暂停时间。 2. **GC日志分析**:通过分析GC日志,了解GC行为,找出性能瓶颈。 3. **并行与并发设置**:调整并行GC线程数和并发GC策略,优化性能。 4. **...
基于卷积神经网络的小麦产量预估方法 本文提出了一种基于卷积神经网络的小麦产量预估方法,以解决小麦产量人工预估困难的问题。该方法利用无人机采集的小麦图片,构建了麦穗数据集,并设计了卷积神经网络识别模型,...
智能电网的电能预估及其价值分析对于优化电力分配、提升能源使用效率以及增强电力系统的稳定性和可靠性具有重要意义。以下是对这两个方面的详细探讨: 一、电能预估 电能预估是智能电网的核心功能之一,它基于大量...
总结来说,预估校准是提升广告系统效率和公平性的重要手段,阿里妈妈展示广告的校准技术经历了从基础的后处理方法到更高级的SIR算法的演进,不断优化模型预测的准确性,以满足日益复杂和变化的在线广告市场的需求。...
《利用射击诸元对GPS信号多普勒频移预估方法》是一篇关于弹道学与GPS定位系统结合的研究文章,旨在提高极高速载体(如弹丸)的GPS信号捕获速度和精度。多普勒频移是GPS定位的关键因素之一,它是由卫星和接收器之间的...
航空发动机剩余寿命预估方法基于神经网络 本文介绍了一种基于神经网络的航空发动机剩余寿命预估方法,该方法可以解决现有的航空发动机剩余寿命预估方法中模型建立困难且计算精度低的问题。该方法通过结合卷积神经...
Smith预估控制算法设计仿真实验 实验目的 在控制算法学习的基础上根据给定对象特性设计smith预估控制器算法并利用Matlab软件进行仿真实验同时与PID控制算法进行比较加深对该控制算法的掌握和理
这一章主要介绍模型的预估以及选择,介绍了三种预估方法,以及选择模型的标准。
Smith预估器是一种重要的控制系统结构,可以应用于纯滞后补偿控制。本文介绍一种精确、可用的Smith预估控制器算式,这种算式由PID模块与Smith预估模块组成。PID模块算式与G(s)模块算式由虚拟零阶保持器z变换来拟合,G(s...
标题中的“电子功用-基于阶数步进金属目标的宽频带电磁特性快速预估方法”揭示了这个主题是关于电子工程中的一项技术,特别是针对金属目标的电磁特性预测。在电子工程领域,理解物体的电磁特性对于设计天线、雷达...
一阶惯性大时滞系统是工业过程控制中的典型难题,为了获得理想的控制效果,需要将先进控制方法与传统的Smith预估器相结合。本文研究了一阶惯性大时滞系统中Smith预估器与线性自抗扰控制技术的结合设计问题,分析了...
CTR 预估模型的优化方法包括特征工程、hyperparameter 调优、模型集成等。这些方法可以帮助我们提高 CTR 预估模型的性能和效果。 6. CTR 预估模型在实际应用中的挑战 CTR 预估模型在实际应用中可能会遇到一些挑战,...