网站建设行业 知乎,中英文 网站,内蒙古建设工程造价信息网官网中项网,自己的网站没有域名问题描述
最近搞了一台1年的阿里云服务器#xff0c;安装了一下常用的MySQL#xff0c;Redis#xff0c;rabbitmq#xff0c;minio#xff0c;然后有安装了一下nacos#xff0c;结果一启动nacos内存占用就很高#xff0c;就比较限制我继续安装其他镜像或者启动别的服务…
问题描述
最近搞了一台1年的阿里云服务器安装了一下常用的MySQLRedisrabbitmqminio然后有安装了一下nacos结果一启动nacos内存占用就很高就比较限制我继续安装其他镜像或者启动别的服务。 启动nacos之前 启动nacos之后 问题分析
nacos启动参数初识
nacos本质就是启动了一个jar包这里有它运行的一些参数
/usr/local/software/jdk/jdk1.8.0_371/bin/
java
-Djava.ext.dirs/usr/local/software/jdk/jdk1.8.0_371/jre/lib/ext:/usr/local/software/jdk/jdk1.8.0_371/lib/ext
-Xms512m -Xmx512m -Xmn256m
-Dnacos.standalonetrue
-Dnacos.member.list
-Xloggc:/usr/local/software/ali/nacos/8848/nacos/logs/nacos_gc.log -verbose:gc
-XX:PrintGCDetails
-XX:PrintGCDateStamps
-XX:PrintGCTimeStamps
-XX:UseGCLogFileRotation
-XX:NumberOfGCLogFiles10
-XX:GCLogFileSize100M
-Dloader.path/usr/local/software/ali/nacos/8848/nacos/plugins/health,/usr/local/software/ali/nacos/8848/nacos/plugins/cmdb,/usr/local/software/ali/nacos/8848/nacos/plugins/selector
-Dnacos.home/usr/local/software/ali/nacos/8848/nacos
-jar /usr/local/software/ali/nacos/8848/nacos/target/nacos-server.jar
--spring.config.additional-locationfile:/usr/local/software/ali/nacos/8848/nacos/conf/
--logging.config/usr/local/software/ali/nacos/8848/nacos/conf/nacos-logback.xml
--server.max-http-header-size524288这些参数是啥
java -X[rootiZuf61wy7p4tbr7lmwv18iZ ~]# java -X-Xmixed 混合模式执行默认-Xint 仅解释模式执行-Xbootclasspath:用 : 分隔的目录和 zip/jar 文件设置引导类和资源的搜索路径-Xbootclasspath/a:用 : 分隔的目录和 zip/jar 文件附加在引导类路径末尾-Xbootclasspath/p:用 : 分隔的目录和 zip/jar 文件置于引导类路径之前-Xdiag 显示附加诊断消息-Xnoclassgc 禁用类垃圾收集-Xincgc 启用增量垃圾收集-Xloggc:file 将 GC 状态记录在文件中带时间戳-Xbatch 禁用后台编译-Xmssize 设置初始 Java 堆大小-Xmxsize 设置最大 Java 堆大小-Xsssize 设置 Java 线程堆栈大小-Xprof 输出 cpu 分析数据-Xfuture 启用最严格的检查预计会成为将来的默认值-Xrs 减少 Java/VM 对操作系统信号的使用请参阅文档-Xcheck:jni 对 JNI 函数执行其他检查-Xshare:off 不尝试使用共享类数据-Xshare:auto 在可能的情况下使用共享类数据默认-Xshare:on 要求使用共享类数据否则将失败。-XshowSettings 显示所有设置并继续-XshowSettings:system仅限 Linux显示系统或容器配置并继续-XshowSettings:all显示所有设置并继续-XshowSettings:vm 显示所有与 vm 相关的设置并继续-XshowSettings:properties显示所有属性设置并继续-XshowSettings:locale显示所有与区域设置相关的设置并继续-X 选项是非标准选项。如有更改恕不另行通知。进一步解析
-XX参数主要有3种行为参数调优参数调试参数行为参数(功能开关)
-XX:-DisableExplicitGC 禁止调用System.gc()但jvm的gc仍然有效
-XX:MaxFDLimit 最大化文件描述符的数量限制
-XX:ScavengeBeforeFullGC 新生代GC优先于Full GC执行
-XX:UseGCOverheadLimit 在抛出OOM之前限制jvm耗费在GC上的时间比例
-XX:-UseConcMarkSweepGC 对老年代采用并发标记交换算法进行GC
-XX:-UseParallelGC 启用并行GC
-XX:-UseParallelOldGC 对Full GC启用并行当-XX:-UseParallelGC启用时该项自动启用
-XX:-UseSerialGC 启用串行GC
-XX:UseThreadPriorities 启用本地线程优先级性能调优
-XX:LargePageSizeInBytes4m 设置用于Java堆的大页面尺寸
-XX:MaxHeapFreeRatio70 GC后java堆中空闲量占的最大比例
-XX:MaxNewSizesize 新生成对象能占用内存的最大值
-XX:MaxPermSize64m 老年代对象能占用内存的最大值
-XX:MinHeapFreeRatio40 GC后java堆中空闲量占的最小比例
-XX:NewRatio2 新生代内存容量与老生代内存容量的比例
-XX:NewSizesize 新生代对象生成时占用内存的默认值
-XX:ReservedCodeCacheSize32m 保留代码占用的内存容量
-XX:ThreadStackSize512 设置线程栈大小若为0则使用系统默认值
-XX:UseLargePages 使用大页面内存调试参数
-XX:-CITime 打印消耗在JIT编译的时间
-XX:ErrorFile./hs_err_pidpid.log 保存错误日志或者数据到文件中
-XX:-ExtendedDTraceProbes 开启solaris特有的dtrace探针
-XX:HeapDumpPath./java_pidpid.hprof 指定导出堆信息时的路径或文件名
-XX:-HeapDumpOnOutOfMemoryError 当首次遭遇OOM时导出此时堆中相关信息
-XX:OnErrorcmd args;cmd args 出现致命ERROR之后运行自定义命令
-XX:OnOutOfMemoryErrorcmd args;cmd args 当首次遭遇OOM时执行自定义命令
-XX:-PrintClassHistogram 遇到Ctrl-Break后打印类实例的柱状信息与jmap -histo功能相同
-XX:-PrintConcurrentLocks 遇到Ctrl-Break后打印并发锁的相关信息与jstack -l功能相同
-XX:-PrintCommandLineFlags 打印在命令行中出现过的标记
-XX:-PrintCompilation 当一个方法被编译时打印相关信息
-XX:-PrintGC 每次GC时打印相关信息
-XX:-PrintGCDetails 每次GC时打印详细信息
-XX:-PrintGCTimeStamps 打印每次GC的时间戳
-XX:-TraceClassLoading 跟踪类的加载信息
-XX:-TraceClassLoadingPreorder 跟踪被引用到的所有类的加载信息
-XX:-TraceClassResolution 跟踪常量池
-XX:-TraceClassUnloading 跟踪类的卸载信息
-XX:-TraceLoaderConstraints 跟踪类加载器约束的相关信息
回过头分析nacos
# 设置了Java的初始堆大小和最大堆大小以及新生代大小
-Xms512m -Xmx512m -Xmn256m -Dnacos.standalonetrue -- 单体模式启动
-Dnacos.member.list
-Xloggc:/usr/local/software/ali/nacos/8848/nacos/logs/nacos_gc.log -verbose:gc# 和gc相关的参数
-XX:PrintGCDetails -- 每次GC时打印详细信息
-XX:PrintGCDateStamps -- 应该是打印一下日期
-XX:PrintGCTimeStamps -- 打印每次GC的时间戳
-XX:UseGCLogFileRotation -- GC的日志
-XX:NumberOfGCLogFiles10 -- 日志文件数量
-XX:GCLogFileSize100M -- 日志文件大小问题解决
尝试设置参数
下面是原来的参数可以看到似乎初始堆大小和最大堆大小以及新生代大小遵循 2:2:1的比例所以尝试把他们都除以2 参数修改如下所示 启动查看 现在启动试试可以看到内存占用87%确实少了还能再运行其他的jar包 前端控制台也能正常启动后续还需要进一步验证参数是否设置的合适