从ES的JVM配置起步思考JVM常见参数优化_es jvm配置
目录
一、真实查看参数
(一)-XX:+PrintCommandLineFlags
(二)-XX:+PrintFlagsFinal
二、堆空间的配置
(一)默认配置
(二)配置Elasticsearch堆内存时,将初始大小设置为物理内存的一半(重点理解)
存储型服务(如 Elasticsearch)
计算型服务(如普通 Web 服务)
存储型服务(如 Elasticsearch)和 计算型服务(如普通 Web 服务)抉择
抉择结论分析
(三)堆外内存划分说明
元空间(Metaspace)
JIT编译后代码存放
本地内存
直接内存
JNI内存
(四)平常的应用服务较常用的调整分代比例
三、日志参数配置
(一)Java 8 jvm.options文件中的JVM日志参数配置
(二)Java 9+ jvm.options文件中的JVM日志参数配置
四、异常日志记录
(一)HeapDumpOnOutOfMemoryError
(二)HeapDumpPath
(三)ErrorFile
(四)作用和意义
五、垃圾回收器配置
(一)Java 8中Elasticsearch默认使用CMS垃圾回收器
(二)Java 9及以上版本垃圾回收器变化
六、额外自定义参数
(一)-Xss 参数
(二)-XX:-OmitStackTraceInFastThrow
(三)-Djava.awt.headless
七、分布式列存数据库Cassandra JVM参数简单回顾
干货分享,感谢您的阅读!
Java 8目前仍然是许多企业中主要使用的版本之一,尤其是对于比较保守的公司。在过去,CMS (Concurrent Mark-Sweep) 垃圾回收器在Java 8中是一种常见选择,因为它在某些场景下能够提供较好的性能。
然而,随着Java版本的不断更新,一些旧的特性和组件被淘汰或替代,比如CMS。Java 14中正式废弃了CMS,而新的垃圾回收器,如ZGC和G1,逐渐成为了主流选择。ZGC和G1在处理大内存堆和低停顿时间方面表现出色,适用于现代应用程序的需求。
另外,自Java 9以后,Java的发布模式也发生了变化,从长期支持(LTS)版本切换到了更频繁的发布,大约每六个月发布一次。Java 8和Java 11是目前支持的LTS版本,它们提供了更长时间的支持和维护,适合希望保持稳定性和兼容性的企业和组织使用。
关于JVM相关的优化和配置我们之前提到过很多基本的知识内容,比如如下的几篇重点内容,有时间可以在回顾一下: