[alibaba/nacos]请问如何计算合理jvm参数配置

2023-12-21 748 views
5

目前三台主机的配置均是512g内存,64c,搭建了3节点nacos集群并独占主机,主要用于服务注册,后期计划3000+服务,3万+容器进行注册,请问这种情况有没有建议的jvm参数配置,有没有jvm参数计算公式,能够让nacos能够在稳定的前提下,最大发挥主机性能,谢谢

回答

7

应该不需要这么大的配置吧, 如果3000+服务,3w+容器不是dubbo框架的话, 对应也就是3w+服务提供者左右, 用nacos2.0的客户端+服务端大致也就需要8c16g * 5左右就足够了。

独占机器的jvm基本上 50%~60%给堆,25%给堆外,余下的给操作系统和其他的一些辅助程序。

1

现在是spring cloud 服务,用的2.2.0的服务端,1.4.2的客户端(客户端无法用2.x版本,因为和平台侧组件jar包有冲突),顺便问一下这种服务端和客户端版本不通会有问题吗,我需要把服务端降到1.4版本吗

1

不会有问题, 如果使用1.4.2的客户端的话, 性能会不如使用2.0的客户端, 但是服务端用2.2没有问题。

9

好的,感谢!还有个问题请教一下,目前我的nacos使用单独的物理机部署,业务服务部署在k8s中,pod注册到nacos的地址为k8s集群内ip,由于从nacos的主机无法直接访问k8s集群内pod,因此导致了从nacos服务端push不到k8s集群的pod里,naming-push.log里面报错: ERROR [PUSH-FAIL] 20003ms, Service{namespace='public', group='DEFAULT_GROUP', name='cost_query', ephemeral=true, revision=0}, reason=null, target=192.1.248.6,请问这种情况有解决的办法吗,是必须要把nacos迁移到k8s内部吗?

4

如果必须使用1.4.X客户端,没办法解决, 这个属于部署环境的网络问题,需要你们的网络同学去打通。

或者升级到2.X客户端, 复用客户端双向流,不用UDP这种服务端主动发起的连接,就可以了

6

docker-compose启动nacos容器,在yml中对jvm参数进行了设定但是nacos一起动还是超出限定范围这是什么原因,进入到了容器内部jps -v一看nacosjar包的参数还是 xms1g xmx1g docker-compose里面写的都是512m