JVM 配置参数 -D,-X,-XX 的区别

createh56个月前 (12-17)技术教程63

最近在安全护网行动,需要针对服务进行不断的安全加固,如 对服务的 log4j 的安全配置进行防护,对 fastjson 的漏洞进行安全加固等,最快的防护方法就是通过在服务启动的时候,设置对应的安全参数。如开启 fastjson 的安全模式,在启动服务的jvm 参数中添加以下配置;

-Dfastjson.parser.safeMode=true

配置之后总结一下JVM 的常用的三种方式: -D,-X,-XX

-XX 标准选择(Standard Options)

-XX 是 JVM 的所有实现都支持的最常用的选项。-XX 参数被称为不稳定参数,是因为这类参数的设置会引起JVM运行时性能上的差异,配置得当可以提高JVM性能,配置不当会使JVM出现各种问题,甚至JVM崩溃。

示例:

# 例如以-XX开头的配置参数
-XX:+UseConcMarkSweepGC
-XX:+CMSParallelRemarkEnable
-XX:+UseFastAccessorMethods

-X 非标准选择(Non-Standard Options)这些选项是特定于 Java HotSpot 虚拟机的通用选项。

# 例如以-X开头的配置参数
-Xmx256m
-Xms256m
-Xmn768m
-Xss256k

-D 设置系统属性值;

-D属性名称=属性值,-D 可以设置服务jar 包中内部封装的属性值,如server.port等等,其中设置fastjson 的安全模式以及log4j的安全配置都是通过 -D 的方式进行设置

# 例如以-D开头的配置参数
-Dspring.profiles.active=release
-Dspring.config.location=/opt/app/conf/

oracle 官网配置说明:https://docs.oracle.com/javase/8/docs/technotes/tools/windows/java.html

相关文章

JVM三大性能调优参数Xms,Xmx,Xss的含义,你又知道多少呢

我们在程序运行中,经常会遇到各种各样的问题,比如说,我们会遇到内存大小需要调,或者说并发线程数需要调整,遇到这个情况的时候该怎么办呢,接下来我们就一起学习怎么给JVM调优。JVM三大性能调优参数 -X...

Nginx 转发时的一个坑,运维居然让我背锅

最近遇到一个 Nginx 转发的坑,一个请求转发到 Tomcat 时发现有几个 http header 始终获取不到,导致线上出现 bug,运维说不是他的问题,这个锅我背了。新增的几个 header...