当前位置: 首页 > news >正文

宝兰德JVM参数查看及优化

最近生产环境宝兰德服务总是莫名奇妙的宕掉,很是搞人心态(幸好是集群服务器多,总有一台提供服务),初步排查是内存溢出导致,需要进行宝兰德JVM进行调整

调整宝兰德(BES)JVM参数通常涉及对Java虚拟机启动和运行时的配置进行优化,以适应特定应用程序的需求或解决性能问题。以下是一些关键的JVM参数调整步骤和注意事项:

一、确定调整JVM参数目标

在调整JVM参数之前,首先需要明确调整的目标,如提高吞吐量减少延迟优化内存使用等。这有助于选择合适的参数和策略。

二、JVM主要参数介绍

  1. 堆内存设置

    • -Xms:设置JVM启动时堆的初始大小。
    • -Xmx:设置JVM可使用的堆的最大内存量。

    这两个参数用于控制JVM堆内存的大小。建议将-Xms-Xmx设置为相同的值,以避免JVM在运行时频繁调整堆大小

  2. 垃圾回收器选择

    • -XX:+UseG1GC:选择G1垃圾回收器。G1是一个面向服务端的垃圾回收器,旨在满足高吞吐量和低停顿时间的需求。
    • -XX:+UseParallelGC:选择并行垃圾回收器,适用于多核服务器环境。
    • -XX:+UseSerialGC:选择串行垃圾回收器,适用于单核或小型应用。

    根据应用程序的需求和服务器配置选择合适的垃圾回收器。

  3. 年轻代与老年代比例

    • -XX:NewRatio:设置年轻代(Young Generation)与老年代(Old Generation)的比例。例如,-XX:NewRatio=3表示年轻代与老年代的比例为1:3。

    调整这个比例可以帮助优化垃圾回收的效率应用程序的响应速度

  4. 新生代内部区域比例

    • -XX:SurvivorRatio:设置Eden区与两个Survivor区的比例。例如,-XX:SurvivorRatio=8表示Eden区与每个Survivor区的比例为8:1。

    这个参数影响年轻代中对象的分配和晋升策略

  5. 其他重要参数

    • -Xss:设置每个线程的堆栈大小
    • -XX:MaxTenuringThreshold:设置对象在年轻代中存活的最大年龄,达到该年龄的对象将被晋升到老年代。
    • -XX:InitiatingHeapOccupancyPercent:设置触发GC的堆占用率阈值

通常这些参数可以通过ps命令查看,图就不放了

ps -ef|grep javaps -ef|grep bes

或者登录BES管理台查看,并进行参数修改,重启服务

三、JVM参数优化流程

  1. 收集性能数据:使用JVM监控工具(如VisualVM、jstat等)收集应用程序的性能数据,包括内存使用情况垃圾回收次数时间等。

  2. 分析性能瓶颈:根据收集到的性能数据,分析应用程序的性能瓶颈,确定需要优化的方面。

  3. 调整JVM参数:根据分析结果,调整JVM参数以优化性能。

  4. 验证调整效果:重新运行应用程序并收集性能数据,验证调整后的效果是否达到预期。

  5. 持续优化:根据应用程序的运行情况和性能需求,持续监控和调整JVM参数以优化性能。

四、注意事项

  1. 避免过度优化不要盲目追求极致的性能而过度优化JVM参数,这可能会导致系统不稳定或难以维护。

  2. 测试验证:在调整JVM参数后,一定要进行充分的测试以验证调整效果并避免引入新的问题。

  3. 文档记录:记录每次调整JVM参数的详细信息和调整后的效果,以便后续分析和参考。

  4. 关注JVM版本:不同版本的JVM可能有不同的性能表现和参数支持情况,因此在调整JVM参数时需要关注JVM的版本信息。

  5. 参考官方文档和最佳实践:在调整JVM参数时,可以参考Oracle官方文档和其他权威来源的最佳实践,以获取更准确和有效的指导。

请注意,以上方法可能因宝兰德BES服务器的具体版本和配置而有所不同。在实际操作中,建议参考宝兰德BES服务器的官方文档或联系技术支持获取更详细的信息。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 使用ubuntu串口数据收和发不一致问题
  • SpringAOP面向切面编程的概念和使用
  • 萱仔求职系列——1.1 机器学习基础知识复习
  • Redisson 实现分布式锁
  • vue2项目微信小程序的tabs切换效果
  • 学单片机怎么在3-5个月内找到工作?
  • 2024杭电多校(7) 1007. 创作乐曲【线段树预处理、dp、思维】
  • STM32的SDIO接口详解
  • 梅特勒金属探测器检测仪维修SAFELINE V3-QF1
  • 2024年电脑录屏软件推荐:捕捉屏幕,记录生活,分享精彩
  • Flink 实时数仓(八)【DWS 层搭建(二)流量域、用户域、交易域搭建】
  • 【JavaEE初阶】CAS(比较和交换)
  • OrangePi AIpro学习4 —— 昇腾AI模型应用
  • 代码随想录算法训练营Day33 | 509. 斐波那契数 | 70. 爬楼梯 | 746. 使用最小花费爬楼梯
  • C++——模板进阶
  • CODING 缺陷管理功能正式开始公测
  • Java 最常见的 200+ 面试题:面试必备
  • MySQL的数据类型
  • PHP的类修饰符与访问修饰符
  • rc-form之最单纯情况
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • Vue官网教程学习过程中值得记录的一些事情
  • 阿里云购买磁盘后挂载
  • 百度地图API标注+时间轴组件
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 实战|智能家居行业移动应用性能分析
  • 使用 Docker 部署 Spring Boot项目
  • 一个JAVA程序员成长之路分享
  • 译有关态射的一切
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • Mac 上flink的安装与启动
  • ​iOS安全加固方法及实现
  • ‌移动管家手机智能控制汽车系统
  • #07【面试问题整理】嵌入式软件工程师
  • #Linux(Source Insight安装及工程建立)
  • (1)svelte 教程:hello world
  • (2)空速传感器
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (4)logging(日志模块)
  • (4)STL算法之比较
  • (LeetCode) T14. Longest Common Prefix
  • (备忘)Java Map 遍历
  • (二)hibernate配置管理
  • (二)延时任务篇——通过redis的key监听,实现延迟任务实战
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (三)c52学习之旅-点亮LED灯
  • (五)IO流之ByteArrayInput/OutputStream
  • (转)Linux下编译安装log4cxx
  • .net mvc actionresult 返回字符串_.NET架构师知识普及
  • .net Stream篇(六)
  • .NET(C#) Internals: as a developer, .net framework in my eyes
  • .NET设计模式(11):组合模式(Composite Pattern)
  • .NET正则基础之——正则委托