分类 Java 下的文章

windows系统下环境变量的设定以set命令开头,linux系统的shell运行时是会export环境变量的。

也可以配置JAVA_OPTS环境变量

set JAVA_OPTS=-server -Xms1024m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m

参数说明:

-server:一定要作为第一个参数,在多个CPU时性能佳

-Xms:初始Heap大小,使用的最小内存,cpu性能高时此值应设的大一些

-Xmx:java heap最大值,使用的最大内存

-XX:PermSize:设定内存的永久保存区域

-XX:MaxPermSize:设定最大内存的永久保存区域

-XX:MaxNewSize:

+XX:AggressiveHeap 会使得 Xms没有意义。这个参数让jvm忽略Xmx参数,疯狂地吃完一个G物理内存,再吃尽一个G的swap。

-Xss:每个线程的Stack大小

-verbose:gc 现实垃圾收集信息

-Xloggc:gc.log 指定垃圾收集日志文件

-Xmn:young generation的heap大小,一般设置为Xmx的3、4分之一

-XX:+UseParNewGC :缩短minor收集的时间

-XX:+UseConcMarkSweepGC :缩短major收集的时间

提示:此选项在Heap Size 比较大而且Major收集时间较长的情况下使用更合适。

简言之,log4j2是Apache基金会的一个开源项目,用于Java程序中打印日志,Apache Log4j 2是对Log4j的升级,它比其前身Log4j 1.x提供了重大改进,并提供了Logback中可用的许多改进,同时修复了Logback 架构中的一些固有问题。

CVE-2021-44228,则是最近log4j2爆出的一个远程代码执行漏洞的编号。所谓远程代码执行漏洞,就是说程序对用户输入的处理存在漏洞,导致用户输入的数据可以被执行(正常应该是作为数据,而非可执行的代码)。当用户输入可以被执行,那就几乎等价于用户登录到了服务器上执行命令,严重性可想而知。

CVE是“Common Vulnerabilities & Exposures”的缩写,中文译为“通用漏洞披露”。

那么如何修复log4j2的远程代码执行漏洞CVE-2021-44228呢?

目前Apache已经发布了log4j2的升级版本,修复了该漏洞,将log4j2升级到最新的2.17.0版本即可。

Log4j 2官网地址:https://logging.apache.org/log4j/2.x/
CVE官网地址:https://www.cve.org/