java_opts

对于JVM设置,可以查考如下配置example:

# Memory configuration

JAVA_OPTS="-server" JAVA_OPTS="$JAVA_OPTS -Xms1280m"

JAVA_OPTS="$JAVA_OPTS -Xmx1280m"

JAVA_OPTS="$JAVA_OPTS -XX:NewSize=640m"

JAVA_OPTS="$JAVA_OPTS -XX:MaxNewSize=640m"

JAVA_OPTS="$JAVA_OPTS -XX:SurvivorRatio=5"

JAVA_OPTS="$JAVA_OPTS -XX:TargetSurvivorRatio=90"

JAVA_OPTS="$JAVA_OPTS -XX:MaxTenuringThreshold=12"

JAVA_OPTS="$JAVA_OPTS -XX:+UseConcMarkSweepGC"

JAVA_OPTS="$JAVA_OPTS -XX:+CMSIncrementalMode"

JAVA_OPTS="$JAVA_OPTS -XX:+CMSIncrementalPacing"

JAVA_OPTS="$JAVA_OPTS -XX:+CMSParallelRemarkEnabled"

JAVA_OPTS="$JAVA_OPTS -XX:+UseParNewGC"

JAVA_OPTS="$JAVA_OPTS -XX:PermSize=64m"

JAVA_OPTS="$JAVA_OPTS -XX:MaxPermSize=64m"

JAVA_OPTS="$JAVA_OPTS -XX:+UseTLAB"


# Enable class unloading (needed with ConcMarkSweepGC

JAVA_OPTS="$JAVA_OPTS -XX:+CMSClassUnloadingEnabled"

JAVA_OPTS="$JAVA_OPTS -XX:+CMSPermGenSweepingEnabled"


# debug and memory tweaks to avoid Hotspot Compiler Failure

JAVA_OPTS="$JAVA_OPTS -XX:+PrintCompilation"

JAVA_OPTS="$JAVA_OPTS -XX:CodeCacheMinimumFreeSpace=2M"

JAVA_OPTS="$JAVA_OPTS -XX:ReservedCodeCacheSize=64M"

JAVA_OPTS="$JAVA_OPTS -XX:CompileCommandFile=/my/portal/bin/hotspot_compiler"


# Enable JMX Remote Monitoring

JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote"

JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=9000" JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false"

JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.password.file=/my/portal/bin/jmxremote.password"

JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.access.file=/my/portal/bin/jmxremote.access"

 
# turn on some debug for GC only print the distribution when doing tuning

JAVA_OPTS="$JAVA_OPTS -verbose:gc"

JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCTimeStamps"

JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCDetails"

 #JAVA_OPTS="$JAVA_OPTS -XX:+PrintTenuringDistribution"

JAVA_OPTS="$JAVA_OPTS -Xloggc:/my/portal/logs/portal/gc.log"


# Enable remote debugging port

JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"

JAVA_OPTS= "-server -Xms800m -Xmx800m -XX:PermSize=64M-XX:MaxNewSize=256m -XX:maxPermSize=128m -Djava.awt.headless=true"

### 通过 JAVA_OPTS 设置 Java Agent 或排查相关问题 在 Java 应用中,可以通过 `JAVA_OPTS` 环境变量设置 Java Agent,或者排查与 Java Agent 相关的问题。以下是详细说明: #### 1. 设置 Java Agent 使用 `JAVA_OPTS` Java Agent 是一种可以在 JVM 启动时加载的工具类库,用于修改字节码或监控应用程序行为。要通过 `JAVA_OPTS` 设置 Java Agent,可以按照以下方式配置: ```bash export JAVA_OPTS="-javaagent:/path/to/your/agent.jar" ``` - `-javaagent` 参数指定需要加载的 Agent JAR 文件路径。 - `/path/to/your/agent.jar` 是实际的 Agent JAR 文件路径[^3]。 如果需要传递额外参数给 Agent,可以通过 `=` 分隔键值对的方式实现,例如: ```bash export JAVA_OPTS="-javaagent:/path/to/your/agent.jar=param1=value1,param2=value2" ``` Agent 的参数会在其 `premain` 方法中被解析。 #### 2. 排查 Java Agent 相关问题 当遇到 Java Agent 相关问题时,可以尝试以下方法进行排查: - **检查 Agent 是否正确加载** 可以通过启动日志确认 Agent 是否成功加载。通常,Agent 的 `premain` 方法会打印一些日志信息到控制台。如果没有看到相关日志,可能是路径错误或 JAR 文件损坏[^4]。 - **验证 Agent JAR 文件完整性** 确保 Agent JAR 文件包含正确的 `MANIFEST.MF` 配置,其中必须定义 `Premain-Class` 属性。例如: ```plaintext Premain-Class: com.example.MyAgent Can-Redefine-Classes: true Can-Retransform-Classes: true ``` - **调试 Agent 加载过程** 如果 Agent 加载失败,可以通过以下 JVM 参数启用调试模式: ```bash export JAVA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 -javaagent:/path/to/your/agent.jar" ``` 这将允许通过远程调试工具连接到 JVM 并分析问题。 - **检查权限和路径** 确保运行环境有足够的权限访问 Agent JAR 文件,并且路径正确。如果使用相对路径,可能会导致找不到文件的问题[^5]。 #### 3. 示例代码 以下是一个简单的 Java Agent 实现示例,展示如何编写和使用 Agent: ```java // MyAgent.java import java.lang.instrument.Instrumentation; public class MyAgent { public static void premain(String agentArgs, Instrumentation inst) { System.out.println("Agent loaded with args: " + agentArgs); // 在此处添加自定义逻辑 } } ``` 编译并打包为 JAR 文件后,确保在 `META-INF/MANIFEST.MF` 中添加以下内容: ```plaintext Manifest-Version: 1.0 Premain-Class: MyAgent Can-Redefine-Classes: true Can-Retransform-Classes: true ``` #### 4. 注意事项 - 如果应用已经设置了其他 `JAVA_OPTS` 参数,确保不要覆盖原有值。可以通过追加的方式设置: ```bash export JAVA_OPTS="${JAVA_OPTS} -javaagent:/path/to/your/agent.jar" ``` - 某些容器环境(如 Docker)可能需要额外配置才能正确加载 Agent。例如,在 Dockerfile 中设置 `JAVA_OPTS` 或直接在命令行中传递参数[^6]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值