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启动参数脚本的再学习与研究的更多相关文章

  1. NetBeansRCP-添加/修改NetBeans的JVM启动参数

    NetBeans运行的速度实在是不敢恭维.还好机器配置还可以,修改其JVM启动参数命令行,以期运行的更加顺畅. 那么如何修改NetBeans IDE的JVM参数呢? 1.到NetBeans IDE的安 ...

  2. Eclipse jvm启动参数在哪设置

    学习并转载自https://jingyan.baidu.com/article/624e7459653ca534e8ba5a26.html Java是一门非常受欢迎的编程语言,Java的开发人员多数使 ...

  3. JVM系统属性 OS环境变量 JVM启动参数

    JVM系统属性(System Properties) 1.不支持通过文件查看和设置系统属性 2.可以通过JDK自带的工具jvisulavm.exe查看 3.可以在Java程序中使用API来查看系统属性 ...

  4. JVM启动参数小结

    一:JVM启动参数共分为三类:         其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容:        其二是非标准参数(-X),指的是JVM底层的一些配置参数, ...

  5. 业务系统的JVM启动参数推荐

    关键业务系统的JVM启动参数推荐,原文链接请参见:http://calvin1978.blogcn.com/articles/jvmoption-2.html

  6. jvm启动参数设置 -Dfile.encoding=UTF-8 解决freemark乱码

    今天一个spring boot应用windows跑起来后页面显示乱码,加上jvm启动参数为utf-8后,页面显示正常.

  7. jvm 启动参数设置(转载)

    JVM启动参数 http://onlyor.iteye.com/blog/1722413 博客分类: java java java启动参数共分为三类其一是标准参数(-),所有的JVM实现都必须实现这些 ...

  8. JVM 启动参数,共分为3类

    JVM 启动参数,共分为3类: 类别 说明 标准参数(-) 所有的JVM实现都必须实现这些参数的功能,而且向后兼容: 非标准参数(-X) 这些参数不是虚拟机规范规定的.因此,不是所有VM的实现(如:H ...

  9. 【java】java获取JVM启动参数 System.getProperty

    java获取JVM启动参数 System.getProperty取 -D后的key即可 public class Test { public static void main(String[] arg ...

  10. Java JVM 启动参数

    JVM 启动参数 java -Xmx4096m // 设置JVM最大可用内存为4096m. -Xms4096m // 设置JVM促使内存为4096m.此值可以设置与-Xmx相同,以避免每次垃圾回收完成 ...

随机推荐

  1. MySQL思维导图:MySQL的架构介绍

    MySQL的架构介绍(思维导图形式) MySQL简介 概述 MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性. ...

  2. Sermant重磅更新,1.3.0 release版本发布

    本文分享自华为云社区<新特性速览!Sermant重磅更新,1.3.0 release版本发布>,作者:华为云开源. Sermant社区在12月份正式发布了1.3.0 release版本,这 ...

  3. 详解GaussDB(DWS)通信安全的小妙招:连接认证机制

    本文分享自华为云社区<GaussDB(DWS)数据库安全系列之通信安全>,作者:yd_262982826. 1. 前言 适用版本:[8.1.3及以上] 网络是一个开放的环境,仅仅依靠用户名 ...

  4. 【华为云技术分享】解密如何使用昇腾AI计算解决方案构建业务引擎

    摘要:昇腾AI计算解决方案以极致算力,端边云融合.全栈创新,开放生态的硬核实力.用户可以使用标准的Matrix接口实现业务引擎,对外释放昇腾AI加速能力. 从卷积神经网络中的矩阵乘法(GEMM)说起 ...

  5. 云小课|GaussDB(DWS)数据存储尽在掌控,冷热数据切换自如

    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要: GaussDB( ...

  6. 设备如何使用go sdk轻松连接华为云IoT平台?

    摘要:本文介绍使用huaweicloud-iot-device-sdk-go 连接华为云IoT平台,实现简单的华为云文档介绍的四个功能:设备连接鉴权.设备命令.设备消息和设备属性. 本文分享自华为云社 ...

  7. STM32+华为云IOT制作酒驾监控系统:上车就监控

    摘要:设计一种安装在驾驶室内,能根据具体功能进行鉴别酒精浓度的系统,一起监督行车安全. 本文分享自华为云社区<基于STM32+华为云IOT设计的酒驾监控系统[玩转华为云]>,作者: DS小 ...

  8. 火山引擎DataTester上线「集成工作台」功能,助力企业打造专属AB平台

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 AB测试不仅是做增长的"利器",也是企业优化效率.增加决策精确度的有效工具.随着国内企业服务市 ...

  9. Jenkins + SVN

    安装插件 Localization: Chinese (Simplified) Subversion 配置国内源 http://mirror.tuna.tsinghua.edu.cn/jenkins/ ...

  10. C# CRC8

    C# CRC8 C# /// /// This enum is used to indicate what kind of checksum you will be calculating. /// ...