D2DX:如何让经典暗黑破坏神2在现代PC上重获新生?
2026/6/25 23:36:22
上一篇【第63篇】Netty压测与性能基准——Wrk/JMH实战测量吞吐量
下一篇【第65篇】Netty优雅降级与熔断——高可用Netty服务的容错设计
# 1. 确认是否堆外OOMjcmd<pid>VM.native_memory summary# 查看Direct Memory使用# 2. 开启泄漏检测-Dio.netty.leakDetection.level=PARANOID# 3. 常见泄漏场景ctx.writeAndFlush(buf);// ❌ write后buf未release buf.retain();// ❌ retain后忘记release排查技巧:
// 使用ResourceLeakDetector追踪ResourceLeakDetector.setLevel(PARANOID);// 日志会有:LEAK: ByteBuf.release() was not called...// Recent access records:// #1: com.example.MyHandler.channelRead(MyHandler.java:23)# 1. 找到CPU高的线程top-H-p<pid># 2. 转16进制printf"%x\n"<tid># 3. jstack查看该线程jstack<pid>|grep-A20<hex_tid>常见原因:
rebuildSelector()# 查看连接数netstat-an|grep<port>|wc-l# 查看CLOSE_WAIT状态netstat-an|grepCLOSE_WAIT|wc-l// 监控连接数privatestaticfinalAtomicIntegerconnections=newAtomicInteger();channelActive:connections.incrementAndGet();channelInactive:connections.decrementAndGet();// 定期打印连接数eventLoop.scheduleAtFixedRate(()->{System.out.println("Connections: "+connections.get());},10,10,SECONDS);# 1. 限流(临时关闭新连接)# 2. 重启(优雅关闭→启动)# 3. 扩大连接池# 暂时禁用泄漏检测-Dio.netty.leakDetection.level=DISABLED上一篇【第63篇】Netty压测与性能基准——Wrk/JMH实战测量吞吐量
下一篇【第65篇】Netty优雅降级与熔断——高可用Netty服务的容错设计