美文网首页
JVM 配置参数 -D,-X,-XX 的区别

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

作者: Kyriez7 | 来源:发表于2022-08-12 09:46 被阅读0次
    1660268599098.jpg
      最近在安全护网行动,需要针对服务进行不断的安全加固,如 对服务的 log4j 的安全配置进行防护,对 fastjson 的漏洞进行安全加固等,最快的防护方法就是通过在服务启动的时候,设置对应的安全参数。如开启 fastjson 的安全模式,在启动服务的jvm 参数中添加以下配置;
    

    <pre class="hljs ocaml" style="padding: 0.5em; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; color: rgb(68, 68, 68); border-radius: 4px; display: block; margin: 0px 0px 0.75em; font-size: 14px; line-height: 1.5em; word-break: break-all; word-wrap: break-word; white-space: pre; background-color: rgb(246, 246, 246); border: none; overflow-x: auto; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">-Dfastjson.parser.safeMode=true
    </pre>

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

    -XX 标准选择(Standard Options)

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

    示例:

    <pre class="prettyprint hljs yaml" style="padding: 0.5em; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; color: rgb(68, 68, 68); border-radius: 4px; display: block; margin: 0px 0px 1.5em; font-size: 14px; line-height: 1.5em; word-break: break-all; word-wrap: break-word; white-space: pre; background-color: rgb(246, 246, 246); border: none; overflow-x: auto; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;"># 例如以-XX开头的配置参数
    -XX:+UseConcMarkSweepGC
    -XX:+CMSParallelRemarkEnable
    -XX:+UseFastAccessorMethods
    </pre>

    -X 非标准选择(Non-Standard Options)

    这些选项是特定于 Java HotSpot 虚拟机的通用选项。

    <pre class="hljs diff" style="padding: 0.5em; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; color: rgb(68, 68, 68); border-radius: 4px; display: block; margin: 0px 0px 0.75em; font-size: 14px; line-height: 1.5em; word-break: break-all; word-wrap: break-word; white-space: pre; background-color: rgb(246, 246, 246); border: none; overflow-x: auto; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;"># 例如以-X开头的配置参数
    -Xmx256m
    -Xms256m
    -Xmn768m
    -Xss256k
    </pre>

    -D 设置系统属性值;

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

    <pre class="prettyprint hljs ruby" style="padding: 0.5em; font-family: Menlo, Monaco, Consolas, "Courier New", monospace; color: rgb(68, 68, 68); border-radius: 4px; display: block; margin: 0px 0px 1.5em; font-size: 14px; line-height: 1.5em; word-break: break-all; word-wrap: break-word; white-space: pre; background-color: rgb(246, 246, 246); border: none; overflow-x: auto; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;"># 例如以-D开头的配置参数
    -Dspring.profiles.active=release
    -Dspring.config.location=/opt/app/conf/
    </pre>

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

    相关文章

      网友评论

          本文标题:JVM 配置参数 -D,-X,-XX 的区别

          本文链接:https://www.haomeiwen.com/subject/dmexgrtx.html