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相同,以避免每次垃圾回收完成 ...
随机推荐
- 云原生批量计算引擎 Volcano社区v1.8.0版本正式发布
本文分享自华为云社区<云原生批量计算引擎 Volcano社区v1.8.0版本正式发布>,作者: 云容器大未来. 北京时间2023年8月17日,Volcano 社区 v1.8.0 版本正式发 ...
- 有了这个算法,图像上文字擦除再也用不上PS了
摘要:本文介绍几篇关于自然场景下文字擦除的论文工作. 图像文字擦除方法 给定一幅自然场景图像,只将图像中文字区域抹去而不改动其他区域像素值的方法称为文字擦除算法.该方法在隐私保护,身份信息篡改,数据增 ...
- makefile:带你了解一种常用于GNU gcc编译的工具语言
摘要:该文章主要介绍makefile,一种常用语GNU gcc编译的工具语言,同时LiteOS也是利用该文件对工程项目进行make构建生成执行文件的. LiteOS源码中使用makefile进行文件的 ...
- CWE发布2021年最危险的25种软件缺陷
摘要:CWE最危险的25种软件缺陷,是NVD过去两年中遇到的最常见和影响最大的问题指示性的列表. CWE Top25 可以帮助开发人员.测试人员和用户,以及项目经理.安全研究人员和教育工作者深入了解最 ...
- 带你读顶会论文丨基于溯源图的APT攻击检测
摘要:本次分享主要是作者对APT攻击部分顶会论文阅读的阶段性总结,将从四个方面开展. 本文分享自华为云社区<[论文阅读] (10)基于溯源图的APT攻击检测安全顶会总结>,作者:eastm ...
- max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
elasticsearch安装后启动时候,遇到此问题 问题翻译过来就是:elasticsearch用户拥有的可创建文件描述的权限太低,至少需要65536: 解决办法: 切换到root用户修改 vim ...
- Java 17 从 Solon 开始入手,v1.10.0
相对于 Spring Boot 和 Spring Cloud 的项目: 启动快 5 - 10 倍. (更快) qps 高 2- 3 倍. (更高) 运行时内存节省 1/3 ~ 1/2. (更少) 打包 ...
- Android RxJava 异常时堆栈信息显示不全(不准确),解决方案都在这里了
现象 大家好,我是徐公,今天为大家带来的是 RxJava 的一个血案,一行代码 return null 引发的. 前阵子,组内的同事反馈说 RxJava 在 debug 包 crash 了,捕获到的异 ...
- PS CJ37/CJ38 增加和返回预算
一.预算补充CJ37/预算返回CJ38 二.补充预算CJ37,点击保存 预算返回CJ38,点击保存 三.代码示例 预算补充代码 "------------------------------ ...
- Codeforces 670C (离散化入门题)
原题链接:https://codeforces.com/problemset/problem/670/C 题目大意: 有 n 个人,每人会且仅会一种语言. (n ≤ 2e5) 语言有各自的编号(≤ 1 ...