Spring boot 使用流式api,堆外内存无需绑定即可增长
我的grpc java服务器堆外内存增长无限制 gRPC版本Spring boot 使用流式api,堆外内存无需绑定即可增长,spring-boot,grpc-java,Spring Boot,Grpc Java,我的grpc java服务器堆外内存增长无限制 gRPC版本 服务器:GRPCJava1.34.1 客户端:grpc java 1.34.1、grpc Swift 1.0.0 其他资料 用于聊天服务的服务器端流式RPC 通过SSL连接,SSL卸载在负载平衡器上处理 负载不是那么高 每台服务器低于100卢比/秒 每台客户端低于10卢比/秒 我没有应用流量控制 客户总数有限;这两个时间跨度之间并没有太大差别 服务器保留配置 保持时间:30秒 保存超时:5s 最大连接空闲时间:60s
- 服务器:GRPCJava1.34.1
- 客户端:grpc java 1.34.1、grpc Swift 1.0.0
- 用于聊天服务的服务器端流式RPC
- 通过SSL连接,SSL卸载在负载平衡器上处理
- 负载不是那么高
- 每台服务器低于100卢比/秒
- 每台客户端低于10卢比/秒
- 我没有应用流量控制
- 客户总数有限;这两个时间跨度之间并没有太大差别
- 服务器保留配置
- 保持时间:30秒
- 保存超时:5s
- 最大连接空闲时间:60s
- 每晚3:00,我对服务器上的所有
s执行onComplete();聊天服务目前不提供StreamObserver
- 客户端随机获取
,所以我想服务器端会有一些断开的连接。INTERNAL:RST\u流关闭流。HTTP/2错误代码:LB的内部_错误
- 我知道这个负载平衡器问题是不寻常的;正在检查中
- 移动客户端由于各种原因突然与服务器断开连接,并重新连接到服务器;我想服务器端也会有一些断开的连接。
- 客户端上可能存在奇怪的连接误用;i、 e.与流的意外多个连接
- 一旦内存达到极限,我就会得到
。内存配置如下:io.grpc.netty.shaded.io.netty.util.internal.OutOfDirectMemoryError
-Xmx1536m
-XX:MaxDirectMemorySize=3584m
- 无法使用下面的选项找到内存泄漏
-Dio.grpc.netty.shaded.io.netty.leakDetection.level=PARANOID-Dio.netty.leakDetection.level=PARANOID
- 一旦内存增长,即使在3:00
onComplete()事件之后,它也不会下降;我希望连接空闲后,与连接相关的资源将被释放
- 有一刻记忆消失了,错误如下;我猜这触发了记忆的释放。
io.grpc.netty.shaded.io.netty.handler.codec.http2.Http2Exception$StreamException:在写入之前关闭流
- 正如我所测试的,
- 连接后,流从服务器端打开,在保留期服务器发送出站离开后,调用
onComplete()
- 然而,当我打开连接和流,然后突然终止进程时,服务器从不发送
出站GOAWAY
- 连接后,流从服务器端打开,在保留期服务器发送出站离开后,调用
StreamObserver
s allonCompleted()
maxConnectionAge
和maxConnectionAgeGrace
是否有助于这种情况?通过这些选项,我可以看到正常连接的消失
,但是没有看到连接突然断开的日志StreamObserver
对象和相关资源会被垃圾收集。对于资源发布,我应该显式调用onCompleted()
还是onError()
?;实际上,我已经在所有StreamObserver
s上调用了onError()
和onCompleted()
,请求终止,但只是以防万一提前谢谢 我已在以下地址回复了您关于grpc java的查询:
2021-04-07T20:36:18.051+09:00 DEBUG 35024 --- [ grpc-nio-worker-ELG-3-4] [ i.g.n.s.i.grpc.netty.NettyServerHandler: 214] : [id: 0x333386d4, L:/172.20.40.169:31105 - R:/172.20.40.169:50188] OUTBOUND GO_AWAY: lastStreamId=2147483647 errorCode=0 length=8 bytes=6d61785f69646c65
2021-04-07T20:36:18.051+09:00 DEBUG 35024 --- [ grpc-nio-worker-ELG-3-4] [ i.g.n.s.i.grpc.netty.NettyServerHandler: 214] : [id: 0x333386d4, L:/172.20.40.169:31105 - R:/172.20.40.169:50188] OUTBOUND PING: ack=false bytes=40715087873
2021-04-07T20:36:18.060+09:00 DEBUG 35024 --- [ grpc-nio-worker-ELG-3-4] [ i.g.n.s.i.grpc.netty.NettyServerHandler: 214] : [id: 0x333386d4, L:/172.20.40.169:31105 - R:/172.20.40.169:50188] INBOUND PING: ack=true bytes=40715087873
2021-04-07T20:36:18.061+09:00 DEBUG 35024 --- [ grpc-nio-worker-ELG-3-4] [ i.g.n.s.i.grpc.netty.NettyServerHandler: 214] : [id: 0x333386d4, L:/172.20.40.169:31105 - R:/172.20.40.169:50188] OUTBOUND GO_AWAY: lastStreamId=5 errorCode=0 length=8 bytes=6d61785f69646c65