文章

服务启动

java服务启动参数

1
2
3
CONFIG_OPTS=-javaagent:/path/skywalking-agent.jar -Dskywalking.agent.service_name=<分类名>::<服务名> -Dskywalking.collector.backend_service=<sky_url> -Dspring.profiles.active=prod -Dspring.cloud.config.uri=<nacos_url>

JAVA_OPTS=-server -XX:SurvivorRatio=10 -XX:+UseG1GC -XX:MaxGCPauseMillis=100 -Dsun.rmi.dgc.server.gcInterval=2592000000 -Dsun.rmi.dgc.client.gcInterval=2592000000 -XX:ParallelGCThreads=2 -Xloggc:/var/data/logs/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/java.hprof -Djava.awt.headless=true -Dsun.net.client.defaultConnectTimeout=10000 -Dsun.net.client.defaultReadTimeout=30000 -Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8

CONFIG_OPTS

用于定义与应用服务和监控相关的配置,通常是在 Spring Boot 应用中使用环境变量来指定一些启动时的参数

-javaagent:/path/skywalking-agent.jar

1
2
3
这表示使用 Apache SkyWalking 的 Java agent,用于分布式应用的性能监控。/path/skywalking-agent.jar 是 SkyWalking agent jar 包的路径。

Java agent 用于拦截应用程序的运行数据并将其发送到 SkyWalking 后端。

-Dskywalking.agent.service_name=<分类名>::<服务名>

1
2
3
定义 SkyWalking 监控中服务的名称。<分类名> 和 <服务名> 应该被替换为具体的服务分类和名称。

这个名称会在 SkyWalking 后端系统中显示,帮助区分不同的服务。

-Dskywalking.collector.backend_service=

1
指定 SkyWalking 后端的地址,<sky_url> 是 SkyWalking 集群或后端服务的 URL,SkyWalking agent 会将监控数据发送到这个地址。

-Dspring.profiles.active=prod

1
Spring Boot 的配置参数,指定应用使用 prod(生产环境)的配置文件。Spring 可以根据不同环境(开发、测试、生产)加载不同的配置文件。

-Dspring.cloud.config.uri=

1
定义 Spring Cloud Config Server 的 URL,这里使用了 Nacos 作为配置中心,<nacos_url> 是 Nacos 配置中心的地址,应用程序会从该地址获取配置

JAVA_OPTS

包含的是 JVM 调优参数,主要是性能优化和垃圾回收的相关设置。

-server

1
启用 JVM 的 server 模式,适用于需要高性能的服务器应用。

-XX:SurvivorRatio=10

1
设置新生代内存中 Eden 区和 Survivor 区的比例。Eden 区与 Survivor 区的比例是 10:1。

-XX:+UseG1GC

1
使用 G1 (Garbage First) 垃圾收集器,G1 是一款面向低延迟和大内存应用的垃圾收集器,适用于服务器端应用

-XX:MaxGCPauseMillis=100

1
设置垃圾收集过程中最大暂停时间为 100 毫秒。即 G1 尽量保证每次垃圾回收的暂停时间不会超过这个值。

-Dsun.rmi.dgc.server.gcInterval=2592000000

1
指定 RMI(远程方法调用)分布式垃圾回收服务器的回收间隔,设置为 2592000000 毫秒(30 天)

-Dsun.rmi.dgc.client.gcInterval=2592000000

1
与上面类似,这是 RMI 客户端的分布式垃圾回收间隔,设置为 30 天

-XX:ParallelGCThreads=2

1
指定并行垃圾收集线程数为 2,用于控制并行垃圾回收时的线程数。

-Xloggc:/var/data/logs/gc.log

1
指定垃圾回收日志的输出路径,日志文件保存到 /var/data/logs/gc.log。

-XX:+PrintGCDetails

1
启用详细的垃圾回收日志输出,记录垃圾回收的详细信息。

-XX:+PrintGCDateStamps

1
在垃圾回收日志中添加时间戳,用于更好地分析垃圾回收的时间点。

-XX:+HeapDumpOnOutOfMemoryError

1
在发生内存溢出(OutOfMemoryError)时生成堆转储,用于分析内存溢出原因。

-XX:HeapDumpPath=/path/java.hprof

1
指定堆转储文件的保存路径,转储文件会保存在 /path/java.hprof。

-Djava.awt.headless=true

1
启用 headless 模式,表示在没有图形界面的环境下运行。这通常用于服务器端应用,不需要 GUI 支持。

-Dsun.net.client.defaultConnectTimeout=10000

1
设置网络连接超时时间为 10 秒(10000 毫秒),用于 HTTP 连接的超时控制。

-Dsun.net.client.defaultReadTimeout=30000

1
设置网络读操作超时时间为 30 秒(30000 毫秒)。

-Dfile.encoding=UTF8

1
设置文件编码为 UTF-8,保证应用程序在读写文件时使用 UTF-8 编码。

-Dsun.jnu.encoding=UTF8

1
设置操作系统的默认编码为 UTF-8,保证在系统调用时使用 UTF-8 编码
本文由作者按照 CC BY 4.0 进行授权