现在有一套 alibaba cloud 全家桶的项目,基于 nacos 和 spring cloud loadbance 的。
目前观察到一个现象,某个服务存在 2 个实例,大部分请求都跑到了某个实例,且这个实例负载较高。 另外一个实例基本都在摸鱼。
从业务上讲,这个服务的调用并不频繁,但每次调用都需要花费一定的 cpu 内存和时间 去处理。
我感觉是调用频次太低导致默认的均衡规则没啥用,导致请求都转发到 服务实例列表中的第一个实例了。
1
lsk569937453 2023-06-20 10:55:47 +08:00
那就把负载均衡调整为随机啊
|
2
hhjswf 2023-06-20 10:59:43 +08:00
轮循呗,有可能你没配置对
|
3
imv2er 2023-06-20 11:28:55 +08:00
同步的提高响应时间的权重
异步的。。。比较麻烦 可以用点投机取巧的办法 |
4
xuanbg 2023-06-20 12:42:35 +08:00
我都是无脑平均分配
|
5
seasonsolt 2023-06-20 13:27:32 +08:00 1
感觉你不需要 loadblance ,你需要 map-reduce ,以导出 100W 数据为例,那么按照实例数量 2 拆分成 2 个 50W 的任务并行处理,最后在文件层面 merge 成一个。
|
6
Pil0tXia 2023-06-20 14:28:51 +08:00
感觉楼上的就是最好的解决方案了,但是从内存层面讲,一次性合并 4 个 25W 的文件对内存来说也不轻松,不过没有 JVM 里的对象了,可以少一半的内存占用(有没有一半也不知道)。如果内存还不够,可能得分批合并,然后在合并的时候把其它内存负载转移到别的 pod 上去。
还有优化的办法吗? |