Comments (5)
the Operating System runs out of memory for TCP buffers.
每个client都会建立一个到服务器的连接。你改成10000会导致windows 内存占光。建议使用处理client连接池
from rpcx.
callServer函数里面,不是有client.Close()吗?这个循环是顺序来的,建立一个client,执行,close这个client;这样也会耗光内存?除非这个close不是马上执行的?
from rpcx.
我明天测一下,看你提供的错误似乎资源不足。
from rpcx.
你说的逻辑没错,callServer是在一个goroutine中顺序执行的。但是socket关闭后端口并不会释放,相应的端口会处于TIME_WAIT的状态,只有等待两个MSL才会释放。 这不仅仅是在Windows上的问题,Linux也有这个问题。 所以你可以把HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters/TcpTimedWaitDelay改小,促使port尽快释放。
更有效的是使用client pool.只保留几个长连接。我会加上连接池的例子。
TCP 127.0.0.1:50404 activate:8972 TIME_WAIT
TCP 127.0.0.1:50405 activate:8972 TIME_WAIT
TCP 127.0.0.1:50406 activate:8972 TIME_WAIT
TCP 127.0.0.1:50407 activate:8972 TIME_WAIT
TCP 127.0.0.1:50408 activate:8972 TIME_WAIT
TCP 127.0.0.1:50409 activate:8972 TIME_WAIT
TCP 127.0.0.1:50410 activate:8972 TIME_WAIT
TCP 127.0.0.1:50411 activate:8972 TIME_WAIT
TCP 127.0.0.1:50412 activate:8972 TIME_WAIT
TCP 127.0.0.1:50413 activate:8972 TIME_WAIT
TCP 127.0.0.1:50414 activate:8972 TIME_WAIT
TCP 127.0.0.1:50415 activate:8972 TIME_WAIT
TCP 127.0.0.1:50416 activate:8972 TIME_WAIT
TCP 127.0.0.1:50417 activate:8972 TIME_WAIT
TCP 127.0.0.1:50418 activate:8972 TIME_WAIT
TCP 127.0.0.1:50419 activate:8972 TIME_WAIT
TCP 127.0.0.1:50420 activate:8972 TIME_WAIT
TCP 127.0.0.1:50421 activate:8972 TIME_WAIT
TCP 127.0.0.1:50422 activate:8972 TIME_WAIT
TCP 127.0.0.1:50423 activate:8972 TIME_WAIT
from rpcx.
明白,是TIME_WAIT的状态,谢谢解释!
from rpcx.
Related Issues (20)
- 服务重启后,客户端报 can not found any server HOT 4
- 一致性hash, 想要自定义key HOT 1
- 我这边偶尔出现ERROR: rpcx: client protocol error: unexpected EOF 和客户端缓存有关系吗 HOT 1
- 通过RegisterFunction注册的接口, 不能触发PreCall、PostCall HOT 1
- plugins print all request log HOT 1
- gogo/protobuf已经声明Deprecated了,是否可以考虑其它替代实现? HOT 2
- server状态变更client无法感知 HOT 1
- rpcx 使用默认设置 , 当我的 reply 里面包含一个 []int 切片的时候, 获取reply 始终为空值 HOT 2
- typo: Zookepper
- service 返回error 后 client Call 捕获不到error HOT 2
- 返回没有值的异常 HOT 6
- RPC Service主动抛非strErr错误
- Server error overwritten ref #825
- 文档里面的demo跑不通
- 请问如何保证数据有序性? HOT 2
- 请问作者,如果在其它协程理出现错误,如何让serveConn循环结束,进而让server从activeConn删除此Conn HOT 2
- 官方文檔中的「异步调用 Service 」範例會阻塞 HOT 1
- 增加流控和增强对xds的支持 HOT 7
- C或C++怎么实现与rpcx客户端或服务端交互? HOT 1
- 是否考虑在路由时,用显示声明的handler取代反射 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rpcx.