JVM启动参数脚本的再学习与研究
JVM启动参数脚本的再学习与研究
摘要
学无止境
前段时间一直再研究JVM参数调优.
但是最近也在想不应该仅研究如何调优.
因为不管怎么设置, 总有猪队友会把环境搞崩.
所以应该想办法在无人值守的情况下能够启动服务.
systemd这种主流方式有时候不靠谱, 进程可能判断生死不准确.
所以还是想通过JVM的参数进行一定程度的优化.
启动脚本的优化方式
EXTRACONFIG="-XX:+PrintSafepointStatistics -XX:PrintSafepointStatisticsCount=1 -XX:+SafepointTimeout \
-XX:SafepointTimeoutDelay=2000 -XX:+UseCountedLoopSafepoints -XX:-UseBiasedLocking \
-XX:+UnlockDiagnosticVMOptions -XX:GuaranteedSafepointInterval=0 -XX:+PrintGCApplicationStoppedTime \
-XX:+PrintGCDetails -XX:-DisableExplicitGC -XX:+PrintGC -XX:+PrintGCDateStamps -XX:-UseGCOverheadLimit \
-XX:+PrintGCTimeStamps -Xloggc:./dump/gclog -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./dump "
# 注意增量配置不应该直接用于生产, 此配置可以用来分析系统卡顿, STW时间较久等问题.
# safePoint 主要是打印安全点的信息.
# Print等参数可以用来打印出数据进行分析.
# GC以及GCDtails 可以展示详细的GC信息,便于分析
# HeapDump可以进行一场时堆栈的转储
# -XX:-UseGCOverheadLimit 可以抑制部分98时间内只能释放2%内存的提示, 实现fastfailue. 快速启动.
异常后处理的方法
RESTARTCONFIG="-XX:+HeapDumpOnCtrlBreak -XX:OnOutOfMemoryError="at -f /myaoo/restart.sh now +0.5 minutes;kill -9 %p;""
# 注意 虽然有网页收可以通过ctrl + break的方式抓取dump 但是我发现好像并没有效果
# 注意可以使用 OnOutOfMemoryError的方式执行脚本
# 建议是自定义脚本, 设置好路径与权限, 能够一键执行.
# 可以通过 %p 获取当前进程信息执行清理操作, 避免内存占用光了.
可以通过 yum install at -y 或者是 apt-get install at 的方式来安装 at命名 便于延时执行脚本
也可以使用 sleep的脚本来实现.
如果使用 at 脚本需要将atd服务置为可用状态
systemctl enabled atd && systemctl restart atd
免责声明
其实可以通过K8S的POD保活机制来实现服务的高可用更加方便.
手工写脚本的方式其实需要判断很多关键事项.
如果基础设施不完备的情况下,又不想每天定闹钟看预警是可以自动化来处理的.
自己博客里写的很多东西测试为主, 生产必须要经过严格测试才可以做修改.
生产是很重要的, 必须要敬畏生产,生产环境经常是: 左右天堂右手地狱.稍有不慎可能满盘皆输
成年人的世界没有简单二字, 想做好一个事情其实很难
但是搞糟他却非常容易.
希望产品不宕机,大家都可以好好睡觉.
JVM启动参数脚本的再学习与研究的更多相关文章
- NetBeansRCP-添加/修改NetBeans的JVM启动参数
NetBeans运行的速度实在是不敢恭维.还好机器配置还可以,修改其JVM启动参数命令行,以期运行的更加顺畅. 那么如何修改NetBeans IDE的JVM参数呢? 1.到NetBeans IDE的安 ...
- Eclipse jvm启动参数在哪设置
学习并转载自https://jingyan.baidu.com/article/624e7459653ca534e8ba5a26.html Java是一门非常受欢迎的编程语言,Java的开发人员多数使 ...
- JVM系统属性 OS环境变量 JVM启动参数
JVM系统属性(System Properties) 1.不支持通过文件查看和设置系统属性 2.可以通过JDK自带的工具jvisulavm.exe查看 3.可以在Java程序中使用API来查看系统属性 ...
- JVM启动参数小结
一:JVM启动参数共分为三类: 其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容: 其二是非标准参数(-X),指的是JVM底层的一些配置参数, ...
- 业务系统的JVM启动参数推荐
关键业务系统的JVM启动参数推荐,原文链接请参见:http://calvin1978.blogcn.com/articles/jvmoption-2.html
- jvm启动参数设置 -Dfile.encoding=UTF-8 解决freemark乱码
今天一个spring boot应用windows跑起来后页面显示乱码,加上jvm启动参数为utf-8后,页面显示正常.
- jvm 启动参数设置(转载)
JVM启动参数 http://onlyor.iteye.com/blog/1722413 博客分类: java java java启动参数共分为三类其一是标准参数(-),所有的JVM实现都必须实现这些 ...
- JVM 启动参数,共分为3类
JVM 启动参数,共分为3类: 类别 说明 标准参数(-) 所有的JVM实现都必须实现这些参数的功能,而且向后兼容: 非标准参数(-X) 这些参数不是虚拟机规范规定的.因此,不是所有VM的实现(如:H ...
- 【java】java获取JVM启动参数 System.getProperty
java获取JVM启动参数 System.getProperty取 -D后的key即可 public class Test { public static void main(String[] arg ...
- Java JVM 启动参数
JVM 启动参数 java -Xmx4096m // 设置JVM最大可用内存为4096m. -Xms4096m // 设置JVM促使内存为4096m.此值可以设置与-Xmx相同,以避免每次垃圾回收完成 ...
随机推荐
- 一文带你认识AscendCL
摘要:AscendCL(Ascend Computing Language,昇腾计算语言)是昇腾计算开放编程框架,是对底层昇腾计算服务接口的封装. 本文分享自华为云社区<[CANN文档速递09期 ...
- 一键自动修改和翻新OC源码,解决苹果审核4.3和马甲问题
ipaguard 自动修改/翻新/混淆/OC/iOS代码,自动替换类名,方法名 由来 网上有很多关于如何混淆iOS源码的方法,但是都不够智能,生成的方法类名要么千奇百怪,要么aaaabbbxxx这 ...
- 使用Plist编辑器——简单入门指南
本指南将介绍如何使用Plist编辑器.您将学习如何打开.编辑和保存plist文件,并了解plist文件的基本结构和用途.跟随这个简单的入门指南,您将掌握如何使用Plist编辑器轻松管理您的plis ...
- 火山引擎 DataTester:如何做 A/B 实验的假设检验
A/B 实验的核心统计学理论是(双样本)假设检验,是用来判断样本与样本.样本与总体的差异是由 抽样误差 引起还是 本质差别 造成的一种统计推断方法. 假设检验,顾名思义,是一种对自己做出的假设进行数据 ...
- 大数据 - DWD&DIM 行为数据
我们前面采集的日志数据已经保存到 Kafka 中,作为日志数据的 ODS 层,从 Kafka 的ODS 层读取的日志数据分为 3 类, 页面日志.启动日志和曝光日志.这三类数据虽然都是用户行为数据,但 ...
- Problem B - Card Constructions (构造)
题意: 你可以用图示的方法建造金字塔,但是每一次都要建最大的金字塔,问最后能建几个金字塔. 思路: 我们可以发现对于每一个金字塔都是两边增加了两天边,然后中间行数− 1 -1−1个三角形,所以就可以求 ...
- redis管道技术pipeline一 ——api
import java.io.UnsupportedEncodingException; import java.util.Set; import org.springframework.beans. ...
- SAE 2.0,让容器化应用开发更简单
云原生容器化应用托管模式的演变 云原生这个概念从提出,到壮大,再到今天的极大普及,始终处于一个不断演进和革新的过程中.云原生体系下应用的托管形态是随着企业应用架构在不断演进的.最早的应用大多是集中式. ...
- 企业如何利用 Serverless 快速扩展业务系统?
2022 年 9 月 24 日,阿里云用户组(AUG)第 12 期活动在厦门举办.活动现场,阿里云高级技术专家史明伟(花名:世如)向参会企业代表分享了<未来已来--从技术升级到降本提效>. ...
- 13、SpringBoot-配置文件里密码加密
系列导航 springBoot项目打jar包 1.springboot工程新建(单模块) 2.springboot创建多模块工程 3.springboot连接数据库 4.SpringBoot连接数据库 ...