-
Notifications
You must be signed in to change notification settings - Fork 12.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
log of nacos optimization #1510
Comments
log of nacos optimizationSince the release of the first version of nacos, I personally feel that there are a lot of spit points on the log output and startup script parameter configuration, especially the log output part. The following are personal lists, which only represent personal opinions.
The log output of Secondly, after I configured the And our custom log output road log is also very much, especially In addition,
The
The default
|
|
nacos从第一个版本发布以来,个人觉得在日志输出和启动脚本参数配置上有不少吐槽点,特别是日志输出部分,以下是个人罗列的,仅代表个人看法。
nacos
的日志输出非常之多,而且不支持在配置文件application.properties
中做精细化的开关或者级别配置。唯一可以在应用配置文件中配置的是nacos.logs.path
来配置日志输出路劲(但这个配置并不能完全限定所有日志),默认是获取nacos.home
变量的路劲,并在路劲下创建logs
文件夹来存储,而nacos.home
是在startup.sh
脚本中传入的,最终获取的是程序所在目录下。而早期版本甚至会在系统用户目录下创建logs
和nacos
两个目录来保存日志,1.1.0
版本默认会在当前程序的根目录下创建logs
来目录来保存日志。其次,我配置了
nacos.logs.path
参数启动后,仍旧有日志会打印到${nacos.home}/logs
目录下主要是cmdb-main.log
,nacos_gc.log
,start.out
等。其次在linux
用户根目录下还会创建一个nacos/logs
的目录保存config.log
以及naming.log
日志。而我们自定义的日志输出路劲日志也非常之多,特别是
tomcat
的web
访问日志access_log
,客户端越多日志越多,我写了10个客户端左右,不跑业务每天的日志量也是在80M
到300M
左右不等,建议在配置文件中默认false关闭。另外,
nacos
的logback
配置文件nacos-logback.xml
中对各类日志的块大小分割保存并未设置压缩,当客户端太多的时候日志量非常之大,并且各个日志的分割标准也不相同,最大的2G
分割,最小的20M
分割。JVM
内存大小nacos
的JVM
参数大小是写死在了shell
脚本中,而且集群情况下,为了避免频繁GC
,设置的最小和最大内存为2G
,相当于说只要启动一份nacos-server
程序,就会占用掉2G的内存空间,即时可能它自身根本用不到(当然这里本人并未测试过nacos-server
程序使用内存的需求量,大内存可以直接忽略),之前我使用eureka-server
做注册中心时512M
跑几十个客户端程序,没有任何问题。建议在application.properties
中增加上调整JVM
内存大小的参数。这样更方便配置修改,而不是直接修改shell
脚本shutdown.sh
脚本默认的
shutdown.sh
脚本脚本在集群情况下执行会将同一台机子上的所有节点都关闭掉,因为shell
命令查找的是有nacos.nacos
标记的pid
,当搭建伪集群的情况,这种情况就非常危险了。一旦执行脚本所有nacos
节点全部关闭了。个人觉得即使不考虑采用伪集群方案,为了避免风险shutdown.sh
脚本都应该默认关闭当前目录下的节点更为安全,例如将原脚本更改为The text was updated successfully, but these errors were encountered: