我需要为某些自定义TCP服务器应用程序同时创建多个TCP连接以进行性能测试。我知道很多这样的网站(即基于libcurl的curl-loader),但我没有找到一些通用网站。
客户端场景最简单:创建连接,发送特殊数据,阅读答案并关闭连接。每一步都有时间戳。所有时间戳都应写入文件以供进一步计算。我需要大约10 000个这样的连接。
我更喜欢一些现成的解决方案,但Google没有发现任何东西,所以我准备用Python编写这个。如果是这样,你能推荐一个合适的python模块来产生这么多的连接吗? (multiprocessing,twisted ..?)用于执行测试的多个同时的tcp客户端连接
2
A
回答
0
处理10k连接是一个棘手的问题(称为C10K问题)。如果您需要真正的数字,请坚持使用C++(Boost/POCO库或OS本机API),或者跨10个负载生成客户端分发客户端。
没有办法,你应该用Python来试试这个(在1个CPU内核上处理10'000连接 - 不太现实)。
1
我的两分钱:
- 围棋的扭曲,或任何其他异步联网库。
确保您可以在客户端和 服务器上打开足够多的文件描述符。在我的Linux系统中,例如,我可以在默认情况下不超过1024个文件 文件描述符:
[email protected]:~$ ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited [..] open files (-n) 1024 [..]
它可以支付运行客户端,并在不同的机器上的服务器。
+0
我怎样才能扭转很多连接?有一些工作示例/参考吗? – DominiCane 2010-09-06 04:22:59
相关问题
- 1. TCP客户端连接
- 2. 来自客户端的Android tcp连接
- 3. 有多少客户端可以连接到一个TCP端口
- 4. 处理多个客户端连接的Perl TCP服务器
- 5. TCP Winsock:接受多个连接/客户端
- 6. 测试两个客户端直接连接在同一个IP和端口上
- 7. TCP客户端是4个连接,效率高于1?
- 8. TCP客户端使得第一连接
- 9. 连接到TCP客户端Elixir
- 10. TCP/IP客户端连接问题
- 11. 网络TCP客户端连接
- 12. TCP客户端连接脚本
- 13. 在让客户端知道的同时从服务器端关闭TCP连接
- 14. tcp连接池如何区分不同的客户端
- 15. python TCP客户端无法连接到我的TCP服务器
- 16. 来自双绞线中的客户端的两个tcp连接
- 17. 用于多个客户端的异步TCP服务器
- 18. 用于Unity的TCP客户端
- 19. 动态测试后端服务器的TCP连接测试
- 20. 客户端到客户端的连接?
- 21. C++ TCP检测客户端是否已断开连接数秒
- 22. 如何检测tcp客户端连接到c + +服务器
- 23. 为多个HTTP连接重新使用客户端TCP套接字
- 24. Java - 使用一台计算机测试两个TCP客户端
- 25. ADO.NET(ODP.NET)和用于不同客户端连接的相同连接池
- 26. 有多个查询的一个客户端的Firebase同时连接数
- 27. 来自同一客户端的多个连接
- 28. 连接到同一台服务器的多个tcpip客户端?
- 29. PyBlueZ:创建多个客户端连接
'socket'是Python中的[C扩展](http://svn.python.org/view/python/tags/r31/Modules/socketmodule.c?view=markup)(至少在Python 3.1.2);除非你在每个连接上产生一个新的线程,因为Python的线程库并不是本地实现的,所以不应该有太多CPU开销。 或者是C++更高效? – 2010-09-03 13:33:20
C++效率更高,并且可以为您提供所有CPU内核。由于GIL,Python随时只能在1核上工作。有了这样的连接,在这里和那里很少的时间花费大部分时间。 – BarsMonster 2010-09-03 13:39:49
Python多线程不是选项,当然。但也许多处理会帮助..? – DominiCane 2010-09-03 13:44:20