案例一: 写一个使用sshj包远程链接虚拟机进行操作的过程。

现象:虚拟机环境,真实主机,ide上面测试都没有出现问题,推送到了流水线发布之后运行一段时间程序变得异常缓慢,流水线环境是docker。

(整个排查过程异常麻烦,因为是给华为云做的是没有测试环境的权限的,需要跟测试人员配合想起来就是眼泪。)

排查办法:jps 获取所有java进程。 装了jdk就有这个工具。

jstack pid | grep -A 20  -B 20 “你的包名”    你可以得到运行环境中所有线程的栈信息,找到挂起线程可以查出问题所在,就可以定位问题了。  grep  -A 是向下展示多少行有的组件写的狗的话20行不一定能看出来,可以根据实际情况具体调整。 -B是向上。

出现问题原因: 因为docker 或者jdk 版本的问题,导致使用节点/dev/random 获取随机数出现争抢排队的问题,最后重新换了一种随机数获取方式,没有去关心到底是docker的问题还是jdk。  预计把/dev/random 挂到docker里面区也能解决问题。

案例二: 一般来说spring托管之后不容易出现内存泄漏问题,但是毕竟需求千千万还是有可能出现,很久以前的一个工程常常用一段实践就挂掉,最后时间紧挂进程守护上的线。(只能说单子大那些年。)

排查方法:  jmap -histo pid | grep “你自己的包名”   (无数打脸瞬间告诉我,一定要确定是自己的问题。不然打脸很尴尬。)

以上两个方法基本可以解决开发过程中的所有问题,但是他只能解决出现的问题,并不能再程序一定的情况下改善程序运行效率。

实际应用部署的手,内存设置当然越大越好,现在jdk都是动态内存不存在浪费的说法,说你强用某个垃圾收集方法会有些会对使用效率有影响。

每个程序都有它适合jit的编译阈值,他的作用是在逃逸分析的时候让你占用使用更少的堆内存,这样也降低了栈内存到的引用到堆内存寻址,

    通过这个参数进行控制   -XX:CompileThreshold 观察堆内存你自己写的实体内存数量,同一业务并发执行那个少一点。

   大概就这些方法了,选gc模式什么的个人觉得有点玄学,不过改改不要stop full world 参数可以让你的程序启动快一点,但是某个内存状态下业务跑的不是特别顺(波动很小,存在理论上的,从没有注意过所以也就不具体些,就是小点一下。)   

jvm调优的简单手段---都是实际工作用到的。相关推荐

  1. JVM调优简单梳理,一分钟了解JVM调优

    JVM原理简单的认识         JVM指的是Sun公司的HotSpot JVM,JDK1.8之后JVM整合了JRockit 和 HotSpot的优点.JVM的行原理简历理解就是:JVM通过编译器 ...

  2. 记一次简单的 JVM 调优经历

    欢迎关注方志朋的博客,回复"666"获面试宝典 来源:https://zhenbianshu.github.io 背景 最近对负责的项目进行了一次性能优化,其中包括对 JVM 参数 ...

  3. 一次简单的 JVM 调优,拿去写到简历里

    前不久刚为一个项目调优了 GC ,还没来得及整理,今天在网上看到一篇调优文,先来分享一下. 来源地址:https://zhenbianshu.github.io 背景 最近对负责的项目进行了一次性能优 ...

  4. Java面试必问JVM调优,那.NET5呢?

    JVM调优已经是普通Java工程师的必修课了,而.NET开源快5年了,CLR层面的优化到目前都不多见,甚至常用的性能调优工具都还没玩过..NET5马上来了,要想在互联网大潮中逆袭,光靠平台是不够的,开 ...

  5. 面试-JVM-类加载-类加载器--自定义类加载器-JVM调优

    文章目录 ==类加载== 谈谈你对类文件结构的理解?有哪些部分组成? 谈谈你对类加载机制的了解? 编写java代码是如何运行起来的? 类加载机制 类加载各阶段的作用分别是什么? 有哪些类加载器?分别有 ...

  6. JVM调优之 -Xms -Xmx -Xmn -Xss

    原博客地址:http://uule.iteye.com/ 1.JVM垃圾回收与性能调优总结 2.JVM调优的几种策略 一.JVM内存模型及垃圾收集算法  1.根据Java虚拟机规范,JVM将内存划分为 ...

  7. JDK 17 之 JVM调优 史诗级 教程

    JDK 17 之 JVM调优 史诗级 教程 ​ 编辑切换为居中 添加图片注释,不超过 140 字(可选) 文章目录 JDK 17 之 JVM调优 史诗级 教程 3.6.3 其他收集器适用场景4.1.2 ...

  8. 一般的Java项目需要JVM调优吗?

    一般是不需要的,JVM调优是最后的手段. 1.调优原则 JVM调优听起来很高大上,但是要认识到,JVM调优应该是Java性能优化的最后一颗子弹. 比较认可廖雪峰老师的观点,要认识到JVM调优不是常规手 ...

  9. JVM从跨平台到跨专业 Ⅲ --编译期处理、类加载、JVM调优

    文章目录 编译期处理 默认构造器 自动拆装箱 泛型集合取值 可变参数 foreach 循环 switch 字符串 switch 枚举 枚举类 try-with-resources 方法重写时的桥接方法 ...

最新文章

  1. 使用 JProbe 调试 Linux 内核(转)
  2. 石川es6课程---12、Promise
  3. Input为number类型maxlength不好使,用js轻松解决
  4. Vue项目启动webpack报错Module build failed: Error: No PostCSS Config found in......
  5. 20160828_第4周周报
  6. 关于list遍历时sychronizedList方法和synchronized同步块的线程安全问题思考
  7. 导致自然语言理解的困难的主要因素是什么?
  8. Properties的使用
  9. html div转行,转行web前端开发的人有没有未来
  10. 试驾Marvel R :传统车企认真起来,就没新势力什么事了
  11. 超大文本文件怎么打开(使用Hex Editor)
  12. 佳缘男的计算机软件出差,交友我在世纪佳缘认识了一个男人,今年32岁,通信接近一个月,觉得 爱问知识人...
  13. 手机自带的一些很实用的小程序,您都用过了吗?
  14. linux下如何关闭端口占用,Linux端口被占用? -- Linux查看端口使用状态、关闭端口方法...
  15. ln: ‘ ‘: hard link not allowed for directory
  16. 基于matlab的脑瘤mr图像处理_基于电势能改进的区域生长脑肿瘤图像分割
  17. RxSwift学习记录
  18. 设计模式(2)六大原则(七大原则)
  19. 论文阅读20220523_Baidu Apollo EM Planner
  20. python线程和进程-未完待续

热门文章

  1. 安装时提示用户在命令行上发出了EULAS_AGREED=1,表示不接受许可协议
  2. HTAP应该是一种需求 而不是一种产品
  3. java 正则 懒惰_正则表达式的最大最小原则(就是懒惰和贪婪定理),java版本
  4. LocalDB的使用详解
  5. MongoDB 条件查询--比较操作
  6. 怎样写一篇文章 施工中~
  7. 小强怎样练成——读《现代软件工程——构建之法》第三章有感
  8. 2019春第十二周 编程总结
  9. OPPO Java后端校招提前批面试
  10. 支持免费试用的香港云服务器推荐